Erlang Application Metrics with Folsom
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Erlang Application Metrics with Folsom

on

  • 2,475 views

 

Statistics

Views

Total Views
2,475
Views on SlideShare
2,444
Embed Views
31

Actions

Likes
3
Downloads
18
Comments
0

1 Embed 31

https://twitter.com 31

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Erlang Application Metrics with Folsom Presentation Transcript

  • 1. Erlang Application Metrics with Folsom Joe Williams (@williamsjoe) Boundary (@boundary / boundary.com)Friday, March 30, 12
  • 2. Who Am I? • Joe Williams • @williamsjoe • Ops at BoundaryFriday, March 30, 12
  • 3. What is Boundary? • Realtime Monitoring and Analytics Platform • We’re hiring! • TRY MY PRODUCTFriday, March 30, 12
  • 4. Agenda • Current and Future Monitoring Systems • Define “Application Metrics” • What is Folsom? • How do you use Folsom?Friday, March 30, 12
  • 5. Legacy Monitoring Tools • Consumers of application metrics • Munin, Ganglia, etc • Wide variety of protocols, interfaces and formats • Usually RRD, results in inflexible, infrequently refreshed PNGs on HTML • Not what this talk is about.Friday, March 30, 12
  • 6. Current Monitoring Tools • Consumers of application metrics • OpenTSDB, statsd, Rienmann, etc are a steps in the right direction • Hopefully fewer protocols, interfaces and formats • Realtime, dynamic graphing • Not what this talk is about.Friday, March 30, 12
  • 7. Application Metrics • “.. code generates business value when it runs.” ~ Coda HaleFriday, March 30, 12
  • 8. Application Metrics • Code instrumentation • Write code to measure code • Verify code behaves as you expect • Exporting results of instrumentation • General VM healthFriday, March 30, 12
  • 9. Folsom • Application-level metrics • Multiple metric types • Powerful statistical analysis • Easily extensibleFriday, March 30, 12
  • 10. Folsom DEMO!Friday, March 30, 12
  • 11. Metric Types • Counters • Gauges • Histograms • Histories • Meters • Erlang VM MetricsFriday, March 30, 12
  • 12. Counters • Counter metrics provide increment and decrement capabilities for a single scalar value.Friday, March 30, 12
  • 13. Counters > folsom_metrics:new_counter(Name). > folsom_metrics:notify({Name, {inc, Value}}). > folsom_metrics:notify({Name, {dec, Value}}).Friday, March 30, 12
  • 14. Gauges • Gauges are point-in-time single value metrics.Friday, March 30, 12
  • 15. Gauges > folsom_metrics:new_gauge(Name). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
  • 16. Histograms • Histograms are collections of values that have statistical analysis done to them, such as mean, min, max, kurtosis and percentile. • The can be used like "timers" as well with the timed update functions.Friday, March 30, 12
  • 17. Histograms > folsom_metrics:new_histogram(Name). > folsom_metrics:histogram_timed_update(Name, Mod, Fun, Args). > folsom_metrics:histogram_timed_update(Name, Fun, Args). > folsom_metrics:histogram_timed_update(Name, Fun). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
  • 18. Histories • Histories are a collection of past events, such as errors or log messages.Friday, March 30, 12
  • 19. Histories > folsom_metrics:new_history(Name). > folsom_metrics:get_history_values(Name, Count). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
  • 20. Meters • Meters are increment only counters with mean rates and exponentially weighted moving averages applied to them, similar to a unix load average.Friday, March 30, 12
  • 21. Meters > folsom_metrics:new_meter(Name). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
  • 22. Erlang VM • General VM metrics provided by Erlang VM.Friday, March 30, 12
  • 23. Erlang VM > folsom_vm_metrics:get_memory(). > folsom_vm_metrics:get_system_info(). > folsom_vm_metrics:get_statistics(). > folsom_vm_metrics:get_port_info(). > folsom_vm_metrics:get_process_info().Friday, March 30, 12
  • 24. Statistics • Statistical Analysis • Exponentially Weighted Moving Average (EWMA) • Rate / Acceleration • Avg, Mean, Min, Max, etc • Distribution • Percentiles / Histograms • Covariance / CorrelationFriday, March 30, 12
  • 25. Sampling • Exponentially decaying • Uniform • NoneFriday, March 30, 12
  • 26. Extensibility • Clean Native API • Folsom Wrappers • REST+JSON • Munin plugins! • SNMP? Graphite? CollectD?Friday, March 30, 12
  • 27. Future Work • Metrics REST+JSON Spec • Performance Improvements • Better Querying, Slicing and etc of metric values • More metric types (meter reader, timer, etc)Friday, March 30, 12
  • 28. Similar Tools • Coda Hale’s Metrics (JVM) - github.com/coda/metrics • Ruby - github.com/johnewart/ruby-metrics • JavaScript - github.com/mikejihbe/metrics • .NET Metrics - github.com/danielcrenna/metrics-net • Ostrich - github.com/twitter/ostrich • Python Ostrich - github.com/wadey/python-ostrich • .Net Ostrich - github.com/ewhauser/OstrichNetFriday, March 30, 12
  • 29. Folsom DEMO!Friday, March 30, 12
  • 30. Questions? Joe Williams (@williamsjoe) Boundary (@boundary / boundary.com) https://github.com/boundary/folsomFriday, March 30, 12