附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請以雲端環境特有的值取代這些值。
使用 OCI Application Performance Monitoring 和 OpenTelemetry 監控應用程式
簡介
監督不同堆疊元件的應用程式通常具有挑戰性。統一的監控這些元件方法可讓您對可能發生的問題進行端對端可見性和洞察。OpenTelemetry 是一種業界標準,可用來收集大多數程式設計語言的追蹤、測量結果及日誌資料。它可以在結合 Oracle Cloud Infrastructure (OCI) 可觀察性與管理服務 (例如 OCI Application Performance Monitoring 和 OCI Logging Analytics) 時提供強大的洞察力。
OCI Application Performance Monitoring 提供應用程式效能的深入檢視,並且能夠快速診斷問題,以提供一致的服務層級。這包括監控跨客戶、第三方服務和後端運算層、內部部署或雲端的多個元件和應用程式邏輯。
OCI Logging Analytics 是 OCI 中的一個雲端解決方案,可對應用程式和系統基礎架構的所有日誌資料進行索引、強化、聚總、探索、搜尋、分析、關聯、視覺化及監控。使用 OCI Logging Analytics 內建的精選 AI/ML 模型,從日誌資料中取得強大的洞察力。
OpenTelemetry 針對不同的程式設計語言有多種實作,且會持續更新或開發。使用此架構的目的是要以統一且標準的方式來收集和傳送監督資料。
在本教學課程中,您將瞭解如何使用 OpenTelemetry 來設計應用程式,並將收集的資料匯出至 OCI Application Performance Monitoring 和 OCI Logging Analytics 之類的 OCI 服務。
目標
-
設定非 Oracle 堆疊應用程式的 OpenTelemetry。
-
將追蹤和度量傳送至 OCI Application Performance Monitoring。
-
將日誌資料傳送至 OCI 日誌記錄分析。
必要條件
-
具有初始管理員帳戶的 OCI 租用戶。
-
Node.js
應用程式 (GitHub 儲存區域範例: oci-observability-and-management)。 -
對 JavaScript 的基本理解。
GitHub 範例
如果您要實行 MERN/MEAN/MEVN 應用程式的監督,請使用 GitHub 儲存區域 oci-observability-and-management 。此儲存庫包含下列檔案:
-
整理應用程式前端與後端介面。
-
將自訂度量傳送至 OCI Application Performance Monitoring (APM)。
-
將日誌訊息傳送至 OCI 日誌記錄分析。
-
實驗 OpenTelemetry 實作的範例應用程式。
作業 1:設定 OCI Application Performance Monitoring
-
建立 OCI Application Performance Monitoring (APM) 網域
注意:請檢閱 OCI Application Performance Monitoring 文件以取得先決條件作業。
-
登入 OCI 主控台並瀏覽至可觀測性與管理、應用程式效能管理、管理,以開啟 OCI Application Performance Monitoring 管理頁面。
-
按一下建立 APM 網域,然後輸入網域名稱。請注意,在 OCI Application Performance Monitoring 網域頁面中找到下列資訊。
-
資料上傳端點:用以將資料傳送至 OCI Application Performance Monitoring 的 URL。
-
公用資料金鑰:與 OCI Application Performance Monitoring 瀏覽器代理程式搭配使用。
-
私密資料金鑰:與資料收集器 (例如 OpenTelemetry) 連線。
-
-
-
工具應用程式
若要監督應用程式的前端,請設定 OCI Application Performance Monitoring 瀏覽器代理程式的工具。如需詳細資訊,請參閱瀏覽器 / 用戶端設備步驟。
伺服器設備
-
若要取得端對端追蹤,必須從瀏覽器 / 從屬端的前端追蹤將相關資訊環境傳輸到伺服器。這麼做時必須牢記在心,以確保有 HTTP 標頭能夠提供相關資訊環境。依照預設,OpenTelemetry 會使用 W3C (traceparent) 自動傳輸相關資訊環境。還有其他標頭類型可供使用,但必須在應用程式程式碼中記入。
-
請務必使用執行瀏覽器 / 從屬端儀表的 JavaScript 程式碼片段新增下列程式碼。
window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
-
根據可用的內容對自動儀表或手動後端進行儀器分析,請參閱程式設計語言的步驟。
GitHub 中的範例
-
作業 2:設定 OCI 日誌記錄分析
-
傳送應用程式日誌
將應用程式日誌傳送至 OCI 日誌記錄分析,可讓追蹤、度量和日誌關聯,以完整檢視應用程式。您可以使用標準記錄程式庫和自訂記錄附加程式來啟用記錄。必須建立日誌附加程式,才能使用 OCI 提供的 SDK 或 REST 端點傳送日誌,如圖所示。
-
建立 API 簽署金鑰
-
前往 OCI 主控台並瀏覽至使用者、使用者設定值。
-
選取資源底下的 API 金鑰。
-
按一下新增 API 金鑰、產生 API 金鑰組、下載私密金鑰以及新增。
-
從組態檔預覽複製內容,然後按一下關閉。
-
-
建立組態檔
建立一個目錄 (
.oci
) 和一個組態檔,其中包含來自組態檔預覽和私密金鑰檔案的內容。以下是組態檔的範例。[DEFAULT] user= [User OCID] fingerprint= [API Key Fingerprint] tenancy= [Tenancy OCID] region= [Region] key_file= [Path to Private Key File]
-
建立日誌剖析器
-
前往 OCI 主控台,然後瀏覽至可觀測性與管理、記錄分析、管理。
-
按一下剖析器、建立剖析器,然後選取類型作為
JSON
。 -
輸入
JSON
日誌內容範例,它會剖析和擷取欄位,並將其對應至特定的欄位名稱,然後按一下儲存變更。
-
-
建立日誌來源
-
前往 OCI 主控台,然後瀏覽至日誌記錄分析、管理、來源、建立來源。
-
輸入來源類型作為
File
,實體類型作為Host (Linux)
。 -
在特定剖析器中,選取在「工作 2.4」中建立的剖析器,然後按一下建立來源。
-
-
建立日誌群組
-
前往 OCI 主控台,然後瀏覽至日誌記錄分析、管理、日誌群組、建立日誌群組。
-
輸入日誌群組的名稱、描述,然後按一下建立。
注意:請注意,日後將使用的日誌群組 Oracle Cloud Identity (OCID)。
-
-
取得命名空間詳細資訊
-
前往 OCI 主控台並瀏覽至識別、區間,然後按一下建立日誌來源的區間並複製區間的 OCID。
-
開啟 Cloud Shell 並執行下列命令以取得命名空間。
oci os ns get -c compartmentID
-
-
建立日誌 Appender
您可以使用為不同程式設計語言 (例如 Java、Python、.Net、TypeScript/JavaScript、Go 和 Ruby) 提供的 OCI 日誌記錄分析 SDK 建立自訂日誌附加程式,或使用 OCI API Rest 端點。如需詳細資訊,請參閱 Software Development Kits (SDK) 和 API Reference and Endpoints 。
GitHub 中的範例:日誌附加程式 - JavaScript (MERN 堆疊) 。
記下下列從上述步驟起始日誌記錄分析並傳送日誌所需的參數。
- [PATH] /config:組態檔的路徑。
- [PROFILE] :組態檔中要用於 OCI 認證的設定檔。
- [NAMESPACE] :命名空間。
- [UPLOADNAME] :使用者定義的上傳名稱。
- [LOGSOURCENAME] :在 OCI 日誌記錄分析中建立的日誌來源名稱。
- [LOGFILENAME] :指示日誌訊息與特定日誌檔相關的日誌檔名稱。
- [LOGGROUPID] :在 OCI Logging Analytics 中建立的日誌群組 ID 可將日誌訊息分組。
透過日誌附加程式為不同日誌層級 (除錯、資訊、警告和錯誤) 建立日誌記錄之後,系統會將其傳送至 OCI 日誌記錄分析,而且您可以在日誌總管中檢視日誌記錄,如下所示。
作業 3:關聯追蹤和日誌
OpenTelemetry 在日誌記錄中包含 TraceId
和 SpanId
,這可讓您直接關聯對應至相同執行相關資訊環境的日誌和追蹤。應用程式追蹤和跨度會流入 OCI Application Performance Monitoring 並登入 OCI Logging Analytics 服務。OCI Application Performance Monitoring 提供簡單的方式,只要按一下即可使用向下展開組態,即可從追蹤和跨度瀏覽至 OCI 日誌記錄分析中的日誌。
向下展開是使用可自訂 URL (包括跨度的屬性) 連結至 OCI 中其他服務或其他自訂服務的連結 (例如:loganalytics/explorer?search=<OciInstanceId>
,其中 ociInstanceId
是跨度屬性)。請依照下列步驟,在 OCI Application Performance Monitoring 中設定向下展開功能。
工作 4:建立自訂儀表板
在 OCI 中追蹤資料和指標之後,請使用該資料以視覺化方式呈現。只要拖放所需的小工具並修改來源資料 (度量、追蹤或日誌資料),即可輕鬆建立自訂儀表板。
如需自訂儀表板的詳細資訊,請參閱:
- 建立自訂 APM 儀表板
- 建立自訂日誌記錄分析儀表板
- 使用小工具自訂及顯示 Application Performance Monitoring 儀表板中的追蹤資料,以從 Application Performance Monitoring 的追蹤總管查詢建立自訂小工具。
為 MERN 應用程式建立的範例儀表板。
相關連結
認可
- 作者 - Zyaad Khader (策略性客戶方案工程師)
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Monitor Applications using OCI Application Performance Monitoring and OpenTelemetry
F91955-01
January 2024
Copyright © APMOT, Oracle and/or its affiliates.