配置OpenTelemetry以深入了解AEM应用程序

了解如何将AEM as a Cloud Service环境连接到您选择的OpenTelemetry兼容的可观察性平台。

在以前的文章中,您已了解将OpenTelemetry与AEM as a Cloud Service一起使用的概念和好处。 在本教程中,我们使用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 Publish服务上打开WKND网站或您的应用程序,并在几个页面之间导航。
  2. 或者,在Author服务上打开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