我使用 Spring Boot 创建了一个基于微服务的架构,并将应用程序部署在 Kubernetes/Istio 平台上。
不同的微服务使用 JMS (ActiveMQ) 或 REST API 相互通信。
我在 Istio 的 Jaeger上获得了 REST 通信的跟踪,但在 Jaeger 中缺少基于 JMS 的通信。
我正在使用 ElasticSearch 来存储我的应用程序日志。
是否可以使用相同的ElasticSearch作为Jaeger的后端(DB)? 如果是,那么我将在 ElasticSearch 中存储跟踪特定日志,并在 Jaeger UI 上查询它们。
我相信你可以将Elasticsearch重用于多种用途 - 每个目的都会使用一组不同的索引,所以分离是好的。
从: https://www.jaegertracing.io/docs/1.11/deployment/:
收集器需要持久存储后端。Cassandra 和 Elasticsearch 是主要的受支持存储后端
将网络捆绑在一起,一个 docker 组合示例: 如何使用 elasticsearch 配置 Jaeger?
虽然这不是你问的,但听起来你想实现的是看到在Jaegar中跟踪你的JMS调用。如果是这种情况,您可以使用JMS或ActiveMQ的OpenTtrace跟踪解决方案直接向Jaegar报告跟踪数据。这是我通过快速谷歌找到的一个潜在解决方案。可能还有其他人。
https://github.com/opentracing-contrib/java-jms