07.8练习 配置Alloy处理微服务数据

分类: Grafana Alloy和OpenTelemetry Collector

练习:配置 Alloy 处理微服务数据

今天我们要动手配置 Alloy 处理微服务数据,包括接收 OTLP 数据、处理数据、导出到 Grafana Stack。通过实践,我们可以巩固前面学习的知识。

练习目标

今天的练习目标是什么?

第一个目标:配置 OTLP Receiver。 接收 gRPC 和 HTTP 数据,配置端口和端点。这是数据入口。

第二个目标:配置数据处理 Pipeline。 Metrics Pipeline、Traces Pipeline、Logs Pipeline。每个 Pipeline 包含 Processor(批处理)和 Exporter。

第三个目标:配置导出到 Grafana Stack。 导出到 Prometheus(指标)、导出到 Loki(日志)、导出到 Tempo(追踪)。

第四个目标:验证配置。 检查配置文件语法,测试数据流,验证数据导出。

练习架构: 微服务(OTLP)→ Alloy(OTLP Receiver)→ Metrics Pipeline / Traces Pipeline / Logs Pipeline → Prometheus / Tempo / Loki。

配置步骤

第一步:创建配置文件。 在终端创建配置文件目录和文件,然后在 IDE 中打开。我们使用

microservices.river
作为文件名。

第二步:配置 OTLP Receiver。 在 IDE 中输入 Receiver 配置代码,配置 gRPC 端点(0.0.0.0:4317)和 HTTP 端点(0.0.0.0:4318),然后保存文件。

第三步:配置 Pipelines。 逐步添加 Metrics Pipeline(Processor + Exporter),Traces Pipeline(Processor + Exporter),Logs Pipeline(Processor + Exporter),每次添加后保存并验证。

第四步:配置 Exporters。 添加 Prometheus Remote Write 配置,添加 Loki Write 配置,添加 Tempo Write 配置,然后连接 Exporters 到对应的 Exporter 组件。

第五步:测试配置。 在终端运行

alloy run --dry-run config/alloy/microservices.river
,检查是否有语法错误,修复错误后再次验证。

完整配置示例

配置包括:

  • 日志配置: 配置 Alloy 的日志级别(info)和格式(logfmt)。这是可选的,但建议配置。
  • OTLP Receiver: 配置接收 gRPC(4317)和 HTTP(4318)数据,输出到三个 Processor。这是数据入口。
  • Metrics Pipeline: 批处理 Metrics,导出到 Prometheus。包括 batch processor 和 prometheus exporter。
  • Traces Pipeline: 批处理 Traces,导出到 Tempo。包括 batch processor 和 tempo exporter。
  • Logs Pipeline: 批处理 Logs,导出到 Loki。包括 batch processor 和 loki exporter。
  • Remote Write 配置: 配置 Prometheus、Loki、Tempo 的写入端点。这些是数据出口。

注意组件之间的连接关系,每个 Processor 的 output 指向 Exporter 的 input,每个 Exporter 的 forward_to 指向 Remote Write 的 receiver。

验证和测试

验证步骤:

第一步:检查配置语法。 在终端运行

alloy run --dry-run config/alloy/microservices.river
,如果有错误,IDE 会高亮显示(如果配置了 River 插件),修复错误后再次验证。

第二步:启动 Alloy。 在终端运行

alloy run config/alloy/microservices.river
,或者使用 systemd:
sudo systemctl start alloy
,检查 Alloy 是否启动成功:查看日志输出。

第三步:检查服务状态。 检查端口是否监听(4317 gRPC、4318 HTTP),检查 Alloy 进程是否运行。

第四步:发送测试数据。 使用 otel-cli 发送测试追踪,或者使用 curl 发送 HTTP 请求。

第五步:验证数据导出。 打开浏览器,访问 Grafana,进入 Explore,分别查询 Prometheus、Tempo、Loki 的数据,或者在终端使用 curl 验证。

练习总结

我们完成了什么?

  • 配置了 OTLP Receiver。 接收 gRPC 和 HTTP 数据。
  • 配置了 Metrics、Traces、Logs Pipeline。 处理不同类型的数据。
  • 配置了导出到 Prometheus、Loki、Tempo。 数据导出到 Grafana Stack。
  • 验证了配置和数据流。 确保一切正常运行。

关键收获:

  1. 掌握了 Alloy 配置方法。 学会了如何配置 Alloy。
  2. 理解了 Pipeline 配置。 理解了数据流的配置。
  3. 学会了如何导出到 Grafana Stack。 学会了如何导出数据。
  4. 掌握了配置验证方法。 学会了如何验证配置。

下一步: 继续学习 Grafana Tempo 分布式追踪,学习如何查询和分析追踪数据。

本节小结

在本节中,我们完成了配置 Alloy 处理微服务数据的练习:

第一个是 OTLP Receiver。 接收 gRPC 和 HTTP 数据。

第二个是 Pipelines。 Metrics、Traces、Logs Pipeline。

第三个是 Exporters。 导出到 Prometheus、Loki、Tempo。

第四个是验证配置。 使用 --dry-run 测试配置。

练习总结: 练习目标 → 配置 OTLP Receiver → 配置 Pipelines → 配置 Exporters → 验证配置 → 完成练习。

这就是练习:配置 Alloy 处理微服务数据。通过实践,我们巩固了前面学习的知识。

恭喜你! 你已经完成了第 7 章的学习。我们学习了 Alloy 简介、安装、配置基础、接收 OpenTelemetry 信号、数据处理和路由、导出到 Grafana Stack、高级配置,以及实战练习。

在下一章,我们将学习 Grafana Tempo 分布式追踪。学习如何查询和分析追踪数据。