SolarWinds OpenTelemetry Collector (swotelcol) is a distribution of OpenTelemetry Collector with components bundled from opentelemetry-collector, opentelemetry-collector-contrib and solarwinds-otel-collector-contrib. It contains SolarWinds-specific components for better integration with SolarWinds Observability (SWO) and enhances telemetry collection.
You will need to generate your ingestion token in SWO. See API Tokens. Put it in the SOLARWINDS_TOKEN environment variable.
# Unix shell
export SOLARWINDS_TOKEN="<your-ingestion-token>"
# PowerShell
$env:SOLARWINDS_TOKEN="<your-ingestion-token>"
Then you can either use the provided example configurations or create your own custom configuration from scratch.
In the examples folder, there are a number of configurations for various fully supported integrations.
When these integrations are configured, you will get the same experience as with integrations set up by the Add Data wizards in SWO.
Just follow the inline comments within the example configurations for guidance.
You can also create your own custom configuration.
To get data correctly ingested by the SWO the configuration has to contain these components:
- SolarWinds Extension - Provides basic collector identification and health check for SWO.
- SolarWinds Processor - Enriches telemetry data with attributes to be properly associated by SWO.
- OTLP Exporter - Exports telemetry data to SWO.
Create a config.yaml
file that contains configuration for the swotelcol.
- Set ingestion endpoint. To get correct endpoint, search for OTLP in Data centers and endpoint URIs docs.
- Specify the collector name.
service:
extensions: [solarwinds]
pipelines:
metrics:
receivers: [redis]
exporters: [otlp]
receivers:
redis:
endpoint: "<redis-url>:6379"
collection_interval: 10s
password: ${env:REDIS_PASSWORD}
extensions:
solarwinds:
collector_name: "<collector-name>" # Required parameter
grpc: &grpc_settings
endpoint: "<endpoint>" # Required parameter
tls:
insecure: false
headers: { "Authorization": "Bearer ${env:SOLARWINDS_TOKEN}" }
exporters:
otlp:
<<: *grpc_settings
- Pull the swotelcol image from DockerHub (Verified distribution in this case).
docker pull solarwinds/solarwinds-otel-collector:verified
- Start the container with your
config.yaml
.
docker run -v ./config.yaml:/opt/default-config.yaml solarwinds/solarwinds-otel-collector:verified
The verified
distribution contains only the components listed below. With the verified
distribution, you will receive support with configuration, and the components have been tested by Solarwinds.
Receivers | Processors | Exporters | Extensions | Connectors |
---|---|---|---|---|
apachereceiver | memorylimiterprocessor | debugexporter | filestorage | forwardconnector |
prometheusreceiver | resourceprocessor | nopexporter | memorylimiterextension | routingconnector |
dockerstatsreceiver | resourcedetectionprocessor | otlpexporter | healthcheckextension | solarwindsentityconnector |
elasticsearchreceiver | metricstransformprocessor | fileexporter | k8sobserver | |
iisreceiver | cumulativetodeltaprocessor | solarwindsapmsettingsextension | ||
memcachedreceiver | deltatorate | solarwindsextension | ||
nginxreceiver | metricsgenerationprocessor | |||
oracledbreceiver | transformprocessor | |||
otlpreceiver | filterprocessor | |||
rabbitmqreceiver | batchprocessor | |||
redisreceiver | attributesprocessor | |||
snowflakereceiver | deltatocumulativeprocessor | |||
zookeeperreceiver | deltatorateprocessor | |||
nopreceiver | groupbyattrsprocessor | |||
filelogreceiver | groupbytraceprocessor | |||
haproxyreceiver | k8sattributesprocessor | |||
hostmetricsreceiver | k8seventgenerationprocessor | |||
journaldreceiver | solarwindsprocessor | |||
k8seventsreceiver | swok8sworkloadtypeprocessor | |||
k8sobjectsreceiver | swok8sworkloadstatusprocessor | |||
kafkareceiver | ||||
receivercreator | ||||
simpleprometheusreceiver | ||||
statsdreceiver | ||||
swohostmetricsreceiver | ||||
swok8sobjectsreceiver | ||||
mqttreceiver |
The playground
distribution contains all components from verified
distribution plus most of the components from opentelemetry-collector-contrib
and opentelemetry-collector
repositories. When using the playground distribution, we will not provide support with configuration. Also we cannot guaratee that all components from the mentioned repositories are working as expected.
The k8s
distribution contains only the components required for the Kubernetes monitoring in Solarwinds Obervability platform.
See CONTRIBUTING.md.