Skip to main content
Sumo Logic

Metric Formats

Sumo Logic supports the Graphite, Carbon 2.0, and Prometheus metric formats.

Sumo supports the Graphite, Carbon 2.0, and Prometheus metric formats. 

Graphite

Graphite metrics are formatted like this:

metric_path metric_value metric_timestamp

Where:

  • metric_path is a dot-separated string that identifies the thing being measured.
  • metric_value is any numeric value.
  • metric_timestamp is 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-idle value 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.

Carbon 2.0

Carbon 2.0 metrics conform to the Metrics 2.0 specification. Carbon 2.0 metrics look like this:

intrinsic_tags meta_tags value timestamp

Where:

  • intrinsic_tags is one or more space-separated key-value pairs that uniquely identify what is being measured. Intrinsic tags are also referred to as dimensions. 
  • meta_tags is 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. 
  • value is any numeric value.
  • timestamp is a UNIX timestamp.

In the Carbon 2.0 format, two spaces must be used after intrinsic_tags, even if no meta_tags are specified. 

In the Graphite-formatted metric described above, the bit that identifies the thing being measured—the metric_path—is:

cluster-1.node-1.cpu-1.cpu-idle 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

Prometheus

In the Prometheus format, a time series is uniquely identified by its metric name and a set of labels, which are key-value pairs. It's formed like this:

# HELP metric_name metric_description
# TYPE metric_name metric_type
metric_name labels value timestamp
metric_name labels value timestamp


Here is an example of a Prometheus metric exposition for two time series. (The process of making metrics available to Prometheus is called exposition.) 

# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027 1395066363000
http_requests_total{method="post",code="400"}    3 1395066363000

See the table below for descriptions of the components of a Prometheus metric exposition.

Component  Description
metric_name Specifies the general feature of a system that is measured. For example:

http_requests_total
metric_description An arbitrary description or category for the metric. For example:

requests
metric_type the type of the metric, one of counter, gauge, histogram, summary, or untyped.
labels Zero or more space-separated key-value pairs that identify a particular dimensional instantiation of the metric, for example:

http_requests_total{method="post",code="200"} 1027 1395066363000
http_requests_total{method="post",code="400"}    3 1395066363000
value  Value of the metric.
timestamp The time the metric was collected, in int64 format. 

The Prometheus format does not support metadata in the format itself. You can attach metadata to Prometheus metrics by specifying it the HTTP header when you upload the metrics to Sumo. For more information, see Upload Metrics to an HTTP Source.