文章目錄
- jaeger安裝和使用
- 什么是jaeger
- jaeger安裝
jaeger安裝和使用
什么是jaeger
官網:https://www.jaegertracing.io/
Jaeger 是一個分布式追蹤系統。Jaeger的靈感來自 Dapper 和 OpenZipkin,是一個由 Uber 創建并捐贈給 云原生計算基金會(CNCF) 的分布式跟蹤平臺。它可以用于監控基于微服務的分布式系統:
- 分布式上下文傳遞
- 分布式事務監聽
- 根因分析
- 服務依賴性分析
- 性能/延遲優化
jaeger是100%開源、云原生、可無限擴展的。Jaeger后端設計為無單點故障,并可根據業務需求進行擴展。例如,通常 Uber 的任何一個 Jaeger 實例每天都要處理數十億個 span。
**Jaeger對分析性能和延遲以及進行優化特別有幫助。**有了Jaeger,進行根本原因分析和研究服務依賴關系要容易得多。例如,Jaeger可用于識別特定微服務延遲的高峰,包括那些影響最終用戶體驗的微服務。
Jaeger 和 Prometheus 是最常用的兩種可觀測性后端。Jaeger 用于收集和展示鏈路追蹤數據,而 Prometheus 則專注于指標數據的收集與存儲。
jaeger安裝
官方文檔:https://www.jaegertracing.io/docs/2.4/deployment/
all in one 模式,專為快速本地測試而設計。它通過內存存儲組件啟動Jaeger UI、collector收集器、query查詢和agent代理。因此重啟 dockre 后就看不到之前的數據了。所以,該模式僅用于前期的 demo 或者測試驗證,不可在生產環境中使用這種模式部署。
Jaeger 從 1.35 版本開始支持 OTLP。你可以通過以下方式配置 Jaeger 以接收 OTLP 數據:
docker run --rm --name jaeger \-e COLLECTOR_OTLP_ENABLED=true \-e COLLECTOR_OTLP_HTTP_HOST_PORT=0.0.0.0:4318 \-p 6831:6831/udp \-p 6832:6832/udp \-p 5778:5778 \-p 16686:16686 \-p 4317:4317 \-p 4318:4318 \-p 14250:14250 \-p 14268:14268 \-p 14269:14269 \-p 9411:9411 \jaegertracing/all-in-one:1.59
OTEL Collector升級后,OTLP接收器默認監聽地址改為localhost,導致容器環境中其他容器無法訪問,臨時解決方法是通過設置環境變量指定監聽0.0.0.0.
相關資料:https://blog.cnbattle.com/release/jaegertracing-jaeger-v1.59.0/
Jaeger 默認將 OTLP HTTP 服務綁定到 localhost
,需要將其修改為 0.0.0.0
,以允許外部訪問。
- COLLECTOR_OTLP_GRPC_HOST_PORT=0.0.0.0:4317
- COLLECTOR_OTLP_HTTP_HOST_PORT=0.0.0.0:4318
瀏覽器Web UI: http://localhost:16686/