AEM的OpenTelemetry opentelemetry-apm
Adobe正在以OpenTelemetry取代內建於AEM as a Cloud Service的應用程式效能監控(APM)整合,這是每個主要監控平台支援的開放式業界標準可觀察性方法。
現在,AEM as a Cloud Service包含完全由Adobe管理的內建APM整合。 當該整合被取代時,您需要自備APM端點 — 接受開放遙測資料的廠商平台,或是自我裝載(內部部署) OpenTelemetry相容的後端。
此變更的優點 benefits
- 更多立即可用的遙測 — 將追蹤、量度和記錄一起提供,讓您比目前內建整合更全面地瞭解AEM應用程式的行為。
- 開放式的業界標準 — OpenTelemetry在可觀察性業界廣泛採用,提供您一致的遙測格式,受到廣泛支援。
- 傳送遙測給符合您組織的提供者 — 包括您目前的提供者(如果它支援OpenTelemetry)。
- 進階網路支援 — 如果您的端點為私人,或要求從已知穩定IP位址離開傳出流量,此整合可支援專用輸出。
- 量度、追蹤和記錄檔的統一方法 — 這三個機制的單一整合點,而不是單獨的機制。 記錄轉送會繼續依原樣運作,您現在不需要變更轉送記錄的方式。
概觀 overview
AEM as a Cloud Service可以使用OpenTelemetry (開放式的業界標準可觀察性方法)從應用程式發出遙測,並將其轉送給您選擇的APM提供者。 這可讓您透過團隊已使用的工具,連同其他系統一並監控AEM應用程式。
使用此整合的常見原因包括調查緩慢或失敗的請求、追蹤JVM一段時間內的健康狀況和資源使用情況、為您的AEM層級建立儀表板和警報,以及在事件期間將AEM行為與您的其他服務建立關聯 — 所有這些都不需要離開您的團隊已使用的監控工具。
下列遙測在範圍中:
- 追蹤 — 分散式追蹤AEM應用程式處理的要求。
- 量度 — 應用程式量度,例如JVM執行階段量度(記憶體、記憶體收集、執行緒)和輸入HTTP要求率、延遲和錯誤率。 用於請求處理、背景作業和內容存放庫的AEM量度正在向所有環境推出。 環境更新後,這些日期就會開始自動顯示,不會變更您的設定。
- 記錄檔 — 您的AEM應用程式在
WARN層級以上的記錄檔,使用OpenTelemetry的記錄檔訊號傳送。 記錄是選用專案,可不受追蹤和量度影響而切換。
記錄檔轉送繼續透過其現有的個別機制受到支援,且不受此整合的影響。
若要瞭解其運作方式,包括遙測如何從AEM傳輸至您的APM平台、您控制什麼以及如何選擇平台,請參閱教學課程透過OpenTelemetry的可觀察性。
支援的OpenTelemetry版本 supported-versions
OpenTelemetry代理程式會在Cloud Service執行階段中執行。 Adobe會提供它並保持為最新狀態,因此您不需要自行安裝、管理或升級。 Adobe更新代理程式時,特定修補程式版本可能會變更。
支援的OpenTelemetry變體 supported-variants
您的AEM應用程式可以使用下列任何OpenTelemetry代理程式變體(分佈)進行檢測,所有這一切都根據上述版本。 如需詳細資訊,請參閱每個專案的檔案:
預設上游變體可與任何APM供應商搭配使用。 Grafana和Splunk變體會針對這些平台新增廠商特定的裝置和預設值。 Adobe會在部署時將選取的代理程式變體安裝在AEM容器中。 在有限可用性期間,預設會使用上游變體;若要使用Grafana或Splunk變體,請在您請求存取權時詢問它。 config/otel.yaml檔案會設定遙測的位置;它沒有欄位可選取代理程式變體。
config/otel.yaml檔案中的type值(例如grafana或splunk)可識別您的APM提供者,以便您的端點與認證正確驗證。 它不會選取代理程式變體。APM供應商 apm-vendors
您可以傳送遙測給任何接受 OTLP/HTTPS 之OpenTelemetry資料的應用程式效能監視廠商。 這與您選擇的OpenTelemetry變體無關。 支援OTLP/HTTPS的廠商包括:
此清單並非詳盡無遺 — 任何公開OTLP/HTTPS端點的後端都可以使用。
支援的環境 supported-environments
您可以在您的Cloud Manager 生產、階段和 開發 環境中啟用此整合。 每個環境都分別啟用 — 請參閱步驟1。 不支援快速開發環境(RDE)。
現有APM整合 existing-apm
OpenTelemetry無法與其他APM代理程式一起在相同環境中執行:
- Adobe的內建APM整合(New Relic) — OpenTelemetry會取代它。 一旦Adobe依您的請求為環境啟用OpenTelemetry,New Relic就不會再接收來自該環境的資料。 您可以返回到2026年11月底 — 請參閱常見問題集。
- Dynatrace OneAgent — 如果環境中已安裝Dynatrace OneAgent,則會優先安裝。 設定管道會拒絕您的OpenTelemetry設定,並出現錯誤訊息,指出Dynatrace已在環境中啟用。 若要在那裡使用OpenTelemetry,請先聯絡Adobe支援以移除Dynatrace OneAgent。
網路連線 network-connectivity
您的APM提供者的端點必須可透過HTTPS從您的AEM as a Cloud Service環境連線。
如果您的APM端點為私人,或您需要從穩定的已知IP位址離開傳出流量,則此整合支援具有專用輸出的「進階網路」。 請參閱進階網路以瞭解如何啟用它。
會傳送哪些資料 what-data-is-sent
只有 您的AEM應用程式 產生的追蹤、量度和(如果已啟用)記錄檔會傳送給您的APM提供者。 下列範例說明您可以預期的資料型別。
追蹤 — 跨越應用程式處理的要求,包括:
- 傳入的HTTP要求範圍,以方法和路由(例如
GET /content/...)命名。 - 處理請求時產生的Servlet、輸出HTTP和輸出資料庫(JDBC)範圍。
- AEM架構涵蓋顯示AEM處理請求時花費時間的位置: Sling請求處理、元件轉譯、HTL指令碼轉譯以及JCR查詢。
大量內部排程器和健康情況探查活動(例如Quartz工作)會篩選掉,以便追蹤會聚焦於應用程式請求。
量度 — JVM執行階段和HTTP伺服器量度,使用標準OpenTelemetry量度名稱,以及aem.首碼下的AEM量度(正在轉出;它們會自動出現,不會變更設定),包括:
- JVM執行階段:
jvm.memory.used、jvm.gc.duration、jvm.thread.count和jvm.cpu.recent_utilization。 - HTTP伺服器:
http.server.request.duration(要求速率、延遲百分位數和錯誤率衍生自此長條圖)。 - AEM,正在轉出:要求與錯誤計數(
aem.requests.*)、Jetty執行緒集區使用量(aem.jetty.threads.*)、Sling工作、排程器及驗證(aem.sling.*)、存放庫工作階段、查詢、觀察、索引與二進位儲存(aem.oak.*),以及資產處理(aem.dam.*)。
記錄檔 — 您的AEM應用程式在WARN層級以上的記錄檔專案,在啟用時使用OpenTelemetry的記錄檔訊號傳送。 正在開發調整此記錄層級的功能。 記錄專案具有與追蹤和量度(service.name, deployment.environment)相同的資源屬性,以及產生它們的要求之追蹤和範圍識別碼,因此可以與追蹤相關聯。
以這種方式傳送的記錄檔與記錄檔轉送無關 — 請參閱總覽以瞭解為何將兩者啟用至相同目的地會導致重複專案。
如何識別遙測 — 每個追蹤和量度都包含可識別其來源的資源屬性,包括:
service.name— 識別您的程式、環境、服務和階層(例如,cm-p<program>-e<environment>-aem-publish-prod)。deployment.environment— 環境型別(例如,prod或stage)。
有關託管您的應用程式的Cloud Service執行階段和平台的資訊(例如內部主機名稱、位址、容器識別碼,以及作業系統或程式詳細資訊),會在任何資料離開您的環境之前移除。
設定整合 set-up
如需使用WKND範例專案的引導式逐步解說,從將認證儲存在Cloud Manager到驗證可觀察性平台中的遙測,請參閱教學課程設定OpenTelemetry以深入瞭解AEM應用程式。
步驟1:要求存取權 request-access
以電子郵件傳送aemcs-apm-beta@adobe.com,其中包含您的Cloud Manager方案ID以及您想要啟用的環境ID。 如果您想使用Grafana或Splunk代理程式變體,而不是預設值,請在電子郵件中說明(請參閱支援的OpenTelemetry變體)。
Adobe會在回覆您的請求後立即為這些環境啟用OpenTelemetry。 如果環境目前使用Adobe的內建APM整合,該整合會在啟用OpenTelemetry後停止傳送資料 — 請參閱現有APM整合。
步驟2:新增您的設定檔 add-configuration
新增config/otel.yaml檔案至您的Cloud Manager設定管道存放庫。 至少要指定:
- 此組態套用的環境型別(例如,
stage和prod)。 - 您的APM提供者的型別和OTLP/HTTPS端點URL (包括地區,如果適用)。
- 您的提供者使用的驗證方法(請參閱步驟3)。
請參閱下方的設定範例,以取得確切的檔案格式,包括New Relic、Dynatrace、Grafana Cloud、Splunk、Datadog、Dash0以及一般或自我主控端點的範例。
步驟3:設定您的驗證認證 configure-credential
在Cloud Manager中宣告名稱為OTEL_CUSTOMER_AUTH的機密環境變數,以提供APM提供者所需的認證。 將 套用的服務 設定為全部,讓作者、發佈和預覽層級可以使用認證。
若要新增或更新環境變數,您必須是部署管理員角色的成員。 如需完整程式,請參閱Cloud Manager中的環境變數。
根據提供者的驗證方法設定值:
OTEL_CUSTOMER_AUTH的值Basic、空格,然後是username:password的Base64編碼。Basic YWxhZGRpbjpvcGVuc2VzYW1lBearer、空格,然後是您的權杖。Bearer eyJhbGciOiJ...Authorization標頭傳送,因此必須包含配置字(Basic或Bearer)。 對於使用自訂標頭的提供者 — 例如,New Relic的api-key標頭 — 只提供原始認證值,並將設定檔案中的authHeaderName設定為正確的標頭名稱(請參閱設定範例)。OTEL_CUSTOMER_AUTH是認證。 請一律宣告為 機密 環境變數,如此一來,其值絕不會儲存在Git中或公開於記錄中。提供者特定的設定 provider-specific
下表總結列出一些常見提供者的端點與驗證。 一律在提供者自己的檔案中確認目前的值。 對於使用自訂標頭(例如,New Relic和Datadog)的提供者,請將OTEL_CUSTOMER_AUTH設為僅限原始金鑰值,並將設定檔案中的authHeaderName設為正確的標頭名稱(請參閱設定範例)。
https://otlp.nr-data.net (美國), https://otlp.eu01.nr-data.net (歐盟)api-key標頭傳送(原始值,無前置詞)。 使用內嵌授權金鑰,而非使用者(NRAK-)金鑰。https://otlp.<your-datadog-site> (例如,https://otlp.datadoghq.com)dd-api-key標頭傳送。 直接OTLP 追蹤攝入在預覽中。https://{your-environment-id}.live.dynatrace.com/api/v2/otlpAuthorization標頭中傳送為Api-Token <token>。 將OTEL_CUSTOMER_AUTH設為Api-Token <token>。https://ingress.<region>.aws.dash0.com:4318 (例如,https://ingress.eu-west-1.aws.dash0.com:4318)Authorization標頭中傳送為Bearer <token>。 將OTEL_CUSTOMER_AUTH設為Bearer <token>。https://otlp-gateway-<zone>.grafana.net/otlp (例如,https://otlp-gateway-prod-us-east-0.grafana.net/otlp)Authorization標頭中以HTTP Basic傳送。 將OTEL_CUSTOMER_AUTH設為Basic <base64(instanceID:token)>。https://<your-splunk-otel-collector>:4318)Authorization標頭中傳送(例如,Bearer <token>)。設定範例 example-configuration
根據您來自提供者特定設定的提供者,將類似下列範例之一的檔案新增至您的Config Pipeline存放庫中的config/otel.yaml。
New Relic:
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "newrelic"
endpoint: "https://otlp.nr-data.net" # https://otlp.eu01.nr-data.net for the EU region
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true # optional
logs: true # optional — see Overview for the Log Forwarding duplicate-message warning
Dynatrace:
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "dynatrace"
endpoint: "https://{your-environment-id}.live.dynatrace.com/api/v2/otlp"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # the secret's value must be "Api-Token <token>"
metrics: true
logs: true
資料標籤:
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "https://otlp.<your-datadog-site>" # for example, https://otlp.datadoghq.com
authHeaderName: "dd-api-key"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # the secret's value is the raw API key, no prefix
metrics: true
logs: true
虛線0:
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "https://ingress.<region>.aws.dash0.com:4318"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # the secret's value must be "Bearer <token>"
metrics: true
logs: true
Grafana雲端:
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "grafana"
endpoint: "https://otlp-gateway-<zone>.grafana.net/otlp" # for example, https://otlp-gateway-prod-us-east-0.grafana.net/otlp
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # the secret's value must be "Basic <base64(instanceID:token)>"
metrics: true
logs: true
Splunk (透過作為閘道執行的OpenTelemetry收集器的Splunk散發):
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "splunk"
endpoint: "https://<your-splunk-otel-collector>:4318"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # the credential your gateway accepts, for example "Bearer <token>"
metrics: true
logs: true
一般或自我主控端點 (例如,內部部署OpenTelemetry收集器):
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "https://<your-otlp-endpoint>"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}" # for example, "Basic <base64(user:pass)>"
metrics: true
logs: true
進階網路(專用輸出) — 適用於私用端點,或要求流量從已知穩定IP位址離開的端點(請參閱網路連線):
kind: "Otel"
version: "1"
metadata:
envTypes:
- "stage"
- "prod"
data:
enabled: true
type: "generic"
endpoint: "https://<your-private-otlp-endpoint>"
authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
metrics: true
logs: true
advancedNetworking: true # routes this endpoint's egress through Advanced Networking instead of direct internet egress
advancedNetworking不會生效 — 請在依賴它之前確認此設定。 請參閱進階網路。metrics和logs都是選擇性的且彼此獨立 — 如果您只想要追蹤,請省略或設為false。步驟4:部署 deploy
在Adobe確認您的環境已啟用OpenTelemetry (請參閱步驟1)後,請執行設定管道以部署config/otel.yaml。 管道在套用設定之前會驗證您的設定並檢查您的端點和認證,因此大部分錯誤會直接在管道記錄中報告。
管道完成後,來自AEM應用程式的追蹤、量度和(如果已啟用)記錄檔開始出現在您的APM提供者中。 使用步驟5確認。
步驟5:驗證整合 verify
由於遙測會傳送給您自己的APM提供者,因此您會從提供者的工具確認整合;Adobe不會將此資料傳回給您。
管道完成後,請等待數分鐘讓資料到達,然後檢查您的APM提供者,瞭解下列資訊:
- 追蹤 — 您的AEM服務的新範圍。 例如,搜尋您製作或發佈層級的
service.name,或傳入的HTTP要求範圍。 - 量度 — 您的服務的傳入
jvm.*和http.server.*量度,以及轉出至您的環境後的aem.*量度。 - 記錄檔 (如果已啟用) — 您AEM服務的傳入記錄檔專案。
如果顯示此資料,表示整合有效果。
otel-config-operator-validator下,可以安全地忽略。疑難排解 troubleshooting
如果遙測未出現在您的APM提供者中,請檢查下列專案:
OTel tracing is disabled for this environment或Feature 'Otel' not allowedOTEL_CUSTOMER_AUTH值。WARN層級以上的專案,因此如果您的應用程式最近未記錄警告或錯誤,可能沒有任何專案可傳送。otel-config-operator-validator的不熟悉的服務如果在這些檢查之後仍沒有顯示遙測,請連絡aemcs-apm-beta@adobe.com並提供您的程式和環境詳細資料。
常見問題 faq
為什麼發生此變更?
AEM as a Cloud Service客戶已要求其他量度和營運資料,以及內容中的追蹤、範圍和記錄。 OpenTelemetry是產業標準,支援所有這些功能,並以廣泛支援的格式(OTLP)輸出。
我需要要求存取權嗎?
可以。 在有限可用期間,請傳送電子郵件至aemcs-apm-beta@adobe.com,其中包含您的程式與環境ID。 Adobe會在回覆您的請求後立即為這些環境啟用OpenTelemetry。 HIPAA範圍內的環境尚未提供這項功能。
如果我啟用OpenTelemetry,New Relic會發生什麼事?
一旦Adobe依您的請求為環境啟用OpenTelemetry,資料就不再從該環境傳送至New Relic。 兩者無法同時執行。
如果我從New Relic移轉至OpenTelemetry,可以移回嗎?
可以。 電子郵件aemcs-apm-beta@adobe.com和Adobe會停用您環境的OpenTelemetry。 然後在config/otel.yaml檔案中設定enabled: false (或移除檔案)、執行設定管道,並執行完整棧疊管道以完成還原New Relic。 在2026年11月底之前皆可使用此功能。
如果我的環境執行Dynatrace OneAgent,我可以使用OpenTelemetry嗎?
不在相同環境中 — 以Dynatrace OneAgent優先。 您可以移除OneAgent並改用OpenTelemetry,包括Dynatrace做為APM提供者。 請參閱現有的APM整合。
2026年11月之後會發生什麼事?
Adobe將從其內建的APM解決方案改用OpenTelemetry作為其永久可觀察性解決方案。