note
grafana alloy 是 promtail(log), otel collector(trace), exporter(metrics),prometheus server(metrics) 等等集合体,因此,docker 容器的大小比较大。 见 docker hub: grafana/alloy 大小为 200mb

除了 alloy 外,如果是想要简单的收集日志,可以考虑高性能数据管道 Vector, 大小仅为 50mb


概述

|

Alloy 为 OpenTelemetryPrometheusPyroscopeLoki 以及许多其他指标、日志、追踪和性能分析工具提供原生管道。此外,您可以使用 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。