附註:

使用 OCI Application Performance Monitoring 和 OpenTelemetry 監控應用程式

簡介

監督不同堆疊元件的應用程式通常具有挑戰性。統一的監控這些元件方法可讓您對可能發生的問題進行端對端可見性和洞察。OpenTelemetry 是一種業界標準,可用來收集大多數程式設計語言的追蹤、測量結果及日誌資料。它可以在結合 Oracle Cloud Infrastructure (OCI) 可觀察性與管理服務 (例如 OCI Application Performance Monitoring 和 OCI Logging Analytics) 時提供強大的洞察力。

顯示 OpenTelemetry 資料流程的圖表。

OCI Application Performance Monitoring 提供應用程式效能的深入檢視,並且能夠快速診斷問題,以提供一致的服務層級。這包括監控跨客戶、第三方服務和後端運算層、內部部署或雲端的多個元件和應用程式邏輯。

顯示 OCI Application Performance Monitoring 服務總覽的圖表。

OCI Logging Analytics 是 OCI 中的一個雲端解決方案,可對應用程式和系統基礎架構的所有日誌資料進行索引、強化、聚總、探索、搜尋、分析、關聯、視覺化及監控。使用 OCI Logging Analytics 內建的精選 AI/ML 模型,從日誌資料中取得強大的洞察力。

顯示 OCI 日誌記錄分析服務總覽的圖表。

OpenTelemetry 針對不同的程式設計語言有多種實作,且會持續更新或開發。使用此架構的目的是要以統一且標準的方式來收集和傳送監督資料。

在本教學課程中,您將瞭解如何使用 OpenTelemetry 來設計應用程式,並將收集的資料匯出至 OCI Application Performance Monitoring 和 OCI Logging Analytics 之類的 OCI 服務。

目標

必要條件

GitHub 範例

如果您要實行 MERN/MEAN/MEVN 應用程式的監督,請使用 GitHub 儲存區域 oci-observability-and-management 。此儲存庫包含下列檔案:

作業 1:設定 OCI Application Performance Monitoring

  1. 建立 OCI Application Performance Monitoring (APM) 網域

    注意:請檢閱 OCI Application Performance Monitoring 文件以取得先決條件作業。

    1. 登入 OCI 主控台並瀏覽至可觀測性與管理應用程式效能管理管理,以開啟 OCI Application Performance Monitoring 管理頁面。

    2. 按一下建立 APM 網域,然後輸入網域名稱。請注意,在 OCI Application Performance Monitoring 網域頁面中找到下列資訊。

      • 資料上傳端點:用以將資料傳送至 OCI Application Performance Monitoring 的 URL。

      • 公用資料金鑰:與 OCI Application Performance Monitoring 瀏覽器代理程式搭配使用。

      • 私密資料金鑰:與資料收集器 (例如 OpenTelemetry) 連線。

      顯示 OCI Application Performance Monitoring 網域詳細資訊的影像。

  2. 工具應用程式

    若要監督應用程式的前端,請設定 OCI Application Performance Monitoring 瀏覽器代理程式的工具。如需詳細資訊,請參閱瀏覽器 / 用戶端設備步驟

    伺服器設備

    • 若要取得端對端追蹤,必須從瀏覽器 / 從屬端的前端追蹤將相關資訊環境傳輸到伺服器。這麼做時必須牢記在心,以確保有 HTTP 標頭能夠提供相關資訊環境。依照預設,OpenTelemetry 會使用 W3C (traceparent) 自動傳輸相關資訊環境。還有其他標頭類型可供使用,但必須在應用程式程式碼中記入。

      相關資訊環境傳輸的圖表 HTTP 標頭資料。

    • 請務必使用執行瀏覽器 / 從屬端儀表的 JavaScript 程式碼片段新增下列程式碼。

      window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
      
    • 根據可用的內容對自動儀表或手動後端進行儀器分析,請參閱程式設計語言的步驟

    GitHub 中的範例

作業 2:設定 OCI 日誌記錄分析

  1. 傳送應用程式日誌

    將應用程式日誌傳送至 OCI 日誌記錄分析,可讓追蹤、度量和日誌關聯,以完整檢視應用程式。您可以使用標準記錄程式庫和自訂記錄附加程式來啟用記錄。必須建立日誌附加程式,才能使用 OCI 提供的 SDK 或 REST 端點傳送日誌,如圖所示。

    顯示日誌資料流程的圖表。

  2. 建立 API 簽署金鑰

    1. 前往 OCI 主控台並瀏覽至使用者使用者設定值

    2. 選取資源底下的 API 金鑰。

    3. 按一下新增 API 金鑰產生 API 金鑰組下載私密金鑰以及新增

    4. 組態檔預覽複製內容,然後按一下關閉

      OCI 中組態檔預覽的影像。

  3. 建立組態檔

    建立一個目錄 (.oci) 和一個組態檔,其中包含來自組態檔預覽和私密金鑰檔案的內容。以下是組態檔的範例。

    [DEFAULT]
    user= [User OCID]
    fingerprint= [API Key Fingerprint]
    tenancy= [Tenancy OCID]
    region= [Region]
    key_file= [Path to Private Key File]
    
  4. 建立日誌剖析器

    1. 前往 OCI 主控台,然後瀏覽至可觀測性與管理記錄分析管理

    2. 按一下剖析器建立剖析器,然後選取類型作為 JSON

    3. 輸入 JSON 日誌內容範例,它會剖析和擷取欄位,並將其對應至特定的欄位名稱,然後按一下儲存變更

      OCI 中日誌剖析器組態的映像檔。

  5. 建立日誌來源

    1. 前往 OCI 主控台,然後瀏覽至日誌記錄分析管理來源建立來源

    2. 輸入來源類型作為 File實體類型作為 Host (Linux)

    3. 特定剖析器中,選取在「工作 2.4」中建立的剖析器,然後按一下建立來源

      OCI 中日誌來源詳細資訊的映像檔。

  6. 建立日誌群組

    1. 前往 OCI 主控台,然後瀏覽至日誌記錄分析管理日誌群組建立日誌群組

    2. 輸入日誌群組的名稱描述,然後按一下建立

      注意:請注意,日後將使用的日誌群組 Oracle Cloud Identity (OCID)。

      OCI 中日誌群組詳細資訊的映像檔。

      標示 OCI 中日誌群組 OCID 的映像檔。

      標示 OCI 中區間 OCID 的映像檔。

  7. 取得命名空間詳細資訊

    1. 前往 OCI 主控台並瀏覽至識別區間,然後按一下建立日誌來源的區間並複製區間的 OCID。

    2. 開啟 Cloud Shell 並執行下列命令以取得命名空間。

      oci os ns get -c compartmentID
      

    顯示如何在 OCI 主控台中取得命名空間詳細資訊的影像。

  8. 建立日誌 Appender

    您可以使用為不同程式設計語言 (例如 Java、Python、.Net、TypeScript/JavaScript、Go 和 Ruby) 提供的 OCI 日誌記錄分析 SDK 建立自訂日誌附加程式,或使用 OCI API Rest 端點。如需詳細資訊,請參閱 Software Development Kits (SDK) API Reference and Endpoints

    GitHub 中的範例:日誌附加程式 - JavaScript (MERN 堆疊)

記下下列從上述步驟起始日誌記錄分析並傳送日誌所需的參數。

透過日誌附加程式為不同日誌層級 (除錯、資訊、警告和錯誤) 建立日誌記錄之後,系統會將其傳送至 OCI 日誌記錄分析,而且您可以在日誌總管中檢視日誌記錄,如下所示。

OCI 日誌記錄分析中的日誌總管檢視。

作業 3:關聯追蹤和日誌

OpenTelemetry 在日誌記錄中包含 TraceIdSpanId,這可讓您直接關聯對應至相同執行相關資訊環境的日誌和追蹤。應用程式追蹤和跨度會流入 OCI Application Performance Monitoring 並登入 OCI Logging Analytics 服務。OCI Application Performance Monitoring 提供簡單的方式,只要按一下即可使用向下展開組態,即可從追蹤和跨度瀏覽至 OCI 日誌記錄分析中的日誌。

向下展開是使用可自訂 URL (包括跨度的屬性) 連結至 OCI 中其他服務或其他自訂服務的連結 (例如:loganalytics/explorer?search=<OciInstanceId>,其中 ociInstanceId 是跨度屬性)。請依照下列步驟,在 OCI Application Performance Monitoring 中設定向下展開功能。

GIF 顯示從 OCI Application Performance Monitoring 向下展開至 OCI Logging Analytics 的範例。

工作 4:建立自訂儀表板

在 OCI 中追蹤資料和指標之後,請使用該資料以視覺化方式呈現。只要拖放所需的小工具並修改來源資料 (度量、追蹤或日誌資料),即可輕鬆建立自訂儀表板。

如需自訂儀表板的詳細資訊,請參閱:

為 MERN 應用程式建立的範例儀表板。

顯示 OCI Application Performance Monitoring 中自訂儀表板的影像。

認可

其他學習資源

瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center