iT邦幫忙

2025 iThome 鐵人賽

DAY 23
1
DevOps

初探 LLM 可觀測性:打造可持續擴展的 AI 系統系列 第 23

【Day 23】導入 LLM 可觀測性不需從頭開始:善用 OpenTelemetry 完美整合現有架構

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20251007/20149562vc0GF6IhH4.jpg

前言

在大型語言模型(LLM)應用席捲全球的今天,如何有效監控並觀測這些「黑盒子」的行為,已成為維運團隊最迫切的挑戰。許多團隊早已建立了成熟的 Grafana / Datadog 可觀測性平台,用以監控傳統應用服務的指標、追蹤與日誌。現在,難道我們需要為 LLM 應用再造一套全新的監控系統嗎?

LLM (Large Language Model) 應用開發的浪潮下,可觀測性 (Observability) 成為確保系統穩定性和效能優化的關鍵。作為一名 DevOps 工程師或開發人員,我們常常面臨如何監控 LLM 應用的挑戰,包括追蹤延遲、成本、錯誤率等指標。

這篇文章將會以我在 2025 devops day 中的 Bootcamp 內容,介紹 OpenLIT 這個開源的可觀測性平台解決方案,並重點探討它如何透過 OpenTelemetry 標準與我們現有的 Grafana 可觀測性平台無縫整合。只要掌握這個概念,我們不僅能快速建置 LLM 代理應用,還能實現原生的 traces、metrics 和 logs 整合,讓現有基礎設施發揮更大價值。

OpenLIT 的定位與其 LLM 可觀測性平台

https://ithelp.ithome.com.tw/upload/images/20251007/20149562UVnFnoNAjm.png

OpenLIT 是一個專為 LLM 應用設計的開源可觀測性平台,由 OpenLIT 團隊開發,旨在幫助開發者輕鬆收集和視覺化 LLM 相關的遙測資料 。它的定位是作為 LLM 專屬的 observability 工具,聚焦於 AI 應用的特定需求,例如監控提示 (prompt) 效能、模型回應品質、token 使用量等。相較於通用可觀測性平台,OpenLIT 提供了內建的 LLM 特定儀表板和指標,讓開發者能快速洞察 AI 應用的瓶頸。
在 OpenLIT 自身的平台中,它提供了一個直觀的 dashboard,用來顯示收集到的資料。

https://ithelp.ithome.com.tw/upload/images/20251007/20149562Z1gaGV5mA2.png

這個 dashboard 展示了 LLM 呼叫的詳細指標,例如延遲分佈、錯誤率和成本追蹤,幫助開發者優化應用。

使用者可以透過簡單的 SDK 整合,將 LLM 呼叫的 traces、metrics 和 logs 發送到 OpenLIT 後端,後者基於 OTEL 標準處理這些資料。這使得 OpenLIT 不僅是獨立的平台,還能作為橋樑,連接 LLM 應用與更廣泛的 observability 生態系。

關鍵的中的關鍵:原生支援 OpenTelemetry 的 OpenLit SDK

https://ithelp.ithome.com.tw/upload/images/20251007/20149562oBjWsA8wOL.png

OpenLIT 的核心優勢在於其 SDK 採用通用的 OpenTelemetry (OTEL) 格式。這是 OTEL 標準的開放性,讓 OpenLIT 能輕鬆將 traces、metrics 和 logs 匯出到任何支援 OTEL 的後端,例如 Prometheus (用於 metrics)、Jaeger 或 Tempo (用於 traces),以及 Loki (用於 logs)。

而 OpenLit 原來的架構也是透過 OpenTelemetry Clickhouse Exporter 將資料輸出到 ClickHouse 的方式傳遞資料。

https://ithelp.ithome.com.tw/upload/images/20251007/2014956240sgwYC3WH.png

這意味著,我們無需大規模修改現有基礎設施,就能將 LLM 特定的遙測資料原生整合進 Grafana 等平台。

在架構上,OpenLIT 扮演「收集器」的角色:

  • SDK 層:在 LLM 應用中嵌入 OpenLIT SDK,它會自動產生 OTEL 相容的遙測資料。
  • 收集與匯出:OpenLIT 後端接收這些資料,並可配置為將其轉發到外部 OTEL collector 或直接匯出到 Grafana 的資料來源。
  • 整合點:Grafana 可以透過 Prometheus 或 Loki 等插件,直接查詢這些 OTEL 資料,實現統一的監控視圖。

https://ithelp.ithome.com.tw/upload/images/20251007/20149562RRvnDukctY.png

這種設計避免了資料孤島,讓 LLM 可觀測性成為現有系統的延伸。例如,在生產環境中,我們的 Grafana 已經用於監控應用效能,現在只需配置 OTEL exporter,就能將 LLM 指標無縫加入。

Bootcamp Demo 中的操作與實作

為了示範這個整合,我在 repo 中設計了三階段的 bootcamp,每階段都有 docker-compose.yaml 和相應的 README,讓讀者能輕鬆重現。以下是關鍵操作步驟,並附上相關圖片。

第一階段:使用 Google ADK 建置 LLM 代理應用

這個階段聚焦於建置 LLM 代理,使用 Google Agent Development Kit (ADK) 來創建 code optimizer 和 multi-tool agent。

  1. 複製 .env.example 為 .env,並填入 Google API key(可從 Google Cloud Console 取得)。

    https://ithelp.ithome.com.tw/upload/images/20251007/20149562EAuWVLeIk8.png

  2. 執行 docker-compose up -d,啟動 ADK 服務。Web UI 位於 http://localhost:8000

  3. 而我們預期能夠快速的運作一個具有多個工具的 Agent 來可視化其中的工具與 Prompt 調度過程。

    https://ithelp.ithome.com.tw/upload/images/20251007/20149562elCIbPAz7H.png

    在這裡,你可以測試 Agent 的運作,例如輸入程式碼優化請求,觀察 Agent 如何呼叫 LLM 並整合工具。

    https://ithelp.ithome.com.tw/upload/images/20251007/20149562JCBjr7k6hQ.png

這個階段建立 LLM 應用基礎,後續將注入可觀測性。

第二階段:使用 OpenLIT 收集遙測資料

基於第一階段的應用,我們加入 OpenLIT SDK 來收集資料。

  1. 在 openlit 目錄下,複製 .env.example.env,配置 OTEL exporter(指向 OpenLIT 後端)。

  2. 執行 docker-compose up -d,啟動 OpenLIT 服務。

  3. 在 ADK 應用中嵌入 OpenLIT SDK,例如在 Python 程式碼中 import openlit 並初始化 tracer。

    import openlit
    import os
    
    openlit.init(
        otlp_endpoint=os.environ.get('OTEL_EXPORTER_OTLP_ENDPOINT', 
                                     'http://host.docker.internal:4318'),
        application_name='multi_tool_agent',
        environment='dev'
    )
    

    現在,當 Agent 運行時,遙測資料會自動發送到指定的 OTEL 端口並且轉發到任何兼容的後端。

這展示了 OpenLIT 如何輕鬆注入 LLM 應用,無需改變核心邏輯。

第三階段:匯出到 Grafana 實現整合

最後,將 OpenLIT 收集的 OTEL 資料匯出到 Grafana。

  1. 在 grafana 目錄下,執行 docker-compose up -d,啟動 Grafana 服務(http://localhost:3300)。

  2. 配置 OpenLIT 的 exporter,將 metrics 發送到 Prometheus,logs 到 Loki。

  3. 在 Grafana 中新增資料來源,並建立自訂 dashboard,顯示 LLM 特定指標如成本、延遲和錯誤率。

    https://ithelp.ithome.com.tw/upload/images/20251007/20149562WXXOjvlQVy.png

  4. 在 Grafana Explore 頁面中,選擇 Tempo 的 dashsource 查看 google adk agent 的相關 prompt 追蹤詳細內容。

    https://ithelp.ithome.com.tw/upload/images/20251007/20149562iwE2HEfxyQ.png

透過這些步驟,我們看到從應用建置到可觀測性整合的全流程。

在現有 Grafana 平台中實現 LLM 可觀測性,並區分定位差距

在現有的 Grafana 平台中實現 LLM 可觀測性非常直觀:只需將 OpenLIT 作為 OTEL collector 的前端,匯出資料到 Grafana 的後端儲存。這樣,我們能在單一平台監控整個系統,包括傳統應用和 LLM 部件。舉例來說,Grafana 可以顯示混合 dashboard,結合伺服器 metrics 與 LLM token 使用率,幫助診斷跨層問題。

然而,OpenLIT 和 Grafana 的定位有明顯差距:

  • OpenLIT 的定位:專注於 LLM 特定需求,提供開箱即用的 AI 指標和 dashboard,適合快速原型和 AI 開發者。它的優勢在於簡易性和針對性,但可能缺乏企業級的擴展性。
  • Grafana 的定位:通用可觀測性平台,支援多資料來源和自訂查詢,適合大型基礎設施。透過 OTEL 整合,它能涵蓋 LLM,但需要更多配置來處理 AI 特定視圖。

總之,OpenLIT 作為補充,能強化 Grafana 在 AI 領域的不足。想體驗的朋友可以透過我的 bootcamp repo,你可以親自體驗這個整合!

面向 OpenLIT(懂 LLM 的語意層) 既有 Grafana 平台(通用可觀測中心)
主要儲存/查詢 ClickHouse,對 LLM 成本/Token/Prompt 分析友善 Prometheus(metrics)、Tempo(traces)、Loki(logs)
資料模型 遵循 OTel(含 GenAI 語意規範)輸入;預建製 LLM Dashboard 通用時序/追蹤/日誌視圖,擅長跨服務關聯與告警
強項 Token/Cost 透明化、Prompt/模型選型比較、互動儀表板 完整 SRE 監控、告警、跨遙測訊號聯動(metrics⇄logs⇄traces)
角色 LLM 工程與產品分析面板 組織級觀測主控台

結論

在 LLM 應用快速演進的時代,可觀測性不再是可有可無的附加品,而是確保 AI 系統可靠運行的核心要素。透過 OpenLIT 這個開源平台,我們不僅能輕鬆捕捉 LLM 特有的指標,如 token 消耗、提示效能和成本追蹤,還能憑藉其 OTEL 標準的 SDK,將這些資料無縫注入既有的 Grafana 基礎設施中。這避免了重複投資,讓 DevOps 團隊在熟悉的環境中擴展監控範圍,從而實現全域視圖的統一管理。
這個 bootcamp demo 證明了整合的簡易性:從建置 Google ADK 代理,到注入 OpenLIT SDK,再到 Grafana 的視覺化輸出,只需幾個步驟即可上手。無論你是 AI 開發者還是 SRE 工程師,這種方法都能加速你的 LLM 專案落地,降低運維風險。未來,隨著 OTEL 在 AI 生態的深化,我們絕對可以預期更多工具將採用此標準,進一步簡化可觀測性的建置。


上一篇
【Day 22】探討 LLM 可觀測性平台:讓你的 LLM 應用持續進化
下一篇
【Day 24】從程式碼到資產:深入 Prompt Management 的藝術與實踐
系列文
初探 LLM 可觀測性:打造可持續擴展的 AI 系統24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言