停止 Jaeger 收集器是否会停止 OpenTracing



我有一些应用程序在启用 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/一体机:最新然后我启动像用户这样的应用程序 start.sh user -apiserver=localhost:9900 -configfile=conf/configuration.json -traceroption enabled=true 之后,它们将作为已启用的服务 http://localhost:16686/api/services 可见

问题是,如果我杀死运行 Jaeger 收集器的 Docker- SystemCTL Stop Docker 后来重新启动Docker和Jaegertracing/All-in-One,服务不再处于 http://localhost:16686/api/services

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

我无法在注册路由方法中找到任何清晰的 API https://github.com/jaegertracing/jaeger/blob/master/cmd/query/app/handler.go

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

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

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

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

如何刷新 Jaeger OpenTracing 使用的内存,以便我的主机不会耗尽内存?

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

最新更新