0

我使用 Spring Boot 创建了一个基于微服务的架构,并将应用程序部署在 Kubernetes/Istio 平台上。

不同的微服务使用 JMS (ActiveMQ) 或 REST API 相互通信。

我正在 Istio 的 Jaeger 上跟踪 REST 通信,但 Jaeger 中缺少基于 JMS 的通信。

我正在使用 ElasticSearch 来存储我的应用程序日志。

是否可以使用相同的 ElasticSearch 作为 Jaeger 的后端(DB)?如果是,那么我将在 ElasticSearch 中存储跟踪特定日志并在 Jaeger UI 上查询它们。

4

2 回答 2

1

虽然这并不完全是您所要求的,但听起来您想要实现的是在 Jaegar 中查看 JMS 调用的跟踪。如果是这种情况,您可以使用 JMS 或 ActiveMQ 的 OpenTracing 跟踪解决方案将跟踪数据直接报告给 Jaegar。这是我通过快速谷歌找到的一个潜在解决方案。可能还有其他人。

https://github.com/opentracing-contrib/java-jms

于 2019-08-13T11:30:22.123 回答
1

我相信您可以将 Elasticsearch 用于多种用途 - 每个用途都会使用一组不同的索引,因此分离是好的。

来自:https ://www.jaegertracing.io/docs/1.11/deployment/ :

收集器需要一个持久的存储后端。Cassandra 和 Elasticsearch 是主要支持的存储后端

将网络连接在一起,一个 docker-compose 示例: How to configure Jaeger with elasticsearch?

于 2019-08-13T08:45:41.667 回答