从 Span 生成指标
Span 指标允许你自动从追踪数据生成指标。Span 指标聚合了 Span 数据中的请求、错误和持续时间 (RED) 指标。指标以 Prometheus 格式导出。
导出指标有两种可用选项:使用 remote write 发送到兼容 Prometheus 的后端,或在本地提供指标并抓取它们。
Span 指标生成两种指标:计算请求的计数器,以及计算操作持续时间的直方图。
如果你的系统尚未使用指标监控,但已实现了分布式追踪,那么 Span 指标尤其有用。你可以从追踪流水线中直接获得指标。
即使你已有指标,Span 指标也能提供系统的深度监控。生成的指标显示了应用程序级别的监控洞察,取决于追踪在你应用中的传播范围。
要在 Grafana Alloy 中生成 Span 指标,可以使用 otelcol.connector.spanmetrics
组件。以下示例
- 将
http.method
(默认值为GET
)和http.target
Span 属性作为 Prometheus 标签添加到生成的 Span 指标中 - 设置一组明确的直方图桶间隔。
- 指定指标的刷新周期为 15 秒。
- 使用
traces_spanmetrics
命名空间作为所有生成指标的前缀。然后将指标写入 Grafana OTLP 网关。接收到的追踪 Span 会立即写入 OTLP 网关。
otelcol.receiver.otlp "default" {
http {}
grpc {}
output {
traces = [
otelcol.connector.spanmetrics.default.input,
otelcol.exporter.otlp.default.input
]
}
}
otelcol.connector.spanmetrics "default" {
dimension {
name = "http.method"
default = "GET"
}
dimension {
name = "http.target"
}
aggregation_temporality = "DELTA"
histogram {
explicit {
buckets = ["50ms", "100ms", "250ms", "1s", "5s", "10s"]
}
}
metrics_flush_interval = "15s"
namespace = "traces_spanmetrics"
output {
metrics = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = env("OTLP_ENDPOINT")
}
}
Span 指标也用于服务图视图。有关更多信息,请参阅服务图视图。
要查看所有可用的配置选项,请参阅组件参考。
服务器端指标
同样的 Span 指标也可以由 Tempo 中的 metrics-generator 生成。这更有效率,并推荐用于大型安装。有关更多信息,请参阅 Span 指标 文档。