SignalFx

signalfx 适配器收集 Istio 指标和 tracespan 并将它们发送到 SignalFx

此适配器支持指标模板tracespan 模板

在发送 tracespan 时,该适配器可以对接收到的 tracespan 进行一些配置来生成发送内容。以下是一个适用的 tracespan 示例:

  1. apiVersion: config.istio.io/v1alpha2
  2. kind: tracespan
  3. metadata:
  4. name: signalfx
  5. spec:
  6. traceId: request.headers["x-b3-traceid"] | ""
  7. spanId: request.headers["x-b3-spanid"] | ""
  8. parentSpanId: request.headers["x-b3-parentspanid"] | ""
  9. # 如果路径包含查询参数,它们将被拆分并放入标记中,以便发送到 SignalFx 的范围名称仅包含路径本身。
  10. spanName: request.path | "/"
  11. startTime: request.time
  12. endTime: response.time
  13. # 如果此值 >=500 ,则 span 将获得 `error` 标记
  14. httpStatusCode: response.code | 0
  15. clientSpan: context.reporter.kind == "outbound"
  16. # 下面的注释标签都是可选项。没有注释的的部分会不加修改地传递给 SignalFx。有注释的标签会使用特定方式进行解释。
  17. spanTags:
  18. # 这用于分辨当前 span 是属于客户端还是服务器端。
  19. context.reporter.local: context.reporter.local
  20. # 这将放入 remoteEndpoint.ipv4 字段
  21. destination.ip: destination.ip | ip("0.0.0.0")
  22. # 用 `destination.labels.<key>: <value>` 的形式将标签进行扁平化处理。
  23. destination.labels: destination.labels
  24. # 这将放入 remoteEndpoint.name 字段
  25. destination.name: destination.name | "unknown"
  26. destination.namespace: destination.namespace | "unknown"
  27. request.host: request.host | ""
  28. request.method: request.method | ""
  29. request.path: request.path | ""
  30. request.size: request.size | 0
  31. request.useragent: request.useragent | ""
  32. response.size: response.size | 0
  33. # 这将放入 localEndpoint.name 字段
  34. source.name: source.name | "unknown"
  35. # 这将放入 localEndpoint.ipv4 字段
  36. source.ip: source.ip | ip("0.0.0.0")
  37. source.namespace: source.namespace | "unknown"
  38. # 用 `source.labels.<key>: <value>` 的形式将标签进行扁平化处理。
  39. source.labels: source.labels
  40. source.version: source.labels["version"] | "unknown"

PARAMS

signalfx 适配器的配置格式。

属性类型描述
metricsParams.MetricConfig[]必选项。要发送到 SignalFx 的指标标准集。如果将 Istio 指标标准配置为发送到此适配器,则此处必须具有相应的描述。
ingestUrlstring可选项。要使用的 SignalFx 接受服务器的 URL。如果未指定,将默认为全局摄取服务器。
accessTokenstring必选项。应接收指标的 SignalFx 组织的访问令牌。
datapointIntervalgoogle.protobuf.Duration可选项。指定将指标发送到 SignalFx 的频率。报告给此适配器的指标标准将作为时间序列进行收集和报告。这将四舍五入到最接近的秒,小于一秒的舍入值无效。如果未指定,则默认为10秒。
enableMetricsbool可选项。如果设置为 false,则不会发送指标标准(但将发送 trace span ,除非另行禁用)。
enableTracingbool可选项。如果设置为 false,则不会发送 tracespan (除非另行禁用,否则将发送指标标准)。
tracingBufferSizeuint32可选项。适配器在丢弃之前将缓冲的 tracespan 数。默认为 1000 个 span ,但如果必选项,可以配置更高。如果删除 span,将记录错误消息。
tracingSampleProbabilitydouble可选项。如果父 span 尚未被采样的情况下,当前 span 的采样概率为([0.0,1.0])。如果它们的父 span 被采样,子 span 则一定会被采样。如果没有赋值,则默认为发送所有的 span。

Params.MetricConfig

描述应以何种形式将哪些指标发送到 SignalFx。

属性类型描述
namestring必选项。发送到适配器的指标标准的名称。在 Kubernetes 中,其形式为 “.metric.” 其中双引号中 “ ” 既有指标资源的名称字段, 也有指标资源的命名空间。
typeParams.MetricConfig.Type指标标准类型

Params.MetricConfig.Type

描述这是什么类型的指标。

名称描述
NONENONE 是默认值
COUNTER具有相同维度集的值将作为连续递增值一起添加。
HISTOGRAM直方图分布。这将导致为每个唯一维度集发出多个指标。