透過OpenTelemetry的可觀察性

瞭解AEM as a Cloud Service如何使用OpenTelemetry將追蹤、度量和記錄傳送至您選擇的應用程式效能監視(APM)平台。

Adobe正在以OpenTelemetry取代AEM as a Cloud Service中的內建應用程式效能監控(APM)整合,此開放標準用於收集和匯出追蹤、度量和記錄。 透過OpenTelemetry,您​自備 APM端點,並使用您的團隊已知道的工具來監視AEM以及其他應用程式。 如需詳細資訊,請參閱OpenTelemetry檔案。

本文會說明整合提供的功能、遙測如何從AEM傳輸至您的APM平台、您所控制的專案,以及在啟用前需要考量的事項。 設定教學課程說明如何為您的AEM環境設定OpenTelemetry。

AVAILABILITY
此功能處於​ 有限可用性 ​中。 若要使用它,請在回覆您的要求後,立即透過電子郵件傳送aemcs-apm-beta@adobe.com來要求存取權 — Adobe為您的環境啟用OpenTelemetry。 如果您的環境目前使用Adobe的內建APM整合,該整合會在啟用OpenTelemetry後停止傳送資料,因為兩者無法同時執行。
請注意,它​ 不 ​適用於HIPAA範圍內的環境、快速開發環境(RDE)和沙箱。

為什麼OpenTelemetry

使用OpenTelemetry,您可以:

  • 選擇您的平台:傳送遙測至任何接受HTTPS之OpenTelemetry通訊協定(OTLP/HTTPS)的後端,包括目前支援OTLP的提供者。
  • 檢視完整圖片:透過單一整合(而非個別機制)取得追蹤、度量和記錄。
  • 更快調查:尋找緩慢或失敗的請求、追蹤一段時間的JVM健康狀況,以及在事件期間將AEM行為與其他服務建立關聯。
  • 保持控制:使用Cloud Manager設定管道設定要傳送資料到的目的地,並在您自己的平台中管理儀表板、警示和保留。

Adobe會提供並更新透過AEM執行的OpenTelemetry Java代理程式,因此您不會安裝或升級。 您決定要傳送遙測的位置。

運作方式

下圖顯示從AEM服務遙測到可觀察性平台的邏輯流程:

從AEM服務到客戶可觀察性平台的遙測邏輯流程

OpenTelemetry Java代理程式會從AEM服務收集應用程式遙測,並傳送給AEM環境中執行的OpenTelemetry收集器。 收集器會處理遙測並透過OTLP/HTTPS將其轉送到您設定的可觀察性平台。

只會傳送您的AEM應用程式產生的遙測。 有關基礎執行階段和平台的資訊,例如內部主機名稱、位址、容器識別碼,以及作業系統或程式詳細資訊,會在任何資料離開您的環境之前移除。

可用的遙測

訊號
您的收穫
如何啟用
追蹤
涵蓋您的應用程式處理的請求:傳入HTTP請求、servlet處理和傳出呼叫。
使用Cloud Manager設定管道設定和部署otel.yaml檔案,請參閱設定教學課程
個量度
JVM執行階段量度(記憶體、記憶體回收、執行緒、CPU使用率)和HTTP伺服器請求量度(速率、延遲和錯誤率)。
使用Cloud Manager設定管道設定並部署otel.yaml檔案與metrics: true,請參閱設定教學課程
個記錄檔
AEM應用程式記錄專案(WARN及以上),使用OpenTelemetry記錄訊號傳送。 注意:不會傳送Dispatcher和CDN記錄。
使用Cloud Manager設定管道設定並部署otel.yaml檔案與logs: true,請參閱設定教學課程

請牢記以下細節:

  • 為了保持追蹤著重於應用程式要求,會篩選掉大量內部活動,例如健康狀態偵測器和排程器(Quartz)工作。
  • 此發行版本不會發出微調的AEM架構內部範圍,例如Sling資源解析、OSGi服務和JCR存取。
  • 度量使用標準的OpenTelemetry名稱,例如jvm.memory.used、jvm.gc.duration、jvm.thread.count和http.server.request.duration。
WARNING
如果您透過OpenTelemetry 和​透過記錄轉送將記錄傳送至相同的目的地,您會收到重複的記錄訊息。 請為每個目的地只啟用一個路徑,或將每個路徑傳送到不同的目的地。
記錄轉送是獨立的機制,可繼續像現在一樣運作。

如何識別AEM服務

每個追蹤、量度和記錄專案都包含資源屬性,可讓您的平台區分不同的環境和層級:

  • service.name會依照此模式識別程式、環境、層級和環境型別:

    code language-text
    cm-p<program>-e<environment>-aem-<author|publish|preview>-<environment-type>
    

    例如,cm-p12345-e67890-aem-publish-prod是程式環12345中環境67890的發佈服務,執行於生產環境中。

  • deployment.environment識別環境型別,例如prod或stage。

使用這些屬性來篩選和群組遙測,以及將記錄檔與來自相同服務的追蹤和度量建立關聯。

您所控制的內容

您可使用Cloud Manager設定管道部署config/otel.yaml檔案來設定整合。

組態檔範例為:

kind: "Otel"
version: "v1"
metadata:
  envTypes:
    - "dev"
    - "stage"
    - "prod"
data:
  enabled: true
  type: "generic"
  endpoint: "<YOUR_OTLP_HTTPS_ENDPOINT>"
  authHeaderName: "Authorization"
  authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
  metrics: true
  logs: true
  advancedNetworking: false

設定會判斷:

  • 套用它的環境型別(prod, stage, dev)
  • 目的地型別(newrelic、dynatrace、generic等) 和OTLP/HTTPS端點
  • 驗證認證(authHeaderName和authHeaderValue),參考為名為OTEL_CUSTOMER_AUTH的Cloud Manager 密碼​環境變數
  • 除了追蹤外,是否匯出量度(metrics: true)和記錄(logs: true)
  • 是否將進階網路(advancedNetworking: true)用於目的地

驗證認證(authHeaderValue)應儲存為名為OTEL_CUSTOMER_AUTH的Cloud Manager 密碼​環境變數,並從組態檔參考。 切勿將認證以純文字形式儲存在存放庫中。

如果您的OTLP/HTTPS端點為私人,或需要來自已知穩定IP位址的輸出流量,請啟用具有專用輸出的進階網路。 除非Cloud Manager已經為環境布建進階網路,否則advancedNetworking設定不會生效。 公用SaaS端點使用標準輸出網路路徑。

支援的目的地

您可以將遙測傳送到公開OTLP/HTTPS端點的任何APM平台,包括:

  • New Relic
  • Dynatrace
  • Datadog
  • Grafana Cloud
  • Splunk Observability Cloud
  • 虛線0
  • 蜂窩
  • 彈性可觀察性
  • 相撲邏輯
  • ServiceNow Cloud可觀察性

此清單並非詳盡無遺。 OpenTelemetry會定義遙測格式與匯出通訊協定,而您選取的平台會決定如何查詢、視覺化、保留資料及發出警示。

選擇可觀察性平台

您需要接受OTLP/HTTPS的平台才能接收遙測。 Adobe不提供,您必須自備可觀察性平台。

如果您的組織已使用上述平台之一,請從這裡開始。 如果沒有,請選擇由廠商代管(SaaS)的平台和自家代管的平台:

廠商代管(SaaS)
自行託管
安裝程式
沒有要安裝或操作的內容。
您可以安裝、升級及擴充平台。
資料位置
遙測會離開您的環境,可能需要進行安全性或隱私權審查。
遙測會保留在您控制的基礎架構中。
功能
通常會內建控制面板、警報和APM檢視。 部分功能僅供廠商使用。
功能取決於您選擇的軟體。
成本
價格通常取決於資料量。
您需支付基礎建設與工程時間的費用。
可用性
服務由廠商營運。
您可以管理連續運作時間、儲存、備份和保留。

開始之前

  • 環境:您可以在生產、中繼及開發環境中個別啟用OpenTelemetry。 但是,不支援HIPAA範圍內的環境、沙箱計畫和快速開發環境(RDE)。
  • 版本:整合支援OpenTelemetry Java代理程式2.x和OTLP/HTTPS匯出通訊協定。

後續步驟

依照設定教學課程中的指示,使用AEM WKND範例專案或您自己的AEM專案設定OpenTelemetry。

其他資源

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