0

我遇到的大多数集成使用 java-agent 将跟踪推送到中央收集器,然后可以在 Jaeger 中查看跟踪。但是在我的情况下,我不能使用 java 代理,因此我决定使用自定义跟踪 api,这似乎很好,并且有很多例子。

通过设计,我的低延迟应用程序限制我与外部组件/端口建立任何连接,因此我也试图避免将跟踪/跨度推送到本地 Jaeger 代理或收集器端点,而是通过 LogReporter 记录跟踪。

除此之外,我想知道如何构建将跟踪日志推送到 Jaeger 的管道。日志本身作为流在 AWS cloudwatch 中,所以我想如果我使用无服务 Lambda 订阅和解析这些跟踪日志事件,那么我可以自己将它们发送到 Jaeger,使用可能是 HTTP /api/traces 端点(细节不多,但在某处读到它以某种形式存在)。

在这一点上,我的问题是这是正确的方法还是有更好的机制来实现这一点。因为我不知道痕迹本身是否可以以这种方式重播给收集器。也不确定端点接受什么格式,因为我没有看到太多关于此的文档或示例。

目标是让我的应用程序“不”通过推送事件连接到任何外部监控基础设施,所以如果有更好的 Jaeger 集成方法,我很想听听。如果 OpenTracing、OpenCensus 甚至最新的 OpenTelemetry 形式的任何其他 API 可以帮助解决这个问题,我也可以。

谢谢

4

1 回答 1

0

我不确定您今天要查找的内容本身是否存在,但是您可以使用 OpenTelemetry 通过 LogReporter 编写跟踪然后使用无服务器函数读取 cloudwatch 流并将其发送到 Jaeger(或 OpenTelemetry将它们发送给 Jaeger 的收集器)。您还可以为 OpenTelemetry 收集器编写一个自定义插件,将 cloudwatch 流读入 OTLP,然后将其导出到收集器支持的任何端点。

于 2020-08-18T13:51:58.283 回答