> ## Documentation Index
> Fetch the complete documentation index at: https://otel.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Sumologic

> OpenTelemetry exporter for Sumologic

# Sumologic Exporter

![Status](https://img.shields.io/badge/status-beta-yellow)

**Available in:** `contrib`

**Maintainers:** [@rnishtala-sumo](https://github.com/rnishtala-sumo), [@pankaj101A](https://github.com/pankaj101A), [@jagan2221](https://github.com/jagan2221)

**Source:** [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/sumologicexporter)

## Supported Telemetry

![Logs](https://img.shields.io/badge/logs-beta-blue) ![Metrics](https://img.shields.io/badge/metrics-beta-green) ![Traces](https://img.shields.io/badge/traces-beta-orange)

## Overview

## Migration to new architecture

**This exporter is undergoing major changes right now.**

We are in the process of [moving the Sumo Logic exporter into this repository](https://github.com/SumoLogic/sumologic-otel-collector/pull/1601).

The following options are no longer supported:

* `metric_format: {carbon2, graphite}`
* `metadata_attributes: [<regex>]`
* `graphite_template: <template>`
* `source_category: <template>`
* `source_name: <template>`
* `source_host: <template>`

After the new exporter will be moved to this repository:

* `carbon2` and `graphite` are no longer supported and `prometheus` or `otlp` format should be used

* all resource level attributes are treated as `metadata_attributes` so this option is no longer supported. You can use [Group by Attributes processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/groupbyattrsprocessor) to move attributes from record level to resource level. For example:

  ```yaml theme={null}
  # before switch to new collector
  exporters:
    sumologic:
      metadata_attribute:
        - my_attribute
  # after switch to new collector
  processors:
    groupbyattrs:
      keys:
        - my_attribute
  ```

* Source templates (`source_category`, `source_name` and `source_host`) are no longer supported. We recommend to use [Transform Processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor/). For example:

  ```yaml theme={null}
  # before switch to new collector
  exporters:
    sumologic:
      source_category: "%{foo}/constant/%{bar}"
  # after switch to new collector
  processors:
    transformprocessor:
      log_statements:
        context: log
        statements:
          # set default value to unknown
          - set(attributes["foo"], "unknown") where attributes["foo"] == nil
          - set(attributes["bar"], "unknown") where attributes["foo"] == nil
          # set _sourceCategory as "%{foo}/constant/%{bar}"
          - set(resource.attributes["_sourceCategory"], Concat([attributes["foo"], "/constant/", attributes["bar"]], ""))
  ```

## Configuration

This exporter supports sending logs and metrics data to [Sumo Logic](https://www.sumologic.com/).
Traces are exported using the [native otlp\_http exporter](https://help.sumologic.com/Traces/Getting_Started_with_Transaction_Tracing).

Configuration is specified via the yaml in the following structure:

```yaml theme={null}
exporters:
  # ...
  sumologic:
    # unique URL generated for your HTTP Source, this is the address to send data to
    endpoint: <HTTP_Source_URL>
    # Compression encoding format, empty string means no compression, default = gzip
    compression: {gzip, deflate, zstd, ""}
    # max HTTP request body size in bytes before compression (if applied),
    # default = 1_048_576 (1MB)
    max_request_body_size: <max_request_body_size>

    # format to use when sending logs to Sumo Logic, default = otlp,
    # see Sumo Logic documentation for details regarding log formats:
    # https://help.sumologic.com/docs/send-data/opentelemetry-collector/data-source-configurations/mapping-records-resources/
    log_format: {otlp, json, text}

    # format to use when sending metrics to Sumo Logic, default = otlp,
    # NOTE: only `otlp` is supported when used with sumologicextension
    metric_format: {otlp, prometheus}

    # Decompose OTLP Histograms into individual metrics, similar to how they're represented in Prometheus format.
    # The Sumo OTLP source currently doesn't support Histograms, and they are quietly dropped. This option produces
    # metrics similar to when metric_format is set to prometheus.
    # default = false
    decompose_otlp_histograms: {true, false}

    # Decompose OTLP Summaries into individual metrics (quantiles as gauges, count/sum as counters).
    # The Sumo OTLP source doesn't properly support Summary metrics with quantile dimensions. This option produces
    # metrics similar to when metric_format is set to prometheus, extracting quantile values as separate gauge
    # datapoints with a 'quantile' attribute, and count/sum as cumulative counter metrics.
    # default = false
    decompose_otlp_summaries: {true, false}

    # timeout is the timeout for every attempt to send data to the backend,
    # maximum connection timeout is 55s, default = 30s
    timeout: <timeout>

    # defines if sticky session support is enable.
    # default=false
    sticky_session_enabled: {true, false}

    # for below described queueing and retry related configuration please refer to:
    # https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterhelper/README.md#configuration

    retry_on_failure:
      # default = true
      enabled: {true, false}
      # time to wait after the first failure before retrying;
      # ignored if enabled is false, default = 5s
      initial_interval: <initial_interval>
      # multiplier is the factor applied to the previous delay to calculate the next retry delay;
      # ignored if enabled is false, default = 1.2
      multiplier: <multiplier>
      # is the upper bound on backoff; ignored if enabled is false, default = 5m
      max_interval: <max_interval>
      # is the maximum amount of time spent trying to send a batch;
      # ignored if enabled is false, default = 1h
      max_elapsed_time: <max_elapsed_time>

    sending_queue:
      # default = false
      enabled: {true, false}
      # number of consumers that dequeue batches; ignored if enabled is false,
      # default = 10
      num_consumers: <num_consumers>
      # when set, enables persistence and uses the component specified as a storage extension for the persistent queue
      # make sure to configure and add a `file_storage` extension in `service.extensions`.
      # default = None
      storage: <storage_name>
      # maximum number of batches kept in memory before data;
      # ignored if enabled is false, default = 1000
      #
      # user should calculate this as num_seconds * requests_per_second where:
      # num_seconds is the number of seconds to buffer in case of a backend outage,
      # requests_per_second is the average number of requests per seconds.
      queue_size: <queue_size>
      # BatchConfig it configures how the requests are consumed from the queue and batch together during consumption.
      # To enable the batching with sumologic specific default setting add the key with empty value
      # batch: {}
      batch:
        # FlushTimeout sets the time after which a batch will be sent regardless of its size.
        # default = 1s
        flush_timeout: <>
        # Sizer determines the type of size measurement used by the batch.
        # If not configured, use the same configuration as the queue.
        # It accepts "requests", "items", or "bytes".
        # default = requests
        sizer: <>
        # MinSize defines the configuration for the minimum size of a batch.
        # default = 1024
        min_size: <>
        # MaxSize defines the configuration for the minimum size of a batch.
        # default = 2048
        max_size: <>
```

## Source Templates

Source Templates are no longer supported. Please follow [Migration to new architecture](#migration-to-new-architecture)

***

*Last generated: 2026-07-06*
