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.
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'sreceivercreator
and associated Observer extensions should be used. - The
signalfx-forwarder
monitor should be made part of bothmetrics
andtraces
pipelines utilizing thesignalfx
andsapm
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 includeecs-metadata
,heroku-metadata
,kubernetes-cluster
,openshift-cluster
,postgresql
, andsql
. 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 includekubernetes-events
,nagios
,processlist
, and potentially anytelegraf/*
monitors liketelegraf/exec
. Thesignalfx
exporter is required for sending events to SignalFx, thesplunk_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.