Use Smart Agent monitors with the Collector 🔗
Note
The Smart Agent receiver is fully supported only on x86_64/amd64 platforms.
The smartagent
receiver and its associated extension are Collector components that allow you to add SignalFx Smart Agent monitors into the pipelines of your Splunk Distribution of OpenTelemetry Collector. Many monitors also require a Smart Agent release bundle, which the Splunk Distribution of OpenTelemetry Collector installs on supported x86_64/amd64 platforms.
Learn more about the Smart Agent receiver.
Configure the Smart Agent receiver 🔗
For each Smart Agent monitor you want to add to the Collector, add a smartagent
receiver and smartagent
service pipeline in your Collector configuration file. Each smartagent
receiver acts as a drop-in replacement for its corresponding Smart Agent monitor.
Instead of using discoveryRule
, use the Collector receiver creator and observer extensions. See Receiver creator receiver for more information.
If you’re using a SignalFx Forwarder monitor, add it to both a traces
and a metrics
pipeline, and use a Sapm exporter and a SignalFx exporter, as each pipeline’s exporter, respectively. See more on exporters.
Configure metrics 🔗
To replace or modify metrics, use Collector processors.
Configure events 🔗
If you have a monitor that sends events, add it to a logs pipeline that uses a SignalFx exporter.
Sample monitors:
kubernetes-events
,nagios
,processlist
, and some telegraf monitors liketelegraf/exec
.
It’s recommended, and in the case of the Processlist
monitor required, to put into the same pipeline a Resource Detection processor, which adds host information and other useful dimensions to the events. See the example below.
Configure metadata 🔗
If you have a monitor that updates dimension properties or tags, put the name of your SignalFx exporter in its dimensionClients
field in the Collector’s SignalFx receiver configuration block.
Sample monitors:
ecs-metadata
,heroku-metadata
,kubernetes-cluster
,openshift-cluster
,postgresql
, orsql
.
If you don’t specify any exporters in this array field, the receiver attempts to use the Collector pipeline to which it’s connected. If the next element of the pipeline isn’t compatible with updating dimensions, and if you configured a single SignalFx exporter, the receiver uses that SignalFx exporter. If you don’t require dimension updates, you can specify the empty array []
to deactivate it.
Smart Agent extension 🔗
The Smart Agent extension offers collectd and Python extensions. Extensions are available primarily for tasks that do not involve processing data. Examples of extensions include health monitoring, service discovery, and data forwarding. Extensions are optional.
See SignalFx Smart Agent Extension in GitHub to copy the configuration YAML file.
Example 🔗
receivers:
smartagent/signalfx-forwarder:
type: signalfx-forwarder
smartagent/postgresql:
type: postgresql
host: mypostgresinstance
port: 5432
dimensionClients:
- signalfx
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