/splunk-otel-collector

Primary LanguageGoApache License 2.0Apache-2.0


Getting Started   •   Getting Involved   •   Migrating from Smart Agent

Go Report Card Build Status Codecov Status GitHub release (latest by date including pre-releases) Beta

Architecture   •   Components   •   Monitoring   •   Security   •   Sizing   •   Troubleshooting


Splunk OpenTelemetry Collector

Splunk OpenTelemetry Collector is a distribution of the OpenTelemetry Collector. It provides a unified way to receive, process, and export metric, trace, and log data for Splunk Observability Cloud:

While it is recommended to use Splunk Forwarders to send data to Splunk Cloud or Splunk Enterprise, Splunk OpenTelemetry Collector can be configured to send data to them via the splunk_hec exporter.

🚧 This project is currently in BETA (what does beta mean?)

Getting Started

The following resources are available:

  • Architecture: How the Collector can be deployed
  • Components: What the Collector supports with links to documentation
  • Monitoring: How to ensure the Collector is healthy
  • Security: How to ensure the Collector is secure
  • Sizing: How to ensure the Collector is properly sized
  • Troubleshooting: How to resolve common issues

All you need to get started is:

This distribution is supported on and packaged for a variety of platforms including:

You can consult additional use cases in the examples directory.

Advanced Configuration

A variety of default configuration files are provided:

  • OpenTelemetry Collector see full_config_linux.yaml for a commented configuration with links to full documentation. agent_config.yaml is the recommended starting configuration for most environments.
  • Fluentd applicable to Helm or installer script installations only. See the *.conf files as well as the conf.d directory. Common sources including filelog, journald, and Windows event viewer are included.

In addition, the following components can be configured:

Upgrade guidelines

The following changes need to be done to configuration files for Splunk OTel Collector for specific version upgrades. We provide automated scripts included in the bundle that cover backward compatibility on the fly, but configuration files will not be overridden, so you need to update them manually before the backward compatibility is dropped. For every configuration update use the default agent config as a reference.

From 0.35.0 to 0.36.0

  • Configuration parameter "exporters -> otlp -> insecure" is moved to "exporters -> otlp -> tls -> insecure".

    More details: open-telemetry/opentelemetry-collector#4063.

    Configuration part for otlp exporter should look like this:

    exporters:
      otlp:
        endpoint: "${SPLUNK_GATEWAY_URL}:4317"
        tls:
          insecure: true

From 0.34.0 to 0.35.0

  • ballast_size_mib parameter moved from memory_limiter processor to memory_ballast extension as size_mib.

    More details: signalfx#567.

    Remove ballast_size_mib parameter from memory_limiter and make sure that it's added to memory_ballast extension as size_mib parameter instead:

    extensions:
      memory_ballast:
        size_mib: ${SPLUNK_BALLAST_SIZE_MIB}

Using Upstream OpenTelemetry Collector

It is possible to use the upstream OpenTelemetry Collector instead of this distribution. The following features are not available upstream at this time:

  • Packaging
    • Installer scripts for Linux and Windows
    • Configuration management via Ansible or Puppet
  • Configuration sources
  • Several SignalFx Smart Agent capabilities

⚠️ Splunk only provides best-effort support for upstream OpenTelemetry

In order to use the upstream OpenTelemetry Collector:

  • Use the contrib distribution as commercial exporters must reside in contrib
  • Properly configuration the Collector

An example configuration for upstream, that ensures infrastructure correlation is properly configured, is available here.

License

Apache Software License version 2.0.

ℹ️  SignalFx was acquired by Splunk in October 2019. See Splunk SignalFx for more information.