用戶端函式庫功能
Jaeger 用戶端已停用。請參閱此通知。
下表提供現有用戶端函式庫的功能矩陣。標示為 ?
的儲存格表示不確定指定的用戶端是否支援指定的功能,需要額外的研究和文件更新。
此表是從 data/clients.yaml 自動產生的。
用於向 Jaeger 後端報告跨度的資料格式和傳輸方式 | ||||||
---|---|---|---|---|---|---|
功能 | Go | Java | Node.js | Python | C++ | C# |
透過 UDP 報告 jaeger.thrift 、Compact 協定 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
透過 UDP 報告 jaeger.thrift 、Binary 協定 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
透過 TCP (HTTP) 報告 jaeger.thrift 、Binary 協定 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
透過 TCP (HTTP) 報告 Zipkin Thrift、Binary 協定 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
跨程序傳播線格式 (標頭) | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
Uber 的原始標頭 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Zipkin 的 B3 標頭 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
W3C 追蹤上下文標頭 | 即將推出 | ✅ | 即將推出 | 即將推出 | 即將推出 | 即將推出 |
支援傳入的 jaeger-debug-id 標頭 | 當沒有追蹤時 | 當沒有追蹤時 | ❔ | ✅ | ❔ | 當沒有追蹤時 |
接受來自 jaeger-baggage 標頭的 baggage | 當沒有追蹤時 | ❌ | ❔ | ✅ | ❔ | ❌ |
支援 128 位元追蹤 ID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
指標 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
支援標準追蹤器指標 (啟動、完成、回報的 span 數量等) | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
支援標準 RPC 指標 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Prometheus 格式的指標 | ✅ | ✅ | ❌ | ✅ | ❔ | ❔ |
追蹤器設定 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
支援宣告式追蹤器設定 | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
允許設定追蹤器標籤,又稱程序標籤 | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
允許遠端設定取樣器 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
可遠端設定的 每個端點取樣器 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
可遠端設定的 baggage 限制 | ✅ | 即將推出 | 即將推出 | 即將推出 | ❌ | 即將推出 |
透過環境變數設定追蹤器 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
JAEGER_SERVICE_NAME 定義將與發出的 span 相關聯的服務名稱。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_TAGS 定義以逗號分隔的靜態標籤列表,又稱「追蹤器標籤」,例如 hostname=foobar,my.app.version=1.2.3 。這些標籤會以 Process 標籤的形式新增至每個 span。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_DISABLED (不建議使用)設定為 true 時,會指示 Configuration 傳回一個 no-op 追蹤器。使用 no-op 追蹤器時,追蹤/span ID 和 baggage 都不會被傳播。請改用參數為 0 的 const 取樣器,而不是完全停用追蹤器,這樣可以將開銷降到最低,同時保持傳播進行。 | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
JAEGER_AGENT_HOST 定義透過 UDP/Thrift 回報 span 的主機名稱。為避免封包遺失,代理程式應與應用程式在同一台機器上執行。當主機上有複數個網路命名空間時,這個變數很有用。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_AGENT_PORT 定義透過 UDP/Thrift 回報 span 的埠號。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_ENDPOINT 定義透過 HTTP/Thrift 回報 span 的 URL。此設定允許 span 直接提交到收集器的部署模式。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_AUTH_TOKEN 定義透過 HTTP 回報時可選的 auth token。 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
JAEGER_USER 可用於透過 HTTP 回報時的基本驗證。 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
JAEGER_PASSWORD 可用於透過 HTTP 回報時的基本驗證。 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
JAEGER_REPORTER_LOG_SPANS 指示 Reporter 記錄已完成的 span ID。Reporter 可能需要一個 Logger,此選項才能生效。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_REPORTER_MAX_QUEUE_SIZE 定義用於在 span 送出之前保存它們的記憶體中緩衝區的最大大小。 | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
JAEGER_REPORTER_FLUSH_INTERVAL 定義回報器刷新 span 批次的頻率。如果批次大小達到最大 UDP 封包大小 (~64Kb),回報器也可以刷新批次。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_TYPE 定義要使用的取樣器類型,例如 probabilistic 或 const (請參閱 取樣)。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_PARAM 提供取樣器的設定值,例如 probability=0.001 (請參閱 取樣)。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_MANAGER_HOST_PORT 定義服務客戶端設定的 HTTP 伺服器位址,例如取樣策略、baggage 限制、節流設定等。此變數名稱是過去伺服器僅提供取樣策略時的遺留錯誤名稱。目前只有 jaeger-agent 實作此 REST API。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_REFRESH_INTERVAL 定義取樣器輪詢組態伺服器更新取樣策略的頻率。 | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
JAEGER_SAMPLER_MAX_OPERATIONS 指示自適應取樣器限制取樣器將追蹤的相異操作名稱數量,以避免無限制的記憶體使用。 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
JAEGER_PROPAGATION 定義追蹤器使用的傳播格式。支援的值為 jaeger (在此處定義)、b3 (在此處 定義)和 w3c (在此處 定義)。 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
JAEGER_TRACEID_128BIT 如果為 true,則指示追蹤器產生 128 位元的追蹤 ID,而不是預設的 64 位元。在未來,128 位元將成為預設值。 | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
JAEGER_RPC_METRICS 如果為 true,則啟用從追蹤檢測額外產生 RPC 指標。這是 Go 用戶端中的實驗性功能。另請參閱 https://github.com/opentracing-contrib/java-metrics 。 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |