Skip to main content
Sumo Logic

Upload Metrics to an HTTP Source

After you have added an HTTP Logs and Metrics Source to a Hosted Collector you can begin uploading data. You can upload both logs and metrics to the same HTTP source, however not in the same HTTP request. This document provides instructions on uploading metrics, if you are uploading logs see Upload Logs to an HTTP Source.

Metrics units requirements

Metrics you upload to an HTTP source must be in seconds or milliseconds. Metrics in microseconds are not supported.

Upload Metric Data

Sumo supports the following metric formats. To send metrics to an HTTP Source, you must specify a Content-Type header indicating the metric format of the request. If you omit the Content-Type header, or set a value not listed below, the HTTP payload will be ingested as log data. 

Depending on the Content-Type header specified, Sumo parses and interprets each line in the HTTP payload in the desired metric format.

Format Content-Type Header Format Description Example Datapoints
Graphite application/vnd.sumologic.graphite metric.name value timestamp prod.lb-1.cpu 87.2 1501753030
Carbon 2.0 application/vnd.sumologic.carbon2 intrinsic_tags meta_tags value timestamp

Note that there are two spaces between intrinsic_tags and meta_tags, and that meta_tags are optional. If no meta_tags are provided, there must be two spaces between intrinsic_tags and value.

cluster=prod node=lb-1 metric=cpu  ip=2.2.3.4 team=infra 87.2 1501753030

cluster=staging node=16 metric=memory  8589934592 1501753030

For more information about these example datapoints, see About the Carbon 2.0 example data points below.

About the Carbon 2.0 example data points

Two example Carbon 2.0 data points are shown in the table above.  

In the first data point, cluster=prod node=lb-1 metric=cpu  ip=2.2.3.4 team=infra 87.2 1501753030:

  • The  intrinsic_tags are: cluster=prod, node=lb-1, and metric=cpu.

  • The meta_tags are ip=2.2.3.4 and team=infra

  • The value is 87.2

  • The timestamp is 1501753030.

In the second data point, cluster=staging node=16 metric=memory  8589934592 1501753030:

  • The  intrinsic_tags are: cluster=staging, node=16, and metric=memory.

  • There are no meta_tags.

  • The value is 8589934592.

  • The timestamp is 1501753030.
     

Sending multiple metrics in a single payload

To minimize HTTP overhead, Sumo supports sending multiple metrics in a single HTTP payload. To send multiple metrics in a single HTTP payload, specify each metric in the same format, separated by newlines:

Content-Type: application/vnd.sumologic.graphite

prod.lb-1.cpu 87.2 1501753030
prod.lb-1.memory 32390 1501753030
prod.lb-1.disk 2.2 1501753030
prod.lb-1.cpu 84.6 1501753040
prod.lb-1.memory 32250 1501753040
...

Content-Type: application/vnd.sumologic.carbon2

cluster=prod node=lb-1 metric=cpu  ip=2.2.3.4 team=infra 87.2 1501753030
cluster=prod node=lb-1 metric=memory  ip=2.2.3.4 team=infra 32390 1501753030
cluster=prod node=lb-1 metric=disk  ip=2.2.3.4 team=infra 2.2 1501753030
cluster=prod node=lb-1 metric=cpu  ip=2.2.3.4 team=infra 84.6 1501753040
cluster=prod node=lb-1 metric=memory  ip=2.2.3.4 team=infra 32250 1501753040
...

Supported HTTP Headers

The following parameters can be specified via headers when sending data to an HTTP Source. The settings will apply to all messages in the request. For Source Name, Host, and Category, the header value will override any default value already specified for the Source and/or Collector.

Setting Header Name Header Value
Compressed data Content-Encoding gzip or deflate

Required if you are uploading compressed data.
Content Type (for Metrics) Content-Type application/vnd.sumologic.graphite
or
application/vnd.sumologic.carbon2

Required if you are uploading metrics.
Custom Source Name X-Sumo-Name Desired source name.

Useful if you want to override the source name configured for the source.
Custom Source Host X-Sumo-Host Desired host name.

Useful if you want to override the source host configured for the source.
Custom Source Category X-Sumo-Category Desired source category.

Useful if you want to override the source category configured for the source.
Custom Metric Dimensions X-Sumo-Dimensions Comma-separated key=value list of dimensions to apply to every metric.

For metrics only. Custom dimensions will allow you to query your metrics at a more granular level.
 
Custom Metric Metadata X-Sumo-Metadata Comma-separated, key=value list of metadata to apply to every metric.

For metrics only. Custom metadata  will allow you to query your metrics at a more granular level

Command Line Examples

cURL

When using cURL to POST data from a file: 

  • Make sure to use the -T parameter to specify the file path, not -d.
    The -d parameter causes new lines to be removed from the content, which will interfere with message boundary detection.
  • Make sure that each line in the file follows the format specified by the Content-Type header for the HTTP request.

POST upload (Graphite-formatted metrics)

curl -v -X POST -H 'Content-Type:application/vnd.sumologic.graphite' -T [local_file_name] https://collectors.sumologic.com/receiver/v1/http/[UniqueHTTPCollectorCode]

POST upload (Carbon 2.0-formatted metrics)

curl -v -X POST -H 'Content-Type:application/vnd.sumologic.carbon2' -T [local_file_name] https://collectors.sumologic.com/receiver/v1/http/[UniqueHTTPCollectorCode]

POST upload (gzip compressed metrics) 

curl -v -X POST -H 'Content-Encoding:gzip' -H 'Content-Type:application/vnd.sumologic.graphite' -T [local_file_name.gz] https://collectors.sumologic.com/receiver/v1/http/[UniqueHTTPCollectorCode]

GET upload (metrics)

curl -v -H 'Content-Type:application/vnd.sumologic.graphite' https://collectors.sumologic.com/receiver/v1/http/[UniqueHTTPCollectorCode]?my.graphite.metric%2087.2%201501759793