Sumo supports the Graphite and the Carbon 2.0 metric formats. Both are plaintext protocols. Each format specifies the identifier of the specific metric, the value of the measurement, and a timestamp that indicates when the measurement was made.
Graphite metrics are formatted like this:
metric_path metric_value metric_timestamp
metric_pathis a dot-separated string that identifies the thing being measured.
metric_valueis any numeric value.
metric_timestampis a UNIX timestamp.
Here’s an example of a graphite metric:
cluster-1.node-1.cpu-1.cpu-idle 97.29 1460061337
In the metric above,
- The thing being measured is
cluster-1.node-1.cpu-1.cpu-idle, which we could colloquially refer to as the
cpu-idlevalue for cpu-1, in node-1, in cluster-1.
- The value measured is 97.29.
- The timestamp for the instant that the metric was measured is 1460061337.
One key difference between the Graphite and Carbon 2.0 formats is that Carbon 2.0 supports meta tags, which are key-value pairs that make it easier to query metrics. (See Carbon 2.0 example for more information about meta tags.)
Carbon 2.0 example
Carbon 2.0 metrics conform to the Metrics 2.0 specification. Carbon 2.0 metrics look like this:
intrinsic_tags meta_tags value timestamp
intrinsic_tagsis one or more space-separated key-value pairs that uniquely identify what is being measured. Intrinsic tags are also referred to as dimensions.
meta_tagsis zero or more space-separated key-value pairs that provide additional, but not identifying information about the thing being measured. A meta tag is a piece of metadata that might be useful in querying your metrics. It doesn’t identify the thing being measured, but provides additional information of interest. For example, it might be interesting to know the collection agent that obtained the measurement.
valueis any numeric value.
timestampis a UNIX timestamp.
In the Carbon 2.0 format, two spaces must be used after
tags, even if no
meta_tags are specified.
In the Graphite-formatted metric described above, the bit that identifies the thing being measured—the
In the Carbon 2.0 format, that metric_path translates to a set of intrinsic tags:
cluster=cluster-1 node=node-1 cpu=cpu-1 metric=cpu_idle
Carbon 2.0 is a richer metric format than Graphite, because it supports meta tags. So, a Carbon 2.0-formatted version of our example metric could include additional key-value pairs that will make our metrics easy to query. For example, below we include a meta tag that identifies the agent that collected the metric.
cluster=cluster-1 node=node-1 cpu=cpu-1 agent=biggie 97.29 1460061337
Limits on meta_tag updates
Note that for Carbon 2.0 metrics, you can update the value of a
meta_tag for a given time series six times per day at most. Additional updates to that
meta_tag for that time series will not be reflected in Sumo.