我遇到的大多数集成使用 java-agent 将跟踪推送到中央收集器,然后可以在 Jaeger 中查看跟踪。但是在我的情况下,我不能使用 java 代理,因此我决定使用自定义跟踪 api,这似乎很好,并且有很多例子。
通过设计,我的低延迟应用程序限制我与外部组件/端口建立任何连接,因此我也试图避免将跟踪/跨度推送到本地 Jaeger 代理或收集器端点,而是通过 LogReporter 记录跟踪。
除此之外,我想知道如何构建将跟踪日志推送到 Jaeger 的管道。日志本身作为流在 AWS cloudwatch 中,所以我想如果我使用无服务 Lambda 订阅和解析这些跟踪日志事件,那么我可以自己将它们发送到 Jaeger,使用可能是 HTTP /api/traces 端点(细节不多,但在某处读到它以某种形式存在)。
在这一点上,我的问题是这是正确的方法还是有更好的机制来实现这一点。因为我不知道痕迹本身是否可以以这种方式重播给收集器。也不确定端点接受什么格式,因为我没有看到太多关于此的文档或示例。
目标是让我的应用程序“不”通过推送事件连接到任何外部监控基础设施,所以如果有更好的 Jaeger 集成方法,我很想听听。如果 OpenTracing、OpenCensus 甚至最新的 OpenTelemetry 形式的任何其他 API 可以帮助解决这个问题,我也可以。
谢谢