note
grafana alloy 是 promtail(log), otel collector(trace), exporter(metrics),prometheus server(metrics) 等等集合体,因此,docker 容器的大小比较大。 见 docker hub: grafana/alloy 大小为 200mb
除了 alloy 外,如果是想要简单的收集日志,可以考虑高性能数据管道 Vector, 大小仅为 50mb
概述
Alloy 为 OpenTelemetry、Prometheus、Pyroscope、Loki 以及许多其他指标、日志、追踪和性能分析工具提供原生管道。此外,您可以使用 Alloy 管道执行不同的任务,例如在 Loki 和 Mimir 中配置警报规则。Alloy 完全兼容 OTel Collector、Prometheus Agent 和 Promtail。您可以将 Alloy 用作这些解决方案的替代方案,或者将其组合到由多个收集器和代理组成的混合系统中。您可以将 Alloy 部署在 IT 基础设施中的任何位置,并将其与 Grafana 堆栈、Grafana Cloud 的遥测后端或任何其他供应商的任何其他兼容后端配对使用。Alloy 非常灵活,您可以轻松配置它以适应您在本地部署、纯云部署或两者混合部署中的需求。
选择 Grafana Alloy 组件
组件是 Grafana Alloy 的构建块,并且有大量组件。您选择和配置的组件取决于您想要收集的遥测信号。
prometheus
使用 prometheus.*
组件收集基础设施指标。这为您提供 Grafana 基础设施可观测性的最佳体验。
例如,您可以使用 prometheus.exporter.unix
获取 Linux 主机的指标,并使用 prometheus.exporter.mongodb
获取 MongoDB 实例的指标。
您还可以使用 prometheus.scrape
抓取任何 Prometheus 端点。使用 discovery.*
组件查找 prometheus.scrape
的目标。
otel
使用 otelcol.receiver.*
组件收集应用程序指标。这为您提供 Grafana 应用程序可观测性的最佳体验,它是 OpenTelemetry 原生的。
例如,使用 otelcol.receiver.otlp
从 OpenTelemetry Instrumentation 应用程序收集指标。
如果您的应用程序已经使用 Prometheus 指标进行了 Instrumentation,则无需使用 otelcol.*
组件。对整个管道使用 prometheus.*
组件,并使用 prometheus.remote_write
发送指标。
loki
使用 loki.*
组件收集基础设施日志。loki.*
组件以类似于 Prometheus 指标的方式标记您的日志。这使得将 prometheus.*
组件收集的基础设施指标与 loki.*
组件收集的日志轻松关联起来。
例如,prometheus.*
和 loki.*
组件都将用于 Kubernetes 命名空间的标签称为 namespace
。另一方面,使用 otelcol.*
组件收集日志可能会使用名为 k8s.namespace.name
的OpenTelemetry 语义标签,这与 Prometheus 生态系统中常见的 namespace
标签不对应。
logging
使用 otelcol.receiver.*
组件收集应用程序日志。这以 OpenTelemetry 原生的方式收集应用程序日志,从而更容易将日志与来自应用程序的 OpenTelemetry 指标和追踪相关联。所有应用程序遥测数据都必须遵循 OpenTelemetry 语义约定,从而简化这种关联。
例如,如果您的应用程序在 Kubernetes 上运行,则每个追踪、日志和指标都可以具有 k8s.namespace.name
资源属性。
ebpf
使用 otelcol.receiver.*
组件收集追踪。
如果您的应用程序尚未针对追踪进行 Instrumentation,请使用 beyla.ebpf
为其自动生成追踪。
pyroscope
使用 pyroscope.*
组件收集 Profile。