mirror of https://github.com/istio/istio.io.git
236 lines
7.4 KiB
HTML
236 lines
7.4 KiB
HTML
---
|
|
title: SignalFx
|
|
description: Adapter that sends metrics to SignalFx.
|
|
location: https://istio.io/docs/reference/config/policy-and-telemetry/adapters/signalfx.html
|
|
layout: protoc-gen-docs
|
|
generator: protoc-gen-docs
|
|
supported_templates: metric,tracespan
|
|
number_of_entries: 3
|
|
---
|
|
<p>The <code>signalfx</code> adapter collects Istio metrics and trace spans and sends them
|
|
to <a href="https://signalfx.com">SignalFx</a>.</p>
|
|
|
|
<p>This adapter supports the <a href="/docs/reference/config/policy-and-telemetry/templates/metric/">metric template</a>
|
|
and the <a href="/docs/reference/config/policy-and-telemetry/templates/tracespan/">tracespan template</a>.</p>
|
|
|
|
<p>If sending trace spans, this adapter can make use of certain conventions in
|
|
the tracespan format that is configured to send to this adapter. Here is an
|
|
example tracespan spec that will work well:</p>
|
|
|
|
<pre><code class="language-yaml">apiVersion: config.istio.io/v1alpha2
|
|
kind: tracespan
|
|
metadata:
|
|
name: signalfx
|
|
spec:
|
|
traceId: request.headers["x-b3-traceid"] | ""
|
|
spanId: request.headers["x-b3-spanid"] | ""
|
|
parentSpanId: request.headers["x-b3-parentspanid"] | ""
|
|
# If the path contains query parameters, they will be split off and put into
|
|
# tags such that the span name sent to SignalFx will consist only of the path
|
|
# itself.
|
|
spanName: request.path | "/"
|
|
startTime: request.time
|
|
endTime: response.time
|
|
# If this is >=500, the span will get an 'error' tag
|
|
httpStatusCode: response.code | 0
|
|
clientSpan: context.reporter.kind == "outbound"
|
|
# Span tags below that do not have comments are useful but optional and will
|
|
# be passed to SignalFx unmodified. The tags that have comments are interpreted
|
|
# in a special manner, but are still optional.
|
|
spanTags:
|
|
# This is used to determine whether the span pertains to the client or
|
|
# server side of the request.
|
|
context.reporter.local: context.reporter.local
|
|
# This gets put into the remoteEndpoint.ipv4 field
|
|
destination.ip: destination.ip | ip("0.0.0.0")
|
|
# This gets flattened out to individual tags of the form
|
|
# 'destination.labels.<key>: <value>'.
|
|
destination.labels: destination.labels
|
|
# This gets put into the remoteEndpoint.name field
|
|
destination.name: destination.name | "unknown"
|
|
destination.namespace: destination.namespace | "unknown"
|
|
request.host: request.host | ""
|
|
request.method: request.method | ""
|
|
request.path: request.path | ""
|
|
request.size: request.size | 0
|
|
request.useragent: request.useragent | ""
|
|
response.size: response.size | 0
|
|
# This gets put into the localEndpoint.name field
|
|
source.name: source.name | "unknown"
|
|
# This gets put into the localEndpoint.ipv4 field
|
|
source.ip: source.ip | ip("0.0.0.0")
|
|
source.namespace: source.namespace | "unknown"
|
|
# This gets flattened out to individual tags of the form
|
|
# 'source.labels.<key>: <value>'.
|
|
source.labels: source.labels
|
|
source.version: source.labels["version"] | "unknown"
|
|
</code></pre>
|
|
|
|
<h2 id="Params">Params</h2>
|
|
<section>
|
|
<p>Configuration format for the <code>signalfx</code> adapter.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="Params-metrics">
|
|
<td><code>metrics</code></td>
|
|
<td><code><a href="#Params-MetricConfig">Params.MetricConfig[]</a></code></td>
|
|
<td>
|
|
<p>Required. The set of metrics to send to SignalFx. If an Istio metric is
|
|
configured to be sent to this adapter, it must have a corresponding
|
|
description here.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-ingest_url">
|
|
<td><code>ingestUrl</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Optional. The URL of the SignalFx ingest server to use. Will default to
|
|
the global ingest server if not specified.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-access_token">
|
|
<td><code>accessToken</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Required. The access token for the SignalFx organization that should
|
|
receive the metrics.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-datapoint_interval">
|
|
<td><code>datapointInterval</code></td>
|
|
<td><code><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">google.protobuf.Duration</a></code></td>
|
|
<td>
|
|
<p>Optional. Specifies how frequently to send metrics to SignalFx. Metrics
|
|
reported to this adapter are collected and reported as a timeseries.
|
|
This will be rounded to the nearest second and rounded values less than
|
|
one second are not valid. Defaults to 10 seconds if not specified.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-enable_metrics">
|
|
<td><code>enableMetrics</code></td>
|
|
<td><code>bool</code></td>
|
|
<td>
|
|
<p>Optional. If set to false, metrics won’t be sent (but trace spans will
|
|
be sent, unless otherwise disabled).</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-enable_tracing">
|
|
<td><code>enableTracing</code></td>
|
|
<td><code>bool</code></td>
|
|
<td>
|
|
<p>Optional. If set to false, trace spans won’t be sent (but metrics will
|
|
be sent, unless otherwise disabled).</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-tracing_buffer_size">
|
|
<td><code>tracingBufferSize</code></td>
|
|
<td><code>uint32</code></td>
|
|
<td>
|
|
<p>Optional. The number of trace spans that the adapter will buffer before
|
|
dropping them. This defaults to 1000 spans but can be configured higher
|
|
if needed. An error message will be logged if spans are dropped.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-tracing_sample_probability">
|
|
<td><code>tracingSampleProbability</code></td>
|
|
<td><code>double</code></td>
|
|
<td>
|
|
<p>Optional. The uniform probability ([0.0, 1.0]) that a given span gets
|
|
sampled if its parent was not already sampled. Child spans will always
|
|
be sampled if their parent is. If not provided, defaults to sending all
|
|
spans.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="Params-MetricConfig">Params.MetricConfig</h2>
|
|
<section>
|
|
<p>Describes what metrics should be sent to SignalFx and in what form.</p>
|
|
|
|
<table class="message-fields">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="Params-MetricConfig-name">
|
|
<td><code>name</code></td>
|
|
<td><code>string</code></td>
|
|
<td>
|
|
<p>Required. The name of the metric as it is sent to the adapter. In
|
|
Kubernetes this is of the form “<name>.metric.<namespace>” where
|
|
“<name>” is the name field of the metric resource, and “<namespace>”
|
|
is the namespace of the metric resource.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-MetricConfig-type">
|
|
<td><code>type</code></td>
|
|
<td><code><a href="#Params-MetricConfig-Type">Params.MetricConfig.Type</a></code></td>
|
|
<td>
|
|
<p>The metric type of the metric</p>
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|
|
<h2 id="Params-MetricConfig-Type">Params.MetricConfig.Type</h2>
|
|
<section>
|
|
<p>Describes what kind of metric this is.</p>
|
|
|
|
<table class="enum-values">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr id="Params-MetricConfig-Type-NONE">
|
|
<td><code>NONE</code></td>
|
|
<td>
|
|
<p>None is the default and is invalid</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-MetricConfig-Type-COUNTER">
|
|
<td><code>COUNTER</code></td>
|
|
<td>
|
|
<p>Values with the same set of dimensions will be added together
|
|
as a continuously incrementing value.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr id="Params-MetricConfig-Type-HISTOGRAM">
|
|
<td><code>HISTOGRAM</code></td>
|
|
<td>
|
|
<p>A histogram distribution. This will result in several metrics
|
|
emitted for each unique set of dimensions.</p>
|
|
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</section>
|