请教个 Opentelemetry 的问题,有经验朋友看过来

查看 84|回复 8
作者:oldboy627   
目前我们打算使用 Opentelemetry 实现可观测性,现在已经使用了 OpenTelemetry SDK 来实现了 trace 部分,trace 收集被发送到 elastic 的 apm 服务器。现在要进行容器化迁移到 K8S ,同时使用 OpenTelemetry Collector 来自动化注入并收集 trace ,metrics ,使用 fluent-bit 来收集日志。现在有几个问题不太清楚,想问问一下。
1.trace 和日志要如何关联?
目前我们使用 fluent-bit 来收集应用日志,发送到 elasticsearch 中, fluent-bit 会根据日志类型在 elastic 中创建对应索引; trace 则是发送到 apm 中,可以在 apm 中看到 trace 的信息,那么这两者之间如何能关联起来呢,查看对应的 trace 的时候,可以跳到对应的日志中。
superfa   
刚好看到这个,不过这个可能我解答不了(因为我只是个测试)。
我就说说我们做的:我们自己对于 OT 探针采集的数据,经过 collector 上报到我们自己的可观测产品里面.你是不是能考虑在每个 trace 都加上要给对应的 id ,然后日志里面能对这个 id 进行关联,这样是不是能解决问题。
oldboy627
OP
  
@superfa 感谢,但是这个 trace id 要怎么添加到日志里呢,业务代码集成 otel sdk 的日志部分吗?
superfa   
@oldboy627 emmm....,这个就属于开发范畴了,我解释不来。
我们自己是生成了一个 Tracid ,对应每笔数据。用 MD5 格式。
如果觉得难搞,可以考虑采购 APM 产品(我们公司主要就做这个,当然你也可以考虑其他竞品,反正最终能解决你问题就行)
jamel   
otel 可以实现 日志、跟踪、指标 导出到一个地方,elastic 已经全面支持 otel 了。不需要特意将 traceId 打入到 apm 中。实际上 apm 接受 otel 数据的时候 就会转换好,里面已经有 traceId 了。
oldboy627
OP
  
使用 apm 产品的话,似乎就简单多了,可以把日志,metrics ,trace 都发送到 apm 服务器中,自动就关联起来了,直接查看到。
jamel   
都用 sdk 了,为啥 日志不也让 otel 给你做了
jamel   
是用 otel 的时候,优先考虑 出口商。otel 官网 有列出来 所有支持的出口商
oldboy627
OP
  
@jamel 是这样的,elastic 8 版本支持了,可以在 trace 旁边查看日志,但是我们架构师想要的是,使用 fluentbit 收集应用日志,然后在 fluentbit 的 output 根据错误级别来创建 elastic 索引,比如 app-error ,app-info 等索引,开发可以还像以前方式去查看。 直接都发送到 apm 中,索引就变成了一个。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部