配置 Beyla 导出模式
Beyla 以 Alloy 或 Direct 模式导出数据。
Beyla 在左侧以 Alloy 模式运行,在右侧以 Direct 模式运行。
Direct 模式
在 Direct 模式下,Beyla 使用 OpenTelemetry 协议 (OTLP) 直接将指标和追踪推送到远程端点。
Beyla 还可以暴露一个准备好抓取的 Prometheus HTTP 端点,例如在 pull 模式下。
要使用 Direct 模式,需要使用身份验证凭据进行配置。使用这些环境变量设置 OTLP 端点的身份验证凭据
OTEL_EXPORTER_OTLP_ENDPOINT
OTEL_EXPORTER_OTLP_HEADERS
要在 Direct 模式下使用 Prometheus 抓取端点运行,请参阅配置文档。
Alloy 模式
在 Alloy 模式下,Beyla 将指标和追踪发送到 Grafana Alloy。Alloy 处理并将它们发送到 Mimir 和 Tempo。Alloy 管理 Mimir 和 Tempo 端点所需的身份验证。
此模式集成了 Grafana 的独有功能,例如span-to-metrics 和 span-to-service graph 转换器。
以下各节是如何设置 Alloy 和 Beyla 发送数据到 Grafana Cloud 的示例。
配置 Alloy pipeline
首先,安装并配置 Grafana Alloy。配置 Alloy pipeline 并指定以下节点
下载示例 River 配置文件。
为自动插桩工具创建一个 OpenTelemetry receiver 端点,用于转发指标和追踪。将此条目添加到 Alloy 配置文件中
otelcol.receiver.otlp "default" {
grpc {}
http {}
output {
metrics = [otelcol.processor.batch.default.input]
traces = [otelcol.processor.batch.default.input]
}
}
这使得 Alloy 能够通过 GRPC 和 HTTP 接收 OpenTelemetry 事件。Alloy 将数据转发到 batch processor。batch processor 累积数据并将其转发到 exporters
otelcol.processor.batch "default" {
output {
metrics = [otelcol.exporter.prometheus.default.input]
traces = [otelcol.exporter.otlp.tempo.input]
}
}
导出指标、追踪或两者。要导出单一数据类型,请省略节点定义中的 metrics
或 traces
行,并跳过相关的 exporters。
Alloy 将指标以 Prometheus 格式导出到 Grafana Mimir。配置使用基本身份验证。Alloy 配置使用环境变量中设置的值
otelcol.exporter.prometheus "default" {
forward_to = [prometheus.remote_write.mimir.receiver]
}
prometheus.remote_write "mimir" {
endpoint {
url = "https://" + env("MIMIR_ENDPOINT") + "/api/prom/push"
basic_auth {
username = env("MIMIR_USER")
password = env("GRAFANA_API_KEY")
}
}
}
设置身份验证环境变量并运行 Alloy
export MIMIR_USER=734432
export MIMIR_ENDPOINT=prometheus-prod-01-eu-west-0.grafana.net
export GRAFANA_API_KEY=VHJhbGFyw60gcXVlIHRlIHbD....=
最后,设置一个 Grafana Tempo exporter 和端点。Alloy 配置使用环境变量中设置的值
otelcol.exporter.otlp "tempo" {
client {
endpoint = env("TEMPO_ENDPOINT")
auth = otelcol.auth.basic.creds.handler
}
}
otelcol.auth.basic "creds" {
username = env("TEMPO_USER")
password = env("GRAFANA_API_KEY")
}
请注意,TEMPO_ENDPOINT
和 TEMPO_USER
的值与 MIMIR_ENDPOINT
和 MIMIR_USER
不同。
使用指定的配置文件运行 Alloy
grafana-alloy run alloy-config.river
配置并运行 Beyla
本教程假设 Beyla 和 Alloy 原生运行在同一主机上,因此无需保护流量,也无需在 Alloy OTLP receiver 中提供身份验证。
安装 Grafana Beyla 并下载示例配置文件。
首先,指定要插桩的可执行文件。对于运行在端口 443
上的服务可执行文件,将 open_port
属性添加到 YAML 文档中
open_port: 443
接下来,指定追踪和指标的发送位置。如果 Alloy 运行在本地主机上,它使用端口 4318
otel_metrics_export:
endpoint: https://:4318
otel_traces_export:
endpoint: https://:4318
您可以指定 otel_metrics_export
和 otel_traces_export
属性的组合来导出指标、追踪或两者。
使用指定的配置文件运行 Beyla
beyla -config instrument-config.yml
或
BEYLA_CONFIG_PATH=instrument-config.yml beyla