This exporter can be used to send metrics, events, and trace correlation to SignalFx.
Apart from metrics, the exporter is also capable of sending metric metadata (properties and tags) to SignalFx. Currently, only metric metadata updates from the k8s_cluster receiver are supported.
Supported pipeline types: logs (events), metrics, traces (trace to metric correlation only)
The following configuration options are required:
access_token
(no default): The access token is the authentication token provided by SignalFx. The SignalFx access token can be obtained from the web app. For details on how to do so please refer the documentation here.- Either
realm
or bothapi_url
andingest_url
. Bothapi_url
andingest_url
take precedence overrealm
.realm
(no default): SignalFx realm where the data will be received.api_url
(no default): Destination to which SignalFx properties and tags are sent. Ifrealm
is set, this option is derived and will behttps://api.{realm}.signalfx.com/
. If a value is explicitly set, the value ofrealm
will not be used in determiningapi_url
. The explicit value will be used instead.ingest_url
(no default): Destination where SignalFx metrics are sent. Ifrealm
is set, this option is derived and will behttps://ingest.{realm}.signalfx.com/v2/datapoint
. If a value is explicitly set, the value ofrealm
will not be used in determiningingest_url
. The explicit value will be used instead. If path is not specified,/v2/datapoint
is used.
The following configuration options can also be configured:
access_token_passthrough
: (default =true
) Whether to use"com.splunk.signalfx.access_token"
metric resource label, if any, as the SignalFx access token. In either case this label will be dropped during final translation. Intended to be used in tandem with identical configuration option for SignalFx receiver to preserve datapoint origin.exclude_metrics
: metric names that will be excluded from sending to Signalfx backend. Ifsend_compatible_metrics
ortranslation_rules
options are enabled, the exclusion will be applied on translated metrics.headers
(no default): Headers to pass in the payload.log_dimension_updates
(default =false
): Whether or not to log dimension updates.send_compatible_metrics
(default =false
): Whether metrics must be translated to a format backward-compatible with SignalFx naming conventions.timeout
(default = 5s): Amount of time to wait for a send operation to complete.translation_rules
: Set of rules on how to translate metrics to a SignalFx compatible format. Rules defined intranslation/constants.go
are used by default. Applicable only whensend_compatible_metrics
set totrue
.sync_host_metadata
: Defines whether the exporter should scrape host metadata and send it as property updates to SignalFx backend. Disabled by default. IMPORTANT: Host metadata synchronization relies onresourcedetection
processor. If this option is enabled make sure thatresourcedetection
processor is enabled in the pipeline with one of the cloud provider detectors or environment variable detector setting a unique value tohost.name
attribute within your k8s cluster. And keepoverride=true
in resourcedetection config.
In addition, this exporter offers queued retry which is enabled by default. Information about queued retry configuration parameters can be found here.
When traces are sent to the signalfx exporter it correlates traces to metrics. When a new service or environment is
seen it associates the source (e.g. host or pod) to that service or environment in SignalFx. Metrics can then be
filtered based on that trace service and environment (sf_service
and sf_environment
).
One of realm
and api_url
are required.
access_token
(required, no default): The access token is the authentication token provided by SignalFx.realm
(no default): SignalFx realm where the data will be received.api_url
(default =https://api.{realm}.signalfx.com/
): Destination to which correlation updates are sent. If a value is explicitly set, the value ofrealm
will not be used in determiningapi_url
. The explicit value will be used instead.correlation
Contains options controlling the syncing of service and environment properties onto dimensions.endpoint
(required, default =api_url
orhttps://api.{realm}.signalfx.com/
): This is the base URL for API requests (e.g.https://api.us0.signalfx.com
).timeout
(default = 5s): Is the timeout for every attempt to send data to the backend.stale_service_timeout
(default = 5 minutes): How long to wait after a span's service name is last seen before uncorrelating it.max_requests
(default = 20): Max HTTP requests to be made in parallel.max_buffered
(default = 10,000): Max number of correlation updates that can be buffered before updates are dropped.max_retries
(default = 2): Max number of retries that will be made for failed correlation updates.log_updates
(default = false): Whether or not to log correlation updates to dimensions (atDEBUG
level).retry_delay
(default = 30 seconds): How long to wait between retries.cleanup_interval
(default = 1 minute): How frequently to purge duplicate requests.sync_attributes
(default ={"k8s.pod.uid": "k8s.pod.uid", "container.id": "container.id"}
) Map containing key of the attribute to read from spans to sync to dimensions specified as the value.
exporters:
signalfx:
access_token: <replace_with_actual_access_token>
access_token_passthrough: true
headers:
added-entry: "added value"
dot.test: test
realm: us1
timeout: 5s
⚠️ When enabling the SignalFx receiver or exporter, configure both themetrics
andlogs
pipelines.
service:
pipelines:
metrics:
receivers: [signalfx]
processors: [memory_limiter, batch]
exporters: [signalfx]
logs:
receivers: [signalfx]
processors: [memory_limiter, batch]
exporters: [signalfx]
traces:
receivers: [zipkin]
processors: []
exporters: [signalfx]
The full list of settings exposed for this exporter are documented here with detailed sample configurations here.
This exporter also offers proxy support as documented here.