配置
此页面介绍了向 Java 代理提供配置的各种方式。有关配置选项本身的信息,请参阅 配置 SDK。
代理配置
代理可以从以下一个或多个来源获取配置(优先级从高到低排序)
- 系统属性
- 环境变量
- 配置文件
- 由
AutoConfigurationCustomizer#addPropertiesSupplier()函数提供的属性;使用AutoConfigurationCustomizerProviderSPI
使用环境变量进行配置
在某些环境中,通常更倾向于通过环境变量来配置设置。任何可以通过系统属性配置的设置也可以通过环境变量进行设置。虽然下面许多设置都提供了两种格式的示例,但对于那些没有的,请按照以下步骤确定所需系统属性的正确名称映射:
- 将系统属性名称转换为大写。
- 将所有
.和-字符替换为_。
例如,otel.instrumentation.common.default-enabled 将转换为 OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED。
配置文件
您可以通过设置以下属性来提供代理配置文件的路径:
System property: otel.javaagent.configuration-file
Environment variable: OTEL_JAVAAGENT_CONFIGURATION_FILEDescription: 包含代理配置的有效 Java 属性文件的路径。
扩展
您可以通过设置以下属性来启用 扩展:
System property: otel.javaagent.extensions
Environment variable: OTEL_JAVAAGENT_EXTENSIONSDescription: 扩展 jar 文件或包含 jar 文件的文件夹的路径。如果指向文件夹,该文件夹中的每个 jar 文件都将被视为独立、独立的扩展。
Java 代理日志输出
可以通过设置以下属性来配置代理的日志输出:
System property: otel.javaagent.logging
Environment variable: OTEL_JAVAAGENT_LOGGINGDescription: Java 代理日志记录模式。支持以下 3 种模式:
simple: 代理将使用标准错误流打印其日志。仅打印INFO或更高级别的日志。这是默认的 Java 代理日志记录模式。none: 代理将不记录任何内容——甚至不记录其自身版本。application: 代理将尝试将其自身的日志重定向到已检测应用程序的 slf4j 日志记录器。这对不使用多个类加载器的简单单 jar 应用程序效果最好;Spring Boot 应用程序也受支持。Java 代理输出日志可以通过已检测应用程序的日志配置(例如logback.xml或log4j2.xml)进一步配置。在生产环境中运行您的应用程序之前,请务必测试此模式是否适用于您的应用程序。
SDK 配置
SDK 的自动配置模块用于代理的基本配置。请阅读 文档,查找诸如配置导出或采样之类的设置。
与 SDK 自动配置不同,Java 代理和 OpenTelemetry Spring Boot starter 的 2.0+ 版本默认使用 http/protobuf 协议,而不是 grpc。
启用默认禁用的资源提供程序
除了 SDK 自动配置中的资源配置外,您还可以启用默认禁用的其他资源提供程序。
System property: otel.resource.providers.aws.enabled
Environment variable: OTEL_RESOURCE_PROVIDERS_AWS_ENABLEDDefault: false
Description: 启用 AWS 资源提供程序。
System property: otel.resource.providers.gcp.enabled
Environment variable: OTEL_RESOURCE_PROVIDERS_GCP_ENABLEDDefault: false
Description: 启用 GCP 资源提供程序。
System property: otel.resource.providers.azure.enabled
Environment variable: OTEL_RESOURCE_PROVIDERS_AZURE_ENABLEDDefault: false
Description: 启用 Azure 资源提供程序。