07.4配置Alloy接收OpenTelemetry信号

分类: Grafana Alloy和OpenTelemetry Collector

配置 Alloy 接收 OpenTelemetry 信号

OTLP(OpenTelemetry Protocol)是 OpenTelemetry 的标准协议。今天我们要学习:OTLP Receiver 配置、Metrics Pipeline、Traces Pipeline、以及 Logs Pipeline。

OTLP Receiver 配置

OTLP Receiver 是什么? OTLP Receiver 用于接收 OpenTelemetry 数据。支持 gRPC 协议(默认端口:4317)、HTTP 协议(默认端口:4318)、Metrics、Traces、Logs。

如何配置 OTLP Receiver 呢?

第一步:配置 gRPC Receiver。

otelcol.receiver.otlp "default"
,配置 gRPC 端点,比如
0.0.0.0:4317
。这是默认的 OTLP gRPC 端口。

第二步:配置 HTTP Receiver。 可选,配置 HTTP 端点,比如

0.0.0.0:4318
。这是默认的 OTLP HTTP 端口。

第三步:配置输出。 使用

output
将数据转发到处理器,比如
otelcol.processor.batch.default.input
。可以分别配置 metrics、traces、logs。

第四步:配置批处理器。

otelcol.processor.batch "default"
,配置批处理参数,比如
timeout = "1s"
send_batch_size = 1024
。批处理器可以提高性能。

OTLP Receiver 架构: 应用(OTLP)→ OTLP Receiver(gRPC/HTTP)→ Processor(batch)→ Exporter(Prometheus/Tempo/Loki)。

配置完成后,Alloy 就可以接收 OpenTelemetry 数据了。

Metrics Pipeline 配置

Metrics Pipeline 是什么? Metrics Pipeline 用于处理和导出指标数据。流程:接收 Metrics(OTLP)→ 批处理 Metrics → 导出到 Prometheus。

如何配置 Metrics Pipeline 呢?

第一步:配置 OTLP Receiver。

otelcol.receiver.otlp "metrics"
,配置接收 Metrics,输出到批处理器。

第二步:配置批处理器。

otelcol.processor.batch "metrics"
,配置批处理 Metrics,输出到 Prometheus Exporter。

第三步:配置 Prometheus Exporter。

otelcol.exporter.prometheus "metrics"
,配置导出到 Prometheus,使用
forward_to
连接到 Remote Write。

第四步:配置 Remote Write。

prometheus.remote_write "local"
,配置 Prometheus Remote Write 地址。这是 Prometheus 的写入端点。

Metrics Pipeline 流程: OTLP Metrics → Receiver(otlp)→ Processor(batch)→ Exporter(prometheus)→ Remote Write(Prometheus)。

配置完成后,指标数据就可以从应用导出到 Prometheus 了。

Traces Pipeline 配置

Traces Pipeline 是什么? Traces Pipeline 用于处理和导出追踪数据。流程:接收 Traces(OTLP)→ 批处理 Traces → 导出到 Tempo。

如何配置 Traces Pipeline 呢?

第一步:配置 OTLP Receiver。

otelcol.receiver.otlp "traces"
,配置接收 Traces,输出到批处理器。

第二步:配置批处理器。

otelcol.processor.batch "traces"
,配置批处理 Traces,输出到 Tempo Exporter。

第三步:配置 Tempo Exporter。

otelcol.exporter.tempo "traces"
,配置导出到 Tempo,使用
forward_to
连接到 Tempo Write。

第四步:配置 Tempo Write。

tempo.write "local"
,配置 Tempo 写入地址。这是 Tempo 的推送端点。

Traces Pipeline 流程: OTLP Traces → Receiver(otlp)→ Processor(batch)→ Exporter(tempo)→ Tempo Write(Tempo)。

配置完成后,追踪数据就可以从应用导出到 Tempo 了。

Logs Pipeline 配置

Logs Pipeline 是什么? Logs Pipeline 用于处理和导出日志数据。流程:接收 Logs(OTLP)→ 批处理 Logs → 导出到 Loki。

如何配置 Logs Pipeline 呢?

第一步:配置 OTLP Receiver。

otelcol.receiver.otlp "logs"
,配置接收 Logs,输出到批处理器。

第二步:配置批处理器。

otelcol.processor.batch "logs"
,配置批处理 Logs,输出到 Loki Exporter。

第三步:配置 Loki Exporter。

otelcol.exporter.loki "logs"
,配置导出到 Loki,使用
forward_to
连接到 Loki Write。

第四步:配置 Loki Write。

loki.write "local"
,配置 Loki 写入地址。这是 Loki 的推送端点。

Logs Pipeline 流程: OTLP Logs → Receiver(otlp)→ Processor(batch)→ Exporter(loki)→ Loki Write(Loki)。

配置完成后,日志数据就可以从应用导出到 Loki 了。

完整配置示例

这个配置示例展示了什么? 展示了如何配置 Alloy 接收 OpenTelemetry 的所有信号(Metrics、Traces、Logs)。

配置包括:

  • 日志配置: 配置 Alloy 的日志级别和格式。
  • OTLP Receiver: 配置接收 gRPC 和 HTTP 协议的数据,输出到不同的处理器。
  • Metrics Pipeline: 批处理 Metrics,导出到 Prometheus。
  • Traces Pipeline: 批处理 Traces,导出到 Tempo。
  • Logs Pipeline: 批处理 Logs,导出到 Loki。

完整流程: 应用(OTLP)→ OTLP Receiver(gRPC/HTTP)→ Metrics Processor / Traces Processor / Logs Processor → Prometheus / Tempo / Loki。这是一个完整的数据流。

使用这个配置,Alloy 可以接收和处理所有 OpenTelemetry 信号。

本节小结

在本节中,我们学习了配置 Alloy 接收 OpenTelemetry 信号:

第一个是 OTLP Receiver。 接收 gRPC/HTTP 协议的数据,支持 Metrics、Traces、Logs。配置完成后,Alloy 就可以接收 OpenTelemetry 数据了。

第二个是 Metrics Pipeline。 接收 → 批处理 → 导出到 Prometheus。配置完成后,指标数据就可以从应用导出到 Prometheus 了。

第三个是 Traces Pipeline。 接收 → 批处理 → 导出到 Tempo。配置完成后,追踪数据就可以从应用导出到 Tempo 了。

第四个是 Logs Pipeline。 接收 → 批处理 → 导出到 Loki。配置完成后,日志数据就可以从应用导出到 Loki 了。

第五个是完整配置。 可以同时处理所有信号。一个 Alloy 实例可以处理所有类型的信号。

OTLP 配置总结: OTLP 配置包括 Receiver(gRPC/HTTP)、Metrics Pipeline(Prometheus)、Traces Pipeline(Tempo)、Logs Pipeline(Loki)。这些组合在一起,构成了完整的数据收集和路由能力。

这就是配置 Alloy 接收 OpenTelemetry 信号。掌握这些配置方法,可以开始收集和处理 OpenTelemetry 数据了。

在下一节,我们将学习 Alloy 数据处理和路由。学习如何使用 Processors 处理数据。