Docs » Get started with the Splunk Distribution of the OpenTelemetry Collector » Collector components

Collector components 🔗

The OpenTelemetry Collector includes the following component types:

  • Receivers: Get data into the Collector from multiple sources.

  • Processors: Perform operations on data before it’s exported. For example, filtering.

  • Exporters: Send data to one or more backends or destinations.

  • Extensions: Extend the capabilities of the Collector.

  • Connectors: Send telemetry data between different collector pipelines.

You can activate components by configuring service pipelines in the Collector configuration. See Get started: Understand and use the Collector to learn how to define multiple instances of components as well as their pipelines.

The Splunk Distribution of the OpenTelemetry Collector includes and supports the components listed on this doc.

Note

The following lists might not contain all the latest additions. For a complete list of Collector components, including components that aren’t included in the Splunk Distribution of OpenTelemetry Collector, see the opentelemetry-contrib repository in GitHub.

Receivers¶

Name

Description

Pipeline types

Apache Web Server receiver (apache)

Fetches stats from a Apache Web Server.

Metrics

Apache Spark receiver (apachespark)

Fetches metrics for an Apache Spark cluster through the Apache Spark REST API.

Metrics

Azure event hub receiver (azureeventhub)

Pulls logs from an Azure event hub.

Logs

Carbon receiver (carbon)

Receives metrics in Carbon plaintext protocol.

Metrics

Cloud Foundry receiver (cloudfoundry)

Connects to the Reverse Log Proxy (RLP) gateway of Cloud Foundry to extract metrics.

Metrics

CollectD receiver (collectd)

Receives data exported through the CollectD write_http plugin. Only supports the JSON format.

Metrics

Discovery receiver (discovery) elasticsearch-receiver

Wraps the receiver creator to facilitate the discovery of metric collection targets. See Discover telemetry sources automatically.

Logs

Elasticsearch receiver (elasticsearch)

Queries the Elasticsearch node stats, cluster health and index stats endpoints to scrape metrics from a running Elasticsearch cluster.

Metrics

Filelog receiver (filelog)

Tails and parses logs from files.

Logs

Fluent Forward receiver (fluentforward)

Runs a TCP server that accepts events through the Fluentd Forward protocol.

Logs

HAProxy receiver (haproxy)

Generates metrics by polling periodically the HAProxy process through a dedicated socket or HTTP URL.

Metrics

Host metrics receiver (hostmetrics)

Generates system metrics from various sources. Use this receiver when deploying the Collector as an agent.

Metrics

HTTP check receiver (httpcheck)

Performs synthethic checks against HTTP endpoints.

Metrics

Jaeger receiver (jaeger)

Receives trace data in Jaeger format.

Traces

JMX receiver (jmx)

Works in conjunction with the OpenTelemetry JMX Metric Gatherer to report metrics from an MBean server.

Metrics

Journald receiver (journald)

Parses Journald events from the systemd journal. The journalctl binary must be in the same $PATH of the agent.

Logs

Kafka receiver (kafka)

Receives metrics, logs, and traces from Kafka. Metrics and logs only support the OTLP format.

Metrics, logs, traces

Kafka metrics receiver (kafkametrics)

Collects Kafka metrics such as brokers, topics, partitions, and consumer groups from Kafka server, and converts them to OTLP format.

Metrics

Kubernetes cluster receiver (k8s_cluster)

Collects cluster-level metrics from the Kubernetes API server. It uses the Kubernetes API to listen for updates. You can use a single instance of this receiver to monitor a cluster.

Metrics

Kubernetes events receiver (k8s_events)

Collects all new and updated events from the Kubernetes API server. Supports authentication through service accounts only.

Logs

Kubernetes objects receiver (k8sobjects)

Collects objects from the Kubernetes API server. Supports authentication through service accounts only.

Logs

Kubelet stats receiver (kubeletstats)

Pulls pod metrics from the API server on a kubelet.

Metrics

MongoDB receiver (mongodb)

Fetches stats from a MongoDB instance using the Golang mongo driver.

Metrics

MongoDB Atlas receiver (mongodbatlas)

Retrieves metrics from MongoDB Atlas using their monitoring APIs.

Metrics

Microsoft SQL server receiver (sqlserver)

Grabs metrics from a Microsoft SQL Server instance.

Metrics

MySQL receiver (mysql)

Queries and retrieves metrics about MySQL’s global status and InnoDB tables.

Metrics

NGINX receiver (nginx)

Fetches stats from a NGINX instance using the ngx_http_stub_status_module module’s status endpoint.

Metrics

Oracle Database receiver (oracledb)

Connects to an Oracle Database instance and obtains metrics such as physical reads, CPU, time, and others.

Metrics

OTLP receiver (otlp)

Receives data through gRPC or HTTP using OTLP format.

Metrics, logs, traces

PostgreSQL receiver (postgresql)

Queries the PostgreSQL statistics collector. Supports PostgreSQL version 9.6 and higher.

Metrics

Prometheus receiver (prometheus)

Provides a simple configuration interface to scrape metrics from a single target.

Metrics

Simple Prometheus receiver (prometheus_simple)

Wraps the prometheus receiver to provide simplified settings for single targets.

Metrics

RabbitMQ receiver (rabbitmq)

Fetches stats from a RabbitMQ node using the RabbitMQ Management Plugin.

Metrics

Receiver creator receiver (receiver_creator)

Instantiates other receivers at runtime based on whether observed endpoints match a configured rule. To use the receiver creator, configure one or more observer extensions to discover networked endpoints.

N/A

Redis receiver (redis)

Retrieves Redis INFO data from a specific Redis instance and builds metrics from it.

Metrics

SAPM receiver (sapm)

Receives traces from other collectors or from the SignalFx Smart Agent.

Traces

SignalFx Gateway Prometheus remote write receiver (signalfxgatewayprometheusremotewritereceiver)

OTel native version of the SignalFx Prometheus remote write gateway.

Metrics

SignalFx receiver (signalfx)

Accepts metrics and logs in the proto format.

Metrics, logs

Smart Agent receiver (smartagent)

Uses the existing Smart Agent monitors as Collector metric receivers. Learn more in Use Smart Agent monitors with the Collector.

Metrics

Splunk Enterprise receiver (splunkenterprise)

Enables the ingestion of performance metrics describing the operational status of a user’s Splunk Enterprise deployment.

Metrics

Splunk HEC receiver (splunk_hec)

Accepts telemetry in the Splunk HEC format.

Metrics, logs, traces

SQL Query receiver (sqlquery)

Runs custom SQL queries to generate metrics from a database connection.

Metrics

SSH check receiver (sshcheck)

Creates stats by connecting to an SSH server, might be an SFTP server.

Metrics

StatsD receiver (statsd)

Collects StatsD messages to generate metrics.

Metrics

Syslog receiver (syslog)

Parses syslog messages received over TCP or UDP.

Logs

TCP log receiver (tcplog)

Receives logs over TCP.

Logs

UDP log receiver (udplog)

Receives logs over UDP.

Logs

vCenter receiver (vcenter)

Supports ESXi and vCenter.

Metrics

Wavefront receiver (wavefront)

Accepts metrics and depends on the carbon receiver proto and transport.

Metrics

Windows event log receiver (windowseventlog)

Tails and parses logs from the Windows Event log API.

Logs

Windows Performance Counters receiver (windowsperfcounters) (Windows only)

Collects the configured system, application, or custom performance counter data from the Windows Registry.

Metrics

Zipkin receiver (zipkin)

Receives spans from Zipkin versions 1 and 2.

Traces

Processors¶

Name

Description

Pipeline types

Attributes processor (attributes)

Modifies attributes of a span or log record.

Logs, traces

Batch processor (batch)

Accepts spans, metrics, or logs and places them into batches. Batching helps better compress the data and reduce the number of outgoing connections required to transmit the data. This processor supports both size-based and time-based batching.

Metrics, logs, traces

Cumulative to delta processor (cumulativetodelta)

Convert cumulative monotonic metrics to delta aggretation temporality. This enhances the usage of cumulative metrics in Splunk Observability Cloud.

Metrics

Filter processor (filter)

Can be configured to include or exclude metrics based on metric name in the case of the strict or regexp match types, or based on other metric attributes in the case of the expr match type.

Metrics

Group by attributes processor (groupbyattrs)

Reassociates spans, log records, and metric data points to a resource that matches with the specified attributes. As a result, all spans, log records, or metric data points with the same values for the specified attributes are grouped under the same resource.

Metrics, logs, traces

Kubernetes attributes processor (k8sattributes)

Allows automatic tagging of spans, metrics, and logs with Kubernetes metadata. Formerly known as k8s_tagger.

Metrics, logs, traces

Memory Limiter processor (memory_limiter)

Prevents out of memory situations on the Splunk Distribution of OpenTelemetry Collector.

Metrics, logs, traces

Metrics transform processor (metricstransform)

Renames metrics, and adds, renames, or deletes label keys and values.

Metrics

Probabilistic sampler processor (probabilisticsampler)

Supports several modes of sampling for spans and log records.

Traces, logs

Redaction processor (redaction)

Deletes span attributes that don’t match a list of allowed attributes. It also masks span attribute values that match a blocked value list.

Traces

Resource processor (resource)

Applies changes to resource attributes. Attributes represent actions that can be applied on resources.

Metrics, logs, traces

Resource detection processor (resourcedetection)

Detects resource information from the host, in a format that conforms to the OpenTelemetry resource semantic conventions, and appends or overrides the resource value in telemetry data with this information.

Metrics, logs, traces

Routing processor (routing)

Reads a header from the incoming HTTP request or reads a resource attribute, and then directs the trace information to specific exporters based on the value.

Metrics, logs, traces

Span processor (span)

Modifies either the span name or attributes of a span based on the span name.

Traces

Tail sampling processor (tail_sampling)

Samples traces based on a set of defined policies. All spans for a given trace must be received by the same Collector instance for effective sampling decisions.

Traces

Transform processor (transform)

Modifies telemetry based on OpenTelemetry Transformation Language functions.

Metrics, logs, traces

Exporters¶

Name

Description

Pipeline types

AWS S3 exporter (awss3)

This exporter targets to support proto/json format.

Metrics, logs, traces

File exporter (file)

Writes pipeline data to a JSON file in Protobuf JSON encoding using the OpenTelemetry protocol.

Metrics, logs, traces

Kafka exporter (kafka)

Exports metrics, logs, and traces to Kafka using a synchronous producer.

Metrics, logs, traces

Load balancing exporter (loadbalancing)

Exports metrics, logs, and traces to different back-ends.

Metrics, logs, traces

Logging exporter (logging)

Exports data to the console. By default, logging doesn’t send its output to Windows Event Viewer. Run the Splunk Distribution of OpenTelemetry Collector directly from the PowerShell terminal to send output to the Windows Event Viewer.

Metrics, logs, traces

OTLP exporter (otlp)

Exports data through gRPC using the OTLP format. By default, this exporter requires TLS and provides queued retry capabilities.

Metrics, logs, traces

OTLP/HTTP exporter (otlphttp)

Exports data in OTLP format over the HTTP protocol.

Metrics, logs, traces

Pulsar exporter (pulsar)

Exports logs, metrics, and traces to Pulsar.

Metrics, logs, traces -

SignalFx exporter (signalfx)

Sends metrics, events, and trace correlation to Splunk Observability Cloud.

Logs (events), metrics, traces (trace to metric correlation only)

Splunk APM exporter (sapm)

Exports traces from multiple nodes or services in a single batch.

Traces

Splunk HEC exporter (splunk_hec)

Sends telemetry to a Splunk HEC endpoint.

Metrics, logs, traces

Extensions¶

Name

Description

Basicauth extension (basicauth)

Implements both configauth.ServerAuthenticator and configauth.ClientAuthenticator to authenticate clients and servers using basic authentication. The authenticator type has to be set to basicauth.

Docker Observer extension (docker_observer)

Detects and reports container endpoints discovered through the Docker API. Only containers that are in the state of Running and not Paused emit endpoints.

ECS Observer extension (ecs_observer)

Uses the ECS and EC2 API to discover Prometheus scrape targets from all running tasks and filter them based on service names, task definitions, and container labels. Only compatible with the Prometheus receiver.

ECS task observer extension (ecs_task_observer)

Detects and reports container endpoints for the running ECS task of which your Collector instance is a member.

File storage extension (file_storage)

Persists state to the local file system. Requires read and write access to a diectory.

Health Check extension (health_check)

Activates an HTTP URL that can be probed to check the status of the OpenTelemetry Collector. You can also use this extension as a liveness or readiness probe on Kubernetes.

HTTP forwarder extension (http_forwarder)

Accepts HTTP requests and optionally adds headers and forwards them. The RequestURIs of the original requests are preserved by the extension.

Host observer extension (host_observer)

Looks at the current host for listening network endpoints. Uses the /proc file system and requires the SYS_PTRACE and DAC_READ_SEARCH capabilities so that it can determine what processes own the listening sockets. See Receiver creator receiver for more information.

Kubernetes observer extension (k8s_observer)

Uses the Kubernetes API to discover pods running on the local node. See Receiver creator receiver for more information.

Memory Ballast extension (deprecated) (memory_ballast)

memory_ballast is deprecated. If you’re using this extension, see how to update your configuration.

OAuth2 Client Auth extension (oauth2client)

Provides OAuth2 Client Credentials flow authenticator for HTTP and gRPC based exporters.

Pprof observer extension (pprof)

Activates the golang net/http/pprof endpoint, which is used to collect performance profiles and investigate issues with a service.

Smart Agent extension (smartagent)

Provides a mechanism to set configuration options that are applicable to all instances of the Smart Agent receiver. Allows to migrate your existing Smart Agent configuration to the Splunk Distribution of OpenTelemetry Collector.

zPages extension (zpages)

Activates an extension that serves zPages, an HTTP endpoint that provides live data for debugging different components.

Connectors¶

A connector connects different pipelines and helps you send telemetry data between them. A connector acts as an exporter to one pipeline and a receiver to another.

Each pipeline in the OpenTelemetry Collector acts on one type of telemetry data. If you need to process one form of telemetry data into another one, route the data accordingly to its proper collector pipeline.

Name

Description

Pipeline types

Span Metrics connector (spanmetrics)

Aggregates Request, Error and Duration (R.E.D) OpenTelemetry metrics from span data.

Traces, metrics

Next steps¶

See the following docs:

This page was last updated on Oct 10, 2024.