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

Erlang Application Metrics with Folsom

on

  • 2,327 views

 

Statistics

Views

Total Views
2,327
Slideshare-icon Views on SlideShare
2,296
Embed Views
31

Actions

Likes
3
Downloads
17
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 Erlang Application Metrics with Folsom Presentation Transcript

    • Erlang Application Metrics with Folsom Joe Williams (@williamsjoe) Boundary (@boundary / boundary.com)Friday, March 30, 12
    • Who Am I? • Joe Williams • @williamsjoe • Ops at BoundaryFriday, March 30, 12
    • What is Boundary? • Realtime Monitoring and Analytics Platform • We’re hiring! • TRY MY PRODUCTFriday, March 30, 12
    • Agenda • Current and Future Monitoring Systems • Define “Application Metrics” • What is Folsom? • How do you use Folsom?Friday, March 30, 12
    • 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
    • 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
    • Application Metrics • “.. code generates business value when it runs.” ~ Coda HaleFriday, March 30, 12
    • 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
    • Folsom • Application-level metrics • Multiple metric types • Powerful statistical analysis • Easily extensibleFriday, March 30, 12
    • Folsom DEMO!Friday, March 30, 12
    • Metric Types • Counters • Gauges • Histograms • Histories • Meters • Erlang VM MetricsFriday, March 30, 12
    • Counters • Counter metrics provide increment and decrement capabilities for a single scalar value.Friday, March 30, 12
    • Counters > folsom_metrics:new_counter(Name). > folsom_metrics:notify({Name, {inc, Value}}). > folsom_metrics:notify({Name, {dec, Value}}).Friday, March 30, 12
    • Gauges • Gauges are point-in-time single value metrics.Friday, March 30, 12
    • Gauges > folsom_metrics:new_gauge(Name). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
    • 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
    • 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
    • Histories • Histories are a collection of past events, such as errors or log messages.Friday, March 30, 12
    • Histories > folsom_metrics:new_history(Name). > folsom_metrics:get_history_values(Name, Count). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
    • 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
    • Meters > folsom_metrics:new_meter(Name). > folsom_metrics:notify({Name, Value}).Friday, March 30, 12
    • Erlang VM • General VM metrics provided by Erlang VM.Friday, March 30, 12
    • 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
    • Statistics • Statistical Analysis • Exponentially Weighted Moving Average (EWMA) • Rate / Acceleration • Avg, Mean, Min, Max, etc • Distribution • Percentiles / Histograms • Covariance / CorrelationFriday, March 30, 12
    • Sampling • Exponentially decaying • Uniform • NoneFriday, March 30, 12
    • Extensibility • Clean Native API • Folsom Wrappers • REST+JSON • Munin plugins! • SNMP? Graphite? CollectD?Friday, March 30, 12
    • 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
    • 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
    • Folsom DEMO!Friday, March 30, 12
    • Questions? Joe Williams (@williamsjoe) Boundary (@boundary / boundary.com) https://github.com/boundary/folsomFriday, March 30, 12