SlideShare a Scribd company logo
AN ONGOING LOVE STORY

E X P E R I E N C E R E P O R T: M O N I T O R I N G
W I T H E X O M E T E R AT A D R O L L
W H AT

ARE WE LOOKING FOR?
• VM statistics
• Application-specific statistics
• Configurable reporting to multiple backends
• Very low impact in terms of CPU time,

memory consumption and network bandwidth
W H AT
ARE WE
T RY I N G
TO
AV O I D ?
• VM killers
• Application performance regressions
• Abnormal application behavior
• Surprises
How do you use
exometer?
I M P O R TA N T T E R M S
• METRIC: a measurement
• ENTRY: a receiver and aggregator of metrics
• REPORTER: an entity which samples entries on a regular

interval and optionally ships these samples onto a thirdsystem

• SUBSCRIPTION: the definition of the regular interval on which

reporters sample entries
C R E AT I N G E N T R I E S
exometer:new([rtb,bodhi,metrics_srv,packets_in],
histogram,
[{time_span, timer:seconds(60)}])
!

exometer:new([erlang, system_info],
{function, erlang, system_info, ['$dp'], value,
[port_count, process_count, thread_pool_size]}])
C R E AT I N G S U B S C R I P T I O N S
{ report,
[{ subscribers,
[ { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], max,
1000, true }
, { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], median,
1000, true }
, { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], mean,
1000, true }
, { exometer_report_statsd, [erlang, system_info], port_count, 10000, true }
…
C R E AT I N G R E P O R T E R S
{ reporters,
[{ exometer_report_statsd,
[{hostname, "localhost"}, {port, 8125},
{type_map,
[ { [rtb, bodhi, metrics_srv, packets_in, max], gauge }
, { [rtb, bodhi, metrics_srv, packets_in, median], gauge }
, { [rtb, bodhi, metrics_srv, packets_in, mean], gauge }
, { [erlang, system_info, port_count], gauge }
…
OTHER NICE THINGS

• Very easy to add your own reporters and

entries.
• Reporters and entries can be proprietary. Just

have to be loaded at runtime.
• Authors are responsive to issues.
W H Y N O T…
…FOLSOM?
… S TAT M A N ?
… V M S TAT ?
Things that don’t quite
work.
QUESTIONS?
<3
CONCERNS?

>:(
Cool, thanks!
@bltroutwine
BRIAN@TROUTWINE.US
ps. Come see me talk at
Erlang Factory SF Bay on this
very subject!

More Related Content

PDF
Monitoring Complex Systems - Chicago Erlang, 2014
PDF
Polyglot Persistence in the Real World: Cassandra + S3 + MapReduce
PPTX
Machine Learning Model Bakeoff
PPTX
Ember
PDF
Use C++ to Manipulate mozSettings in Gecko
PDF
It Probably Works - QCon 2015
PPTX
The Power of Both Choices: Practical Load Balancing for Distributed Stream Pr...
PDF
Parallel streams in java 8
Monitoring Complex Systems - Chicago Erlang, 2014
Polyglot Persistence in the Real World: Cassandra + S3 + MapReduce
Machine Learning Model Bakeoff
Ember
Use C++ to Manipulate mozSettings in Gecko
It Probably Works - QCon 2015
The Power of Both Choices: Practical Load Balancing for Distributed Stream Pr...
Parallel streams in java 8

What's hot (20)

PDF
Streams processing with Storm
PPTX
Apache Flink Training: DataSet API Basics
TXT
Code
PPT
Strata 2014 Talk:Tracking a Soccer Game with Big Data
PDF
Processing large-scale graphs with Google(TM) Pregel
PPTX
Silent Revolution by Max Voronoy (Senior Consultant, Engineering, Globallogic)
PDF
Chef patterns
PPTX
Michael Häusler – Everyday flink
PPTX
When Two Choices Are not Enough: Balancing at Scale in Distributed Stream Pro...
PDF
My Gentle Introduction to RxJS
PPTX
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
PDF
Vasia Kalavri – Training: Gelly School
PDF
rx.js make async programming simpler
PDF
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
PDF
Add Some Fun to Your Functional Programming With RXJS
PPTX
Angular2 rxjs
PDF
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
PDF
GeoMesa on Apache Spark SQL with Anthony Fox
PPTX
Deep dumpster diving 2010
PDF
Demystifying Distributed Graph Processing
Streams processing with Storm
Apache Flink Training: DataSet API Basics
Code
Strata 2014 Talk:Tracking a Soccer Game with Big Data
Processing large-scale graphs with Google(TM) Pregel
Silent Revolution by Max Voronoy (Senior Consultant, Engineering, Globallogic)
Chef patterns
Michael Häusler – Everyday flink
When Two Choices Are not Enough: Balancing at Scale in Distributed Stream Pro...
My Gentle Introduction to RxJS
Scott Anderson [InfluxData] | InfluxDB Tasks – Beyond Downsampling | InfluxDa...
Vasia Kalavri – Training: Gelly School
rx.js make async programming simpler
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Add Some Fun to Your Functional Programming With RXJS
Angular2 rxjs
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
GeoMesa on Apache Spark SQL with Anthony Fox
Deep dumpster diving 2010
Demystifying Distributed Graph Processing
Ad

Similar to Monitoring with exometer at AdRoll (20)

PDF
Router Queue Simulation in C++ in MMNN and MM1 conditions
PDF
How to reduce expenses on monitoring
PPTX
Developing service metrics
PPT
Adaptive Traffic Sampling and Management Platform
PDF
observability pre-release: using prometheus to test and fix new software
PDF
Eswc lsagrsv9-boris-110602060147-phpapp02
PPTX
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
PDF
An Improved Energy Efficiency Algorithm in Wireless Sensor Network Using Quer...
PDF
An Improved Energy Efficiency Algorithm in Wireless Sensor Network Using Quer...
PDF
les07.pdf
PDF
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
PDF
Empirical Analysis of Radix Sort using Curve Fitting Technique in Personal Co...
PDF
stackconf 2023 | How to reduce expenses on monitoring with VictoriaMetrics by...
PDF
Simulation chapter 4
PDF
Fast and Reliable Apache Spark SQL Engine
PDF
Observability and its application
PDF
Proposed pricing model for cloud computing
PDF
rscript_paper-1
PDF
International Refereed Journal of Engineering and Science (IRJES)
PPTX
Herding cats & catching fire: Workday's telemetry & middleware
Router Queue Simulation in C++ in MMNN and MM1 conditions
How to reduce expenses on monitoring
Developing service metrics
Adaptive Traffic Sampling and Management Platform
observability pre-release: using prometheus to test and fix new software
Eswc lsagrsv9-boris-110602060147-phpapp02
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
An Improved Energy Efficiency Algorithm in Wireless Sensor Network Using Quer...
An Improved Energy Efficiency Algorithm in Wireless Sensor Network Using Quer...
les07.pdf
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
Empirical Analysis of Radix Sort using Curve Fitting Technique in Personal Co...
stackconf 2023 | How to reduce expenses on monitoring with VictoriaMetrics by...
Simulation chapter 4
Fast and Reliable Apache Spark SQL Engine
Observability and its application
Proposed pricing model for cloud computing
rscript_paper-1
International Refereed Journal of Engineering and Science (IRJES)
Herding cats & catching fire: Workday's telemetry & middleware
Ad

More from Brian Troutwine (10)

PDF
(Moonconf 2016) Fetching Moths from the Works: Correctness Methods in Software
PDF
Getting Uphill on a Candle: Crushed Spines, Detached Retinas and One Small Step
PDF
The Charming Genius of the Apollo Guidance Computer
PDF
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
PDF
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
PDF
Let it crash! The Erlang Approach to Building Reliable Services
PDF
Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...
PDF
Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...
PDF
Instrumentation as a Living Documentation: Teaching Humans About Complex Systems
PDF
10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll
(Moonconf 2016) Fetching Moths from the Works: Correctness Methods in Software
Getting Uphill on a Candle: Crushed Spines, Detached Retinas and One Small Step
The Charming Genius of the Apollo Guidance Computer
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Let it crash! The Erlang Approach to Building Reliable Services
Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...
Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...
Instrumentation as a Living Documentation: Teaching Humans About Complex Systems
10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
MYSQL Presentation for SQL database connectivity
sap open course for s4hana steps from ECC to s4
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)
Agricultural_Statistics_at_a_Glance_2022_0.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
MIND Revenue Release Quarter 2 2025 Press Release
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity

Monitoring with exometer at AdRoll

  • 1. AN ONGOING LOVE STORY E X P E R I E N C E R E P O R T: M O N I T O R I N G W I T H E X O M E T E R AT A D R O L L
  • 2. W H AT ARE WE LOOKING FOR?
  • 3. • VM statistics • Application-specific statistics • Configurable reporting to multiple backends • Very low impact in terms of CPU time, memory consumption and network bandwidth
  • 4. W H AT ARE WE T RY I N G TO AV O I D ?
  • 5. • VM killers • Application performance regressions • Abnormal application behavior • Surprises
  • 6. How do you use exometer?
  • 7. I M P O R TA N T T E R M S • METRIC: a measurement • ENTRY: a receiver and aggregator of metrics • REPORTER: an entity which samples entries on a regular interval and optionally ships these samples onto a thirdsystem • SUBSCRIPTION: the definition of the regular interval on which reporters sample entries
  • 8. C R E AT I N G E N T R I E S exometer:new([rtb,bodhi,metrics_srv,packets_in], histogram, [{time_span, timer:seconds(60)}]) ! exometer:new([erlang, system_info], {function, erlang, system_info, ['$dp'], value, [port_count, process_count, thread_pool_size]}])
  • 9. C R E AT I N G S U B S C R I P T I O N S { report, [{ subscribers, [ { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], max, 1000, true } , { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], median, 1000, true } , { exometer_report_statsd, [rtb, bodhi, metrics_srv, packets_in], mean, 1000, true } , { exometer_report_statsd, [erlang, system_info], port_count, 10000, true } …
  • 10. C R E AT I N G R E P O R T E R S { reporters, [{ exometer_report_statsd, [{hostname, "localhost"}, {port, 8125}, {type_map, [ { [rtb, bodhi, metrics_srv, packets_in, max], gauge } , { [rtb, bodhi, metrics_srv, packets_in, median], gauge } , { [rtb, bodhi, metrics_srv, packets_in, mean], gauge } , { [erlang, system_info, port_count], gauge } …
  • 11. OTHER NICE THINGS • Very easy to add your own reporters and entries. • Reporters and entries can be proprietary. Just have to be loaded at runtime. • Authors are responsive to issues.
  • 12. W H Y N O T… …FOLSOM? … S TAT M A N ? … V M S TAT ?
  • 13. Things that don’t quite work.
  • 17. ps. Come see me talk at Erlang Factory SF Bay on this very subject!