, 9 tweets, 3 min read Read on Twitter
i'm feeling inspired seeing all these tweets and comments flooding out of #monitorama.

so i'm going to tweet some factoids and common misunderstandings throughout the day as they come to me (or as i notice people committing said sins) #o11yfacts incoming!
#o11yfacts 1: there are two different meanings of the word 'metrics'.

There are small-m "metrics", a generic collective noun for statistical data. And there are statsd "Metrics", which are a specific data type consisting of a single number with n tags appended to it.
Tags are a way of adding dimensions to the number so they can be sorted, grouped and described more usefully.

Statsd Metrics can be one of a small number of types, e.g. counter, gauge, histogram, summary, timing, etc, which inform the aggregator how to process or bucket them.
For a long time statsd and its descendants (wavefront, signalfx, datadog, etc) have been the dominant game in town when it comes to monitoring.

This means a lot of people have the Metrics data model lodged firmly in their heads, and assume that Metrics and metrics are the same.
Metrics are fast, cheap, small, have a fixed schema, and are a great fit for tsdbs -- you can pre-aggregate before they even reach the server, then downsample and lose resolution over time so you retain long term data without increasing your storage footprint or cost.
But Metrics have severe limitations, too.

You might fire off hundreds of Metrics over the course of a single request, yet they are disconnected from one another; there is no way of guaranteeing that any two of them describe the same request or were true at the same time.
If you take advantages of the properties that make them cheap, you quickly find yourself in the realm of nonsense numbers that make no god damn sense, because they're averages of averages (of averages).

And statsd descendants only handle low cardinality dimensions.
Therefore, Metrics-based systems are primarily usable for monitoring known-unknowns or describing the health of the system in aggregate over time.

They are terrible for debugging scenarios, or trying to understand user experience, or unknown-unknowns. Just about impossible.
Lots of people use metrics/Metrics interchangeably. I never say it unless I'm referring to statsd-style Metrics, to avoid confusion.

As you investigate observability and adopt newer paradigms for complex systems, you may want to familiarize yourself with this difference. 🍻
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Charity Majors
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!