sa-*_*afa 6 elasticsearch elastic-stack open-telemetry
我想使用 OpenTelemetry 将跟踪/指标数据导出到 Elastic Search,但我更愿意避免使用 Elastic APM。是否可以?opentelemetry contrib repo显然表明这是可能的,但是,我在 elastic.co 文档中没有找到任何内容。顺便说一句,openapm.io 暗示请参阅此处,OpenTelemetry 可以导出到弹性节拍(这是非常理想的),但同样,我在 Elastic.co 文档中没有找到任何内容。
经过一段时间的尝试后,我终于让它可以与最新版本的 opentelemetry-collector-contrib 一起使用(在撰写本文时为 0.60.0)。
首先,我使用此处的步骤使用 Docker Compose 创建了一个多节点集群https://www.elastic.co/guide/en/elasticsearch/reference/8.4/docker.html#docker-compose-file。我还必须按照说明将 vm.max_map_count 设置为至少 262144。
然后,使用同一个网络,我使用如下命令启动了 opentelemetry-collector-contrib docker 映像:
docker run --net certs_default --name opentelemetry-collector -v C:\docker\elastic\otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml -p 4317:4317 -p 4318:4318 otel/opentelemetry-collector-contrib:0.60.0
Run Code Online (Sandbox Code Playgroud)
配置文件非常简单:
接收者:
奥特普:
协议:
组组:
http:
出口商:
记录:
日志级别:调试
弹性搜索/跟踪:
端点:[https://es01:9200]
用户: 弹性
密码:
api_key:
:
insecure_skip_verify:true
服务:
管道:
痕迹:
接收者:[otlp]
出口商:[elasticsearch/trace]
最后,我刚刚将我的应用程序配置为使用 OtlpExporter:
.AddOtlpExporter(configure =>
{
configure.Protocol = OpenTelemetry.Exporter.OtlpExportProtocol.Grpc;
})
Run Code Online (Sandbox Code Playgroud)
执行这些步骤后,我可以在 Kibana 中看到我的痕迹。现在,如果有一些模板来显示包含所有跨度的单个迹线,那就太好了。
| 归档时间: |
|
| 查看次数: |
10091 次 |
| 最近记录: |