Grafana Alloy
Grafana Alloy 为 OTel、Prometheus、Pyroscope、Loki 和许多其他指标、日志、追踪和性能分析工具提供了原生管道。此外,您还可以使用 Alloy 管道执行其他任务,例如配置 Loki 和 Mimir 中的告警规则。Alloy 与 OTel Collector、Prometheus Agent 和 Promtail 完全兼容。
您可以使用 Alloy 作为这些解决方案的替代品,或者将其组合成包含多个收集器和代理的混合系统。您可以在 IT 基础设施中的任何位置部署 Alloy,并将其与您的 Grafana LGTM Stack、来自 Grafana Cloud 的遥测后端或任何其他供应商提供的任何其他兼容后端配对使用。Alloy 非常灵活,您可以轻松配置它以满足本地部署、纯云或混合部署的需求。
它通常用作追踪管道,负责从应用卸载追踪并将其转发到存储后端。
Grafana Alloy 配置文件采用Alloy 配置语法编写。
欲了解更多信息,请参阅Grafana Alloy 简介。
架构
Grafana Alloy 可以配置为运行一组追踪管道,用于从您的应用收集数据并将其写入 Tempo。管道使用 OpenTelemetry 构建,由 receivers
(接收器)、processors
(处理器)和 exporters
(导出器)组成。其架构类似于 OTel Collector 的设计。请参阅组件参考了解所有可用的配置选项。
这使您能够配置多个独立的追踪管道,每个管道收集独立的 Span 并将其发送到不同的后端。
接收追踪
Grafana Alloy 支持多种 ingestion receivers(摄取接收器):OTLP (OpenTelemetry)、Jaeger、Zipkin、OpenCensus 和 Kafka。
每个追踪管道都可以配置为接收所有这些格式的追踪。到达管道的追踪会经过该管道中定义的接收器/处理器/导出器。
管道处理
Grafana Alloy 在追踪数据流经管道时对其进行处理,以提高分布式追踪系统的可靠性,并将数据用于其他目的,例如追踪发现、基于尾部的采样和生成指标。
批量处理
Alloy 支持追踪的批量处理。批量处理有助于更好地压缩数据,减少出站连接数量,是推荐的最佳实践。要配置它,请参阅组件参考中的 otelcol.processor.batch
块。
属性操作
Grafana Alloy 允许对通过它的 Span 上的属性进行通用操作。常见的用途可能是添加环境变量或集群变量。有几种处理器可以操作属性,例如:组件参考中的 otelcol.processor.attributes
块和组件参考中的 otelcol.processor.transform
块
使用 Prometheus 服务发现附加元数据
Prometheus 服务发现机制使您能够将与指标相同的元数据附加到您的追踪。例如,对于 Kubernetes 用户,这意味着您可以动态附加发送 Span 的命名空间、Pod 和容器名称的元数据。
otelcol.receiver.otlp "default" {
http {}
grpc {}
output {
traces = [otelcol.processor.k8sattributes.default.input]
}
}
otelcol.processor.k8sattributes "default" {
extract {
metadata = [
"k8s.namespace.name",
"k8s.pod.name",
"k8s.container.name"
]
}
output {
traces = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = env("OTLP_ENDPOINT")
}
}
请参阅组件参考中的 otelcol.processor.k8sattributes
块。
通过自动日志记录发现追踪
自动日志记录写入格式良好的日志行,有助于追踪发现。
欲深入了解此功能,请访问自动日志记录。
基于尾部的采样
Alloy 为分布式追踪系统和多实例 Alloy 部署实现了基于尾部的采样。借助此功能,您可以基于追踪中的数据而不是仅使用概率方法进行采样决策。
欲了解详细描述,请参阅基于尾部的采样。
从 Span 生成指标
Alloy 可以利用流经管道的 Span 数据生成 Prometheus 指标。
欲详细了解此功能,请参阅Span 指标。
服务图指标
服务图指标表示分布式系统中服务之间的关系。
该服务图处理器通过分析追踪构建服务地图,其目标是找到“边”。边是具有父子关系的 Span,代表两个服务之间的跳转,例如请求。请求的数量及其持续时间被记录为指标,用于表示图。
欲了解有关此处理器的更多信息,请转到其章节。
导出 Span
Alloy 可以为每个追踪管道将追踪导出到多个不同的后端。导出功能是使用 OpenTelemetry Collector 的OTLP exporter构建的。Alloy 支持导出 OTLP 格式的追踪。
除了端点和认证之外,导出器还提供了失败重试机制,并为瞬时故障(例如网络问题)实现了队列缓冲机制。
要查看所有可用选项,请参阅Alloy 配置参考中的 otelcol.exporter.otlp
块和Alloy 配置参考中的 otelcol.exporter.otlphttp
块。