【问题标题】:Does stopping jaeger collector stop OpenTracing停止 jaeger 收集器是否会停止 OpenTracing
【发布时间】:2018-06-18 09:19:42
【问题描述】:

当我启用 OpenTracing 并启动它们时,我有一些运行 jaeger-client 的应用程序。

首先我使用以下命令启动 Jaeger 收集器 - docker run -d -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 -p 9411:9411 jaegertracing/all-in-one:最新

然后我像用户一样启动应用程序- start.sh 用户 -apiserver=localhost:9900 -configfile=conf/configuration.json -traceroption enabled=true 随后它们将作为启用的服务可见http://localhost:16686/api/services

问题是,如果我杀死运行 jaeger 收集器的 Docker- systemctl 停止泊坞窗 然后重新启动 docker 和 jaegertracing/all-in-one,服务不再在 http://localhost:16686/api/services

在没有 Jaeger 收集器的情况下,jaeger 客户端会自行死亡吗? Jaeger 收集器是否需要在启动 Jaeger 客户端之前运行? 如果是这样,如何刷新 Jaeger OpenTracing 使用的内存,以免我的主机内存不足?

我在https://github.com/jaegertracing/jaeger/blob/master/cmd/query/app/handler.go的RegisterRoutes方法中找不到任何明确的API

【问题讨论】:

    标签: docker opentracing jaeger


    【解决方案1】:

    问题是,如果我杀死运行 jaeger 收集器的 Docker-systemctl stop docker,然后重新启动 docker 和 jaegertracing/all-in-one,则服务将不再处于 http://localhost:16686/api/services

    那是因为您使用的是内存存储。如果您停止并启动容器,则存储会重置,因此您实际上会丢失数据。出于生产目的,您应该使用 Cassandra 或 Elasticsearch 等后备存储。

    在启动 Jaeger 客户端之前是否需要运行 Jaeger 收集器?

    否,但当收集器不可用时客户端报告的跨度可能会被丢弃。请注意,默认情况下,客户端将向代理发送跨度,并且不会直接联系收集器。因此,如果代理不可用,跨度也可能会被丢弃。

    如何刷新 Jaeger OpenTracing 使用的内存,以免我的主机内存不足?

    使用配置选项--memory.max-traces。使用此选项,一旦达到此限制,旧迹线将被新迹线覆盖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 2023-03-21
      • 2022-06-18
      • 1970-01-01
      • 2016-06-04
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多