系列文章
- Grafana 系列文章
配置 Jaeger data source
Grafana內(nèi)置了對Jaeger的支持,它提供了開源的端到端分布式跟蹤。本文解釋了針對Jaeger數(shù)據(jù)源的配置和查詢。
關(guān)鍵的配置如下:
- URL: Jaeger 實(shí)例的 URL, 如:
http://localhost:16686
或http://localhost:16686/trace/
- Enable Node Graph: ??. 一旦啟用,Grafana會在 trace 視圖上方顯示 Node Graph (鏈路拓?fù)鋱D)。
Span bar
Span bar 設(shè)置幫助你在 span 行中顯示額外的信息。
你可以從三個(gè)選項(xiàng)中選擇一個(gè):
Name | Description |
---|---|
None | 啥都不加. |
Duration | (默認(rèn)) 在Span 行上顯示 span 持續(xù)時(shí)間。 |
Tag | 在 span 行上顯示 span tag。你還必須指定使用哪個(gè)標(biāo)簽鍵來獲取標(biāo)簽值,如span.kind 。 |
Trace to logs
??Notes:
Trace to logs 功能只支持部分日志解決方案
Grafana Loki 和 Splunk 是支持的, ElasticSearch 是不支持的.
Trace to logs 設(shè)置配置了 traces 到 logs 的功能,當(dāng)你將 Grafana 與 Jaeger 整合時(shí),該功能是可用的。
有兩種方法可以配置 trace 到 logs 的功能:
- 使用帶有默認(rèn)查詢的簡化配置,或
- 配置一個(gè)自定義查詢,你可以使用模板語言從 trace 或 span 中插入變量。
使用簡化配置
- 選擇目標(biāo)數(shù)據(jù)源。
- 設(shè)置開始和結(jié)束時(shí)間的偏移。由于日志的時(shí)間戳可能與 trace 中的 span 的時(shí)間戳不完全匹配,可能需要在更大的或移位的時(shí)間范圍內(nèi)搜索以找到所需的日志。
- 選擇要在日志查詢中使用的標(biāo)簽。你配置的標(biāo)簽必須存在于 span 屬性或資源中,才能出現(xiàn) trace 到 logs span 鏈接。你可以選擇為標(biāo)簽配置一個(gè)新的名字。如果標(biāo)簽的名稱中有圓點(diǎn),而目標(biāo)數(shù)據(jù)源不允許標(biāo)簽中有圓點(diǎn),這就很有用(如上圖)。在這種情況下,你可以,比如說,把
http.status
改成http_status
。 - 如果你的日志一直包含 trace ID 或 span ID,可以選擇打開 Filter by trace ID 和/或 Filter by span ID 的設(shè)置來進(jìn)一步過濾日志。
使用自定義 Query
- 選擇目標(biāo)數(shù)據(jù)源。
- 設(shè)置開始和結(jié)束時(shí)間的偏移。由于日志的時(shí)間戳可能與 trace 中的 span 的時(shí)間戳不完全匹配,你可能需要擴(kuò)大或偏移時(shí)間范圍以找到所需的日志。
- 可選地,選擇要映射的標(biāo)簽。這些標(biāo)簽可以用
${__tags}
變量在自定義查詢中使用。這個(gè)變量將以適當(dāng)?shù)恼Z法為數(shù)據(jù)源插值映射的標(biāo)簽,并只包括 span 中存在的標(biāo)簽,省略那些不存在的標(biāo)簽。您可以選擇為標(biāo)簽配置一個(gè)新的名稱。這在標(biāo)簽的名稱中有圓點(diǎn)而目標(biāo)數(shù)據(jù)源不允許標(biāo)簽中有圓點(diǎn)的情況下很有用。例如,你可以將http.status
重新映射為http_status
。如果你不在這里映射任何標(biāo)簽,你仍然可以在查詢中使用任何標(biāo)簽,比如method="${__span.tags.method}"
。 - 跳過 Filter by trace ID 和 Filter by span ID 設(shè)置,因?yàn)樗鼈儾荒苡糜谧远x查詢。
- 開啟 Use custom query。
- 指定一個(gè)用于查詢?nèi)罩镜淖远x查詢。你可以使用各種變量來使該查詢與當(dāng)前 span 相關(guān)。只有當(dāng)所有的變量都以非空值插值時(shí),該鏈接才會出現(xiàn),以防止創(chuàng)建一個(gè)無效的查詢。
可以在自定義查詢中使用的 Variables
要使用一個(gè)變量,你需要用${}
來包裹它。例如:${__span.name}
。
Variable name | Description |
---|---|
__tags | 該變量使用來自用戶界面的標(biāo)簽映射,以特定的數(shù)據(jù)源語法創(chuàng)建一個(gè)標(biāo)簽匹配器字符串。該變量只使用 span 中存在的標(biāo)簽。即使這些標(biāo)簽中只有一個(gè)存在于 span 中,鏈接仍然被創(chuàng)建。如果查詢不需要所有的標(biāo)簽,你可以使用這個(gè)。 |
__span.spanId | Span 的 ID |
__span.traceId | Trace 的 ID |
__span.duration | Span 的持續(xù)時(shí)間 |
__span.name | Span 的名稱 |
__span.tags | span中標(biāo)簽的命名空間。要訪問一個(gè)名為 "version" 的特定標(biāo)簽,你可以使用${__span.tags.version} 。如果標(biāo)簽包含點(diǎn),你必須以${__span.tags["http.status"]} 的方式訪問它。 |
__trace.traceId | Trace 的 ID |
__trace.duration | Trace 的持續(xù)時(shí)間 |
__trace.name | Trace 的名稱 |
下表描述了你可以配置 Trace to logs 設(shè)置的方式:
Setting name | Description |
---|---|
Data source | 定義目標(biāo)數(shù)據(jù)源。你可以只選擇Loki或Splunk logs 數(shù)據(jù)源。 |
Span start time shift | 根據(jù) span 的開始時(shí)間,偏移日志查詢的開始時(shí)間。你可以使用時(shí)間單位,如5s ,1m ,3h 。要把時(shí)間延長到過去,則使用一個(gè)負(fù)值。默認(rèn)值:0 。 |
Span end time shift | 根據(jù) span 的結(jié)束時(shí)間,轉(zhuǎn)移日志查詢的結(jié)束時(shí)間。你可以使用時(shí)間單位。默認(rèn):0 。 |
Tags | 定義了在日志查詢中使用的標(biāo)簽。默認(rèn):cluster , hostname , namespace , pod 。你可以改變標(biāo)簽的名稱,例如,如果目標(biāo)數(shù)據(jù)源中不允許使用點(diǎn),可以從名稱中刪除點(diǎn)。例如,將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 設(shè)置配置了 Grafana 與 Jaeger 集成時(shí)可用的 trace 到 metrics 功能。
要配置 trace to metrics:
- 選擇目標(biāo)數(shù)據(jù)源。
- 創(chuàng)建需要的鏈接查詢。
Setting name | Description |
---|---|
Data source | 定義目標(biāo)數(shù)據(jù)源. |
Tags | 定義了鏈接查詢中使用的標(biāo)簽。鍵值設(shè)置 span 屬性名稱,可選值設(shè)置相應(yīng)的metric 標(biāo)簽名稱。例如,你可以將k8s.pod 映射為pod 。要把這些標(biāo)簽插進(jìn)查詢中,請使用$__tags 關(guān)鍵字。 |
每個(gè)鏈接查詢包括:
- Link Label: (可選項(xiàng)) 鏈接查詢的描述性標(biāo)簽。
-
Query: 從 trace 跳轉(zhuǎn)到 metric 數(shù)據(jù)源時(shí)運(yùn)行的查詢。使用
$__tags
關(guān)鍵字對標(biāo)簽進(jìn)行插值。例如,當(dāng)你配置查詢requests_total{$__tags}
時(shí),標(biāo)簽為k8s.pod=pod
和cluster
,結(jié)果看起來像requests_total{pod="nginx-554b9", cluster="us-east-1"}
。
Jaeger 數(shù)據(jù)源配置示例
Jaeger 數(shù)據(jù)源配置示例 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文章來源:http://www.zghlxwxcb.cn/news/detail-443562.html
三人行, 必有我?guī)? 知識共享, 天下為公. 本文由東風(fēng)微鳴技術(shù)博客 EWhisper.cn 編寫.文章來源地址http://www.zghlxwxcb.cn/news/detail-443562.html
到了這里,關(guān)于Grafana系列-統(tǒng)一展示-9-Jaeger數(shù)據(jù)源的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!