系列文章
- Grafana 系列文章
配置 Jaeger data source
Grafana內置了對Jaeger的支持,它提供了開源的端到端分布式跟蹤,本文解釋了針對Jaeger資料源的配置和查詢,
關鍵的配置如下:
- URL: Jaeger 實體的 URL, 如:
http://localhost:16686或http://localhost:16686/trace/ - Enable Node Graph: ??. 一旦啟用,Grafana會在 trace 視圖上方顯示 Node Graph (鏈路拓撲圖),
Span bar
Span bar 設定幫助你在 span 行中顯示額外的資訊,
你可以從三個選項中選擇一個:
| Name | Description |
|---|---|
| None | 啥都不加. |
| Duration | (默認) 在Span 行上顯示 span 持續時間, |
| Tag | 在 span 行上顯示 span tag,你還必須指定使用哪個標簽鍵來獲取標簽值,如span.kind, |
Trace to logs
??Notes:
Trace to logs 功能只支持部分日志解決方案
Grafana Loki 和 Splunk 是支持的, ElasticSearch 是不支持的.

Trace to logs 設定配置了 traces 到 logs 的功能,當你將 Grafana 與 Jaeger 整合時,該功能是可用的,
有兩種方法可以配置 trace 到 logs 的功能:
- 使用帶有默認查詢的簡化配置,或
- 配置一個自定義查詢,你可以使用模板語言從 trace 或 span 中插入變數,
使用簡化配置
- 選擇目標資料源,
- 設定開始和結束時間的偏移,由于日志的時間戳可能與 trace 中的 span 的時間戳不完全匹配,可能需要在更大的或移位的時間范圍內搜索以找到所需的日志,
- 選擇要在日志查詢中使用的標簽,你配置的標簽必須存在于 span 屬性或資源中,才能出現 trace 到 logs span 鏈接,你可以選擇為標簽配置一個新的名字,如果標簽的名稱中有圓點,而目標資料源不允許標簽中有圓點,這就很有用(如上圖),在這種情況下,你可以,比如說,把
http.status改成http_status, - 如果你的日志一直包含 trace ID 或 span ID,可以選擇打開 Filter by trace ID 和/或 Filter by span ID 的設定來進一步過濾日志,
使用自定義 Query
- 選擇目標資料源,
- 設定開始和結束時間的偏移,由于日志的時間戳可能與 trace 中的 span 的時間戳不完全匹配,你可能需要擴大或偏移時間范圍以找到所需的日志,
- 可選地,選擇要映射的標簽,這些標簽可以用
${__tags}變數在自定義查詢中使用,這個變數將以適當的語法為資料源插值映射的標簽,并只包括 span 中存在的標簽,省略那些不存在的標簽,您可以選擇為標簽配置一個新的名稱,這在標簽的名稱中有圓點而目標資料源不允許標簽中有圓點的情況下很有用,例如,你可以將http.status重新映射為http_status,如果你不在這里映射任何標簽,你仍然可以在查詢中使用任何標簽,比如method="${__span.tags.method}", - 跳過 Filter by trace ID 和 Filter by span ID 設定,因為它們不能用于自定義查詢,
- 開啟 Use custom query,
- 指定一個用于查詢日志的自定義查詢,你可以使用各種變數來使該查詢與當前 span 相關,只有當所有的變數都以非空值插值時,該鏈接才會出現,以防止創建一個無效的查詢,
可以在自定義查詢中使用的 Variables
要使用一個變數,你需要用${}來包裹它,例如:${__span.name},
| Variable name | Description |
|---|---|
| __tags | 該變數使用來自用戶界面的標簽映射,以特定的資料源語法創建一個標簽匹配器字串,該變數只使用 span 中存在的標簽,即使這些標簽中只有一個存在于 span 中,鏈接仍然被創建,如果查詢不需要所有的標簽,你可以使用這個, |
| __span.spanId | Span 的 ID |
| __span.traceId | Trace 的 ID |
| __span.duration | Span 的持續時間 |
| __span.name | Span 的名稱 |
| __span.tags | span中標簽的命名空間,要訪問一個名為 "version" 的特定標簽,你可以使用${__span.tags.version},如果標簽包含點,你必須以${__span.tags["http.status"]}的方式訪問它, |
| __trace.traceId | Trace 的 ID |
| __trace.duration | Trace 的持續時間 |
| __trace.name | Trace 的名稱 |
下表描述了你可以配置 Trace to logs 設定的方式:
| Setting name | Description |
|---|---|
| Data source | 定義目標資料源,你可以只選擇Loki或Splunk logs 資料源, |
| Span start time shift | 根據 span 的開始時間,偏移日志查詢的開始時間,你可以使用時間單位,如5s,1m,3h,要把時間延長到過去,則使用一個負值,默認值:0, |
| Span end time shift | 根據 span 的結束時間,轉移日志查詢的結束時間,你可以使用時間單位,默認:0, |
| Tags | 定義了在日志查詢中使用的標簽,默認:cluster, hostname, namespace, pod,你可以改變標簽的名稱,例如,如果目標資料源中不允許使用點,可以從名稱中洗掉點,例如,將http.status映射為http_status, |
| Filter by trace ID | 切換是否在日志查詢中附加trace ID, |
| Filter by span ID | 切換是否將span ID附加到日志查詢中, |
| Use custom query | 切換可以使用插值的自定義查詢, |
| Query | 輸入來撰寫自定義查詢,使用變數插值,用 span 的變數來定制它, |
Trace to metrics
??Notes:
需要配置 feature toggle 的traceToMetrics后可見.
Trace to metrics 設定配置了 Grafana 與 Jaeger 集成時可用的 trace 到 metrics 功能,
要配置 trace to metrics:
- 選擇目標資料源,
- 創建需要的鏈接查詢,
| Setting name | Description |
|---|---|
| Data source | 定義目標資料源. |
| Tags | 定義了鏈接查詢中使用的標簽,鍵值設定 span 屬性名稱,可選值設定相應的metric 標簽名稱,例如,你可以將k8s.pod映射為pod,要把這些標簽插進查詢中,請使用$__tags關鍵字, |
每個鏈接查詢包括:
- Link Label: (可選項) 鏈接查詢的描述性標簽,
- Query: 從 trace 跳轉到 metric 資料源時運行的查詢,使用
$__tags關鍵字對標簽進行插值,例如,當你配置查詢requests_total{$__tags}時,標簽為k8s.pod=pod和cluster,結果看起來像requests_total{pod="nginx-554b9", cluster="us-east-1"},
Jaeger 資料源配置示例
Jaeger 資料源配置示例 YAML 如下:
apiVersion: 1
datasources:
- name: Jaeger
type: jaeger
uid: EbPG8fYoz
url: http://localhost:16686
access: proxy
basicAuth: true
basicAuthUser: my_user
readOnly: false
isDefault: false
jsonData:
tracesToLogsV2:
# Field with an internal link pointing to a logs data source in Grafana.
# datasourceUid value must match the uid value of the logs data source.
datasourceUid: 'loki'
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
tags: ['job', 'instance', 'pod', 'namespace']
filterByTraceID: false
filterBySpanID: false
customQuery: true
query: 'method="${__span.tags.method}"'
tracesToMetrics:
datasourceUid: 'prom'
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
tags: [{ key: 'service.name', value: 'service' }, { key: 'job' }]
queries:
- name: 'Sample query'
query: 'sum(rate(traces_spanmetrics_latency_bucket{$__tags}[5m]))'
nodeGraph:
enabled: true
spanBar:
type: 'None'
secureJsonData:
basicAuthPassword: my_password
EOF
三人行, 必有我師; 知識共享, 天下為公. 本文由東風微鳴技術博客 EWhisper.cn 撰寫.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552430.html
標籤:其他
上一篇:ZJOI2008 樹的統計
下一篇:返回列表
