透過OpenTelemetry的可觀察性
瞭解AEM as a Cloud Service如何使用OpenTelemetry將追蹤、度量和記錄傳送至您選擇的應用程式效能監視(APM)平台。
Adobe正在以OpenTelemetry取代AEM as a Cloud Service中的內建應用程式效能監控(APM)整合,此開放標準用於收集和匯出追蹤、度量和記錄。 透過OpenTelemetry,您自備 APM端點,並使用您的團隊已知道的工具來監視AEM以及其他應用程式。 如需詳細資訊,請參閱OpenTelemetry檔案。
本文會說明整合提供的功能、遙測如何從AEM傳輸至您的APM平台、您所控制的專案,以及在啟用前需要考量的事項。 設定教學課程說明如何為您的AEM環境設定OpenTelemetry。
為什麼OpenTelemetry
使用OpenTelemetry,您可以:
- 選擇您的平台:傳送遙測至任何接受HTTPS之OpenTelemetry通訊協定(OTLP/HTTPS)的後端,包括目前支援OTLP的提供者。
- 檢視完整圖片:透過單一整合(而非個別機制)取得追蹤、度量和記錄。
- 更快調查:尋找緩慢或失敗的請求、追蹤一段時間的JVM健康狀況,以及在事件期間將AEM行為與其他服務建立關聯。
- 保持控制:使用Cloud Manager設定管道設定要傳送資料到的目的地,並在您自己的平台中管理儀表板、警示和保留。
Adobe會提供並更新透過AEM執行的OpenTelemetry Java代理程式,因此您不會安裝或升級。 您決定要傳送遙測的位置。
運作方式
下圖顯示從AEM服務遙測到可觀察性平台的邏輯流程:
OpenTelemetry Java代理程式會從AEM服務收集應用程式遙測,並傳送給AEM環境中執行的OpenTelemetry收集器。 收集器會處理遙測並透過OTLP/HTTPS將其轉送到您設定的可觀察性平台。
只會傳送您的AEM應用程式產生的遙測。 有關基礎執行階段和平台的資訊,例如內部主機名稱、位址、容器識別碼,以及作業系統或程式詳細資訊,會在任何資料離開您的環境之前移除。
可用的遙測
請牢記以下細節:
- 為了保持追蹤著重於應用程式要求,會篩選掉大量內部活動,例如健康狀態偵測器和排程器(Quartz)工作。
- 此發行版本不會發出微調的AEM架構內部範圍,例如Sling資源解析、OSGi服務和JCR存取。
- 度量使用標準的OpenTelemetry名稱,例如
jvm.memory.used、jvm.gc.duration、jvm.thread.count和http.server.request.duration。
如何識別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)的平台和自家代管的平台:
開始之前
- 環境:您可以在生產、中繼及開發環境中個別啟用OpenTelemetry。 但是,不支援HIPAA範圍內的環境、沙箱計畫和快速開發環境(RDE)。
- 版本:整合支援OpenTelemetry Java代理程式2.x和OTLP/HTTPS匯出通訊協定。
後續步驟
依照設定教學課程中的指示,使用AEM WKND範例專案或您自己的AEM專案設定OpenTelemetry。