Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Significance of metrics

8.948 visualizaciones

Publicado el

A lightning talk on metrics held at the ROOTS 2011 conference in Bergen, Norway - why you should do it and how to get easily started.

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

Significance of metrics

  1. 1. Significance of metrics<br />Using Javamelody for perf. stats<br />23. May 2011<br />
  2. 2. Who am I?<br />David Karlsen<br />Work at EDB Financial Services as a senior architect<br /><br /><br />2<br />
  3. 3. When to measurewhat<br />Profiling during development is nice (but heavy) – you need something to monitor ”in the long run”<br />Constant monitoring during development and testcycles can help you discover stuff before you go into production<br />But since production<br />is what we really care about<br />is where your app run<br />For a long time<br />Processing most data<br />THIS IS MOST IMPORTANT<br />“If you can’t measure it, you can’t improve it” - Lord Kelvin<br />3<br />
  4. 4. Add value to the measures<br />Graphics are able to show the information better<br />When combining several measures in the same dashboard it becomes even more interesting<br />Can correlate events and see the impact as a whole<br />Make the stats available for ops so that you share this information<br />4<br />
  5. 5. Javamelody<br />” The goal of JavaMelody is to monitor Java or Java EE application servers in QA and production environments”<br /><br />Really easy to get started with<br />Add as a servlet filter<br />Or additionally add an interceptor/aspect to add additional measure points<br />Proxies for datasource to monitor all RDBS execution<br />Stores data in .rrd format locally on disk – robust<br />Can also have a central collector server<br />5<br />
  6. 6. Example pointcuts<br />@Pointcut( "withinApplication() && anyPublicMethodExecution() && targetIsMainApplicationType()" )public void anyPublicMethodExecutionWithinApplication(){}<br />@Pointcut( "withinServices() || withinDaos() || withinIntegrationLayer() " )public void withinCoreLayer(){}<br />6<br />
  7. 7. 7<br />
  8. 8.
  9. 9. drilldown<br />
  10. 10. 10<br />
  11. 11. 11<br />
  12. 12. Going further<br />Significance of metrics<br />Now that we have all this nice measures – wouldn’t it be nice to go further and use it even more proactively?<br />Check out<br />“Too often after collecting many metric and creating many pretty graphs, one realizes graph serves only as a good postmortem analytic aid. Staring at dozen of graph on a TV wall isn't monitoring, it's a waste of time!”<br />By analyzing several sources and using Esper – a Complex Event Processing (CEP) engine it’s possible to apply statistics realtime, and use this proactively to take actions.<br />12<br />
  13. 13. 13<br />
  14. 14. Summary<br />Avoid black boxes - monitoring is easy and cheap – do it!<br />Measure production continuously<br />Graphs show the information in such a way that they provide more value<br />Javamelody is an excellent way to get you started<br />Hopefully leads to performance awareness by the team<br />As you get to know the application you can go even further and apply monitoring proactively.<br />14<br />