OpenTelemetry 兼容性注意事项 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

OpenTelemetry 兼容性注意事项

Application Signals 目前为预览版。如果您对此功能有任何反馈,可以通过 app-signals-feedback@amazon.com 联系我们。

要使用 CloudWatch Application Signals 载入您的应用程序,我们建议您事先从应用程序中完全移除所有现有的应用程序性能监控解决方案。这包括移除所有检测代码和配置。

尽管 Application Signals 使用 OpenTelemetry 检测,但不能保证与您现有的 OpenTelemetry 检测或配置兼容。在最理想的情况下,您可以保留一些 OpenTelemetry 功能,例如自定义指标。但是,请务必阅读以下部分以了解详细信息。

您已经在使用 OpenTelemetry 时的注意事项

如果您已经在应用程序中使用 OpenTelemetry,则本节的其余内容将包含实现与 Application Signals 兼容的重要信息。

  • 在为应用程序启用 Application Signals 之前,必须从应用程序中移除基于 OpenTelemetry 的任何其他自动检测代理的注入。这有助于避免配置冲突。您可以继续使用兼容的 OpenTelemetry API 及 Application Signals 手动检测。

  • 如果您使用手动检测从应用程序生成自定义跨度或指标,则根据检测的复杂性,启用 Application Signals 可能会导致应用程序停止生成数据或出现其他不良行为。您可以使用 OpenTelemetry 中的一些可用配置(本节后面的表格中提到的配置除外)来保留现有指标或跨度的预期行为。有关这些配置的更多信息,请参阅 OpenTelemetry 文档中的 SDK 配置

    例如,通过使用 OTEL_EXPORTER_OTLP_METRICS_ENDPOINT 配置和自行管理的 OpenTelemetry Collector 实例,您可以继续将自定义指标发送到所需的目标。

  • 某些环境变量或系统属性不得与 Application Signals 一起使用,但可以使用其他变量或系统属性,前提是遵循表中的指导。有关详细信息,请参阅下表。

环境变量 与 Application Signals 一起使用的建议

通用环境变量

OTEL_SDK_DISABLED

不得设置为 true

OTEL_TRACES_EXPORTER

必须设置为 otlp

OTEL_EXPORTER_OTLP_ENDPOINT

不得使用。

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

不得使用。

OTEL_ATTRIBUTE_COUNT_LIMIT

如果已设置,则必须设置得足够高,以包含由 CloudWatch Application Signals 添加的约 10 个额外跨度属性。

OTEL_PROPAGATORS

如果已设置,则必须包含用于端跟踪的 xray

OTEL_TRACES_SAMPLER

如果已设置,则必须为 xray 以使用 X-Ray 集中采样。

要使用本地采样,请将其设置为 parentbased_traceidratio 并在 OTEL_TRACES_SAMPLER_ARG 中指定采样率。

OTEL_TRACES_SAMPLER_ARG

如果您使用默认的 X-Ray 集中跟踪样本,则不得使用此变量。

如果您改用本地采样,请在此变量中设置采样率。例如,对于 5% 的采样率设置为 0.05

Java 特定的环境变量

OTEL_JAVA_ENABLED_RESOURCE_PROVIDERS

如果已设置,则必须包含 Amazon 资源检测器。

Python 特定的环境变量

OTEL_PYTHON_CONFIGURATOR

如已使用,则必须设置为 aws_configurator

OTEL_PYTHON_DISTRO

如已使用,则必须设置为 aws_distro