SignalFx Smart Agent Receiver
Note: The SignalFx Smart Agent receiver is only supported on x86_64/amd64 platforms.
The Smart Agent Receiver allows you to utilize existing SignalFx Smart Agent monitors
as OpenTelemetry Collector metric receivers. It assumes that you have a properly configured environment with a
functional Smart Agent release bundle on your system,
which is already provided for x86_64/amd64 Splunk Distribution of OpenTelemetry Collector
installation paths.
Beta: All Smart Agent monitors are supported at this time. Configuration and behavior may change without notice.
Configuration
Each smartagent
receiver configuration acts as a drop-in replacement for each supported Smart Agent Monitor
configuration with some exceptions:
- Any Agent global or collectd desired configuration should be performed via the
Smart Agent Extension.
- In lieu of
discoveryRule
support, the Collector's
receivercreator
and associated Observer extensions
should be used.
- The
signalfx-forwarder
monitor should be made part of both metrics
and traces
pipelines utilizing the
signalfx
and sapm
exporters, respectively.
- All metric content replacement and transformation rules should utilize existing
Collector processors.
- Monitors with dimension property and tag update
functionality
allow an associated
dimensionClients
field that references the name of the SignalFx exporter you are using in your
pipeline. These monitors include ecs-metadata
, heroku-metadata
, kubernetes-cluster
, openshift-cluster
, postgresql
,
and sql
.
If you do not specify any exporters via this field, the receiver will attempt to use the associated
pipeline. If the next element of the pipeline isn't compatible with the dimension update behavior, and if you configured
a single SignalFx exporter for your deployment, the exporter will be selected. If no dimension update behavior is desired,
you can specify the empty array []
to disable.
- Monitors with event-sending
functionality should also be made members of
a
logs
pipeline that utilizes a SignalFx
exporter
that will make the event submission requests. It's recommended, and in the case of the Processlist monitor required,
to use a Resource Detection
processor
to ensure that host identity and other useful information is made available as event dimensions.
Receiver entries that should be added to logs pipelines include kubernetes-events
, nagios
, processlist
, and potentially any
telegraf/*
monitors like telegraf/exec
. The signalfx
exporter is required for sending events to SignalFx, the splunk_hec
exporter does not support sending events. An example of this is provided below.
Example:
receivers:
smartagent/signalfx-forwarder:
type: signalfx-forwarder
smartagent/postgresql:
type: postgresql
host: mypostgresinstance
port: 5432
dimensionClients:
- signalfx # references the SignalFx Exporter configured below
smartagent/processlist:
type: processlist
smartagent/kafka:
type: collectd/kafka
host: mykafkabroker
port: 7099
clusterName: mykafkacluster
intervalSeconds: 5
processors:
resourcedetection:
detectors:
- system
exporters:
signalfx:
access_token: "${SIGNALFX_ACCESS_TOKEN}"
realm: us1
sapm:
access_token: "${SIGNALFX_ACCESS_TOKEN}"
endpoint: https://ingest.us1.signalfx.com/v2/trace
service:
pipelines:
metrics:
receivers:
- smartagent/postgresql
- smartagent/kafka
- smartagent/signalfx-forwarder
processors:
- resourcedetection
exporters:
- signalfx
logs:
receivers:
- smartagent/processlist
processors:
- resourcedetection
exporters:
- signalfx
traces:
receivers:
- smartagent/signalfx-forwarder
processors:
- resourcedetection
exporters:
- sapm
For a more detailed description of migrating your Smart Agent monitor usage to the Splunk Distribution of
OpenTelemetry Collector please see the migration guide.