iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

GPT伴我讀一些文件系列 第 23

Day23- GPT 陪我讀 Explore OpenTelemetry Logs in Loki

  • 分享至 

  • xImage
  •  

OpenTelemetry 與數據可視化

OpenTelemetry 不僅是一個遙測框架,它還是一個強大的工具,可以幫助開發者深入了解他們的應用程序和系統的運行情況。通過 OpenTelemetry,我們可以蒐集日誌、指標和跟踪數據,這三者是任何現代監控解決方案的核心。

  1. 在 Loki 中探索 OpenTelemetry 日誌:
    Loki 是一個高效的日誌聚合系統,專為使用和存儲大量日誌而設計。當你蒐集 OpenTelemetry 日誌時,Loki 提供了一個方便的界面,可以方便地搜尋和分析這些日誌。

  2. 在 Prometheus 中探索 OpenTelemetry 指標:
    Prometheus 是開源的監控解決方案和時序數據庫。當使用 OpenTelemetry 蒐集指標時,Prometheus 提供了一個強大的查詢語言和界面來深入瞭解這些指標。

  3. 在 Tempo 中探索 OpenTelemetry 跟踪:
    Tempo是一個高度可擴展的跟踪後端。它專為OpenTelemetry設計,讓開發者能夠查看他們的應用程序的完整跟踪,瞭解請求在整個系統中是如何流動的。

  4. OpenTelemetry Grafana 儀表板:
    Grafana 是一個開源的平台,用於監控和觀察。當你蒐集 OpenTelemetry 數據時,Grafana 儀表板提供了一個直觀的界面,可以將這些數據整合和可視化,從而獲得全面的系統概覽。

這些工具和技術共同構成了一個強大的數據可視化生態系統,讓開發者和運營團隊能夠更好地理解和優化他們的應用程序和服務。


在 Loki 中探索 OpenTelemetry 日誌

一旦您將數據發送到 Grafana Cloud 或 OSS 堆棧,您就可以通過 Grafana 的 Explore UI 查看日誌數據。本文主要介紹從 Grafana Cloud 堆棧啟動 Explore,但 OSS 堆棧的導航應該相似。

要探索 OpenTelemetry 數據,請前往您的 Grafana Cloud 控制台,選擇您的 Grafana 實例,然後點擊啟動。

然後從左側菜單中選擇 Explore。

一旦打開 Explore,從下拉菜單中選擇您的 Loki 實例。使用 GrafanaCloud 時,命名規則是 grafanacloud-<STACK_NAME>-log

要在 Loki 中查看 OpenTelemetry 日誌,您可以使用 BuilderCode 工具來構建查詢。

每個查詢都必須從stream selector開始。選擇一個或多個標籤來創建stream selector。以下是一個簡單的範例:

{exporter="OTLP"}

如果您在適當的時間窗口中運行上述查詢,您將看到所有通過 OTLP exporter 發送的日誌。

在 Loki 中查看 OpenTelemetry 日誌條目時,可以切換 Prettify Json 選項,以幫助讀取大型語句;但是,您還可以撰寫查詢,使得只包含感興趣的字段。要做到這一點,請在查詢中添加一個 json 階段,將日誌語句轉換為鍵值對。

{exporter="OTLP"} | json

運行上述查詢,然後向下滾動到結果集。點擊一條記錄以展開並查看鍵值對。

接下來,您可以使用只包含感興趣字段的 line_format 表達式自定義 Loki 日誌格式。

{exporter="OTLP"} | json | line_format "[{{ .attributes_thread_name }}] {{ .body}}"

上述查詢將創建一個結果集,其中只包括時間、線程名稱和消息正文。

撰寫此文時,線程名稱仍然是一個實驗性特性,必須明確啟用(例如,對於 Java Agent 或 Spring Starter)。

logger 名稱也是一個非常常見的屬性({{.instrumentation_scope_name}})- 但在撰寫此文時,不能與 Grafana Agent 一起使用。

常見框架格式

下表提供了 line_format 表達式,試圖與給定框架的默認日誌格式保持一致。

我們建議用 service.instance.id 替換進程 ID (resources_process_pid),這樣可以輕鬆識別出有問題的節點。

框架 框架中的格式模式 Grafana 中的格式模式 LogQL 表達式
Java - Spring Boot TIMESTAMP SEVERITY PROCESS_PID --- [THREAD] LOGGING CLASS : MESSAGE TIMESTAMP SEVERITY [SERVICE_INSTANCE_ID/THREAD NAME] - LOGGER NAME: MESSAGE ```{exporter="OTLP"}

注意:如果時間戳未顯示,請確保將 Time 屬性切換為開。

在 Prometheus 中探索 OpenTelemetry 指標:

一旦您已將數據發送到您的 Grafana Cloud 或 OSS 堆棧,您可以通過 Grafana 的 Explore UI 查看跟踪數據。本文重點介紹從 Grafana Cloud 堆棧啟動 Explore 的方法,但 OSS 堆棧的導航應該相似。

要探索 OpenTelemetry 數據,請轉到您的 Grafana Cloud 控制台,選擇您的 Grafana 實例,然後單擊啟動。

然後從左側菜單中選擇探索。

一旦 Explore 打開,從下拉菜單中選擇您的 Prometheus 實例。使用 GrafanaCloud 時,命名慣例是 grafanacloud-<STACK_NAME>-prom

要在 Prometheus 中查看 OpenTelemetry 指標,從下拉菜單中選擇一個指標,然後添加帶有 “工作” 作為標籤名稱和您的應用名稱作為標籤值的標籤過濾器。

點擊 “運行查詢” 以查看數據:

在 Tempo 中探索 OpenTelemetry 跟踪

一旦您已將數據發送到您的 Grafana Cloud 或 OSS 堆棧,您可以通過 Grafana 的 Explore UI 查看跟踪數據。本文重點介紹從 Grafana Cloud 堆棧啟動 Explore 的方法,但 OSS 堆棧的導航應該相似。

要探索 OpenTelemetry 數據,請轉到您的 Grafana Cloud 控制台,選擇您的 Grafana 實例,然後單擊啟動。

然後從左側菜單中選擇探索。

一旦 Explore 打開,從下拉菜單中選擇您的 Tempo 實例。使用 GrafanaCloud 時,命名慣例是 grafanacloud-<STACK_NAME>-traces。

要在 Tempo 中查看 OpenTelemetry 的跟踪,請在第一行中選擇您的應用程序(“Resource Service Name”):

點擊跟踪 ID 會在右側打開一個視圖,該視圖顯示了跟踪中跨度的詳細信息,例如 HTTP 狀態碼:

總結

數據可視化摘要:

  • OpenTelemetry 日誌在 Loki 中的探索: 一旦數據發送到您的 Grafana Cloud 或 OSS 堆棧,您可以通過 Grafana 的 Explore UI 查看日誌數據。您可以選擇使用 Builder 或 Code 工具構建查詢以在 Loki 中查看 OpenTelemetry 日誌。
  • 在 Prometheus 中探索 OpenTelemetry 指標: 除日誌外,您還可以在Prometheus中查看由OpenTelemetry收集的指標數據。這需要從下拉菜單中選擇指標,然後添加標籤過濾器。
  • 在 Tempo 中探索 OpenTelemetry 跟踪: 使用Grafana Explore UI,用戶可以在Tempo中查看跟踪數據。這需要選擇應用程序,然後點擊跟踪ID以查看該跟踪的跨度詳細信息。

總之,這些工具為用戶提供了靈活的數據可視化選項,使他們能夠更好地理解和解析他們的 OpenTelemetry 數據。


上一篇
Day22- GPT 陪我讀 解決 OpenTelemetry Collector 的問題
下一篇
Day24- GPT 陪我讀 Manual instrumentation of Go applications with OpenTelemetry Metrics SDK
系列文
GPT伴我讀一些文件31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言