設定OpenTelemetry以深入分析AEM應用程式

瞭解如何將AEM as a Cloud Service環境連線到您選擇的OpenTelemetry相容可觀察性平台。

在先前文章中,您已瞭解搭配AEM as a Cloud Service使用OpenTelemetry的概念和優點。 在本教學課程中,我們使用AEM WKND範例專案作為範例應用程式,並展示如何使用Cloud Manager設定管道部署config/otel.yaml來匯出遙測。

高層級步驟為:

  1. 取得​ 您的可觀察性平台 ​的OTLP/HTTPS端點與擷取認證。
  2. 將認證安全地儲存在Cloud Manager中。
  3. 將config/otel.yaml檔案新增至您的AEM專案存放庫。
  4. 執行Cloud Manager 設定管道。
  5. 產生與AEM應用程式的流量。
  6. 驗證可觀察性平台中的遙測。
AVAILABILITY
此功能處於​ 有限可用性 ​中。 若要使用它,請在回覆您的要求後,立即透過電子郵件傳送aemcs-apm-beta@adobe.com來要求存取權 — Adobe為您的環境啟用OpenTelemetry。 如果您的環境目前使用Adobe的內建APM整合,該整合會在啟用OpenTelemetry後停止傳送資料,因為兩者無法同時執行。
請注意,它​ 不 ​適用於HIPAA範圍內的環境、快速開發環境(RDE)和沙箱。

先決條件

開始之前,請確定您已:

  • 已部署WKND網站或您自己的應用程式的​ AEM as a Cloud Service ​開發、預備或生產環境。 HIPAA範圍內的環境、沙箱程式和快速開發環境(RDE)不支援OpenTelemetry。
  • 存取​Cloud Manager,並擁有管理環境變數以及建立和執行設定管道的許可權。
  • 接受透過HTTPS 的 OTLP的可觀察性平台,具有端點與擷取認證。
  • 存取可觀察性平台以驗證和視覺化傳入的AEM遙測。

步驟1:取得您的可觀察性端點與認證

在您的可觀察性平台中,找到其​OTLP/HTTPS擷取端點,並建立或擷取適當的擷取認證。 如需指示,請參閱您平台的檔案。

不確定要使用哪個平台? 請參閱選擇可觀察性平台。

本教學課程使用自行裝載的可觀察性平台,該平台支援透過HTTPS的OTLP並需要基本驗證權杖。

步驟2:將可觀察性認證儲存在Cloud Manager中

將內嵌認證儲存為Cloud Manager 機密環境變數。

  1. 在Adobe Cloud Manager中,選取您的AEM程式。
    在Cloud Manager中選取AEM程式

  2. 選取目標環境並按一下​檢視詳細資料。
    檢視環境詳細資料

  3. 在​ 組態 ​索引標籤上,按一下​ 新增/更新 ​並新增環境變數,其值為:
    新增環境變數

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    設定 值
    名稱 OTEL_CUSTOMER_AUTH
    值 您的提供者的內嵌認證。 格式因平台而異。 如需範例,請參閱提供者特定設定。
    已套用服務 全部
    類型 密碼

    在此範例中,自行裝載平台使用Basic <base64(user:password)>格式的基本驗證權杖。

  4. 按一下[新增]​​,然後按一下[儲存]​ ​ ​以儲存環境變數。
    儲存環境變數

config/otel.yaml檔案參照此密碼為${{secrets.OTEL_CUSTOMER_AUTH}}。 認證絕不能出現在AEM存放庫或管道記錄中。

步驟3:新增OpenTelemetry設定

在您的AEM專案存放庫中,建立config/otel.yaml檔案。 本教學課程中的自行託管平台會使用以下設定:

kind: "Otel"
version: "v1"
metadata:
  envTypes:
    - "dev"
    - "stage"
    - "prod"
data:
  enabled: true
  type: "generic"
  endpoint: "https://my-self-hosted-observability.adobe.net"
  authHeaderName: "Authorization"
  authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
  metrics: true
  logs: true

關鍵設定為:

設定
用途
metadata.envTypes
套用設定的環境型別。 包含目標環境型別。
enabled
設定為true時啟用客戶遙測匯出。
type
選取目的地組態,例如generic用於自行裝載的平台。
endpoint
目的地的基礎OTLP/HTTPS URL。
authHeaderName
攜帶認證的HTTP標頭,例如Authorization。
authHeaderValue
參考Cloud Manager機密,而非認證本身。
metrics
啟用在true時匯出量度的功能。
logs
在true時啟用應用程式記錄檔匯出。

在啟用整合時追蹤匯出。 量度和記錄為選用。 它們僅在設為true時匯出。

如需範例,請參閱下列WKND設定範例:

WKND範例組態

步驟4:部署OpenTelemetry設定

  1. 認可config/otel.yaml檔案並將其推送到您的設定管道用作其來源的存放庫和分支。
  2. 在Cloud Manager中,建立或編輯環境的​設定管道,並驗證其詳細資料。
    設定管道詳細資料
  3. 選取管道名稱並按一下​執行。
    執行設定管道
  4. 監視管道執行,直到成功完成。
    監視設定管道

管道在套用目的地設定之前會驗證設定。

步驟5:產生AEM流量

管道完成後,產生一些應用程式活動:

  1. 在AEM發佈服務上開啟WKND網站或您的應用程式,並在數個頁面之間導覽。
  2. 或者,開啟作者服務上的WKND網站以產生作者遙測。

請等候幾分鐘讓遙測到達您的可觀察性平台。

步驟6:驗證可觀察性平台中的遙測

開啟可觀察性平台並尋找遙測。 尋找追蹤、量度和記錄的步驟因平台而異。 下列熒幕擷取畫面來自Grafana可觀察性平台儀表板。

尋找AEM服務

搜尋AEM服務名稱,類似於:

cm-p<program>-e<environment>-aem-publish-<environment-type>

在本教學課程使用的自行託管平台中,發佈服務遙測會顯示如下:

可觀察性平台 🔗 中的WKND發佈服務遙測

檢查追蹤

尋找符合您WKND頁面請求的傳入HTTP請求範圍。 開啟追蹤並檢閱其要求名稱、持續時間及相關範圍。

可觀察性平台 🔗 中的WKND要求追蹤

檢查量度

因為組態設定metrics: true,所以請尋找JVM和HTTP量度,例如記憶體使用量、記憶體回收期間、執行緒計數和HTTP要求期間。

可觀察性平台中的 WKND服務量度

檢查記錄

因為組態設定logs: true,所以請檢查您的AEM應用程式記錄檔目的地。 整合會以支援的嚴重度(WARN或更高)臨界值匯出記錄,因此一般的頁面造訪可能不會在該層級產生記錄專案。

可觀察性平台 🔗 中的WKND服務記錄檔

疑難排解

如果設定管道失敗或遙測未出現在您的可觀察性平台中,請檢閱管道記錄並檢查以下專案:

症狀
檢查內容
環境未啟用OpenTelemetry
確認您的AEM程式符合OpenTelemetry的資格,並且此功能已針對目標環境啟用。 如需存取或平台啟用,請聯絡Adobe支援。
設定似乎被忽略
確認metadata.envTypes包含目標環境型別(dev、stage或prod)。 不相符會導致略過設定而不會發生錯誤。
密碼參考錯誤
確認OTEL_CUSTOMER_AUTH存在於Cloud Manager 機密環境變數​中,並將​ 服務套用 ​設定為​全部。 不可為管道變數。
驗證失敗(401或403)
驗證您的提供者所需的認證和驗證標頭。 例如,New Relic需要內嵌授權金鑰,而非使用者API金鑰。
端點無法連線或認證驗證失敗
驗證端點URL、區域和HTTPS連線。 需要穩定輸出IP位址的私人端點或目的地可能需要布建並啟用進階網路。
Dynatrace OneAgent衝突
當Dynatrace OneAgent在環境中作用中時,無法啟用OpenTelemetry。 在設定OpenTelemetry之前,必須移除現有的整合。
管道完成,但未出現遙測
請等候數分鐘讓資料到達、產生WKND或其他相關流量,以及檢查提供者的擷取狀態和service.name篩選器。
未顯示任何記錄
確認已設定logs: true,且AEM應用程式已產生WARN或以上層級的記錄專案。
重複的記錄專案
檢查OpenTelemetry記錄匯出和AEM記錄轉送是否將記錄傳送至相同的目的地。
內部系統錯誤
重試設定管道。 如果錯誤仍然存在,請聯絡Adobe支援並提供管道執行的詳細資訊。

如果問題仍然存在,請聯絡Adobe支援,並提供AEM程式ID、環境ID、設定管道執行ID、確切的錯誤訊息以及可觀察性提供者詳細資訊。 絕不包含驗證認證或密碼值。

如需其他組態範例和疑難排解資訊,請參閱OpenTelemetry產品檔案。

後續步驟

您已經為AEM as a Cloud Service設定了OpenTelemetry,並已驗證來自WKND範例應用程式的遙測是否可在您的可觀察性平台中使用。

您現在可以使用此遙測來調查緩慢或失敗的要求、監控JVM和HTTP效能,以及將應用程式記錄檔與追蹤建立關聯,以更清楚瞭解AEM應用程式行為。

若要擴充應用程式特定邏輯的遙測,請參閱使用OpenTelemetry的自訂檢測。

若要探索其他組態選項、支援的可觀察性提供者以及網路需求,請參閱OpenTelemetry產品檔案。

其他資源

recommendation-more-help
experience-manager-learn-help-cloud-service