跳到主要内容

Python 配置说明

配置参数

全部配置信息如下:

参数名环境变量名描述
--logs_exporterOTEL_LOGS_EXPORTER日志导出器
--metrics_exporterOTEL_METRICS_EXPORTER指标导出器
--propagatorsOTEL_PROPAGATORS传播器
--contextOTEL_CONTEXT上下文
--id_generatorOTEL_ID_GENERATORID 生成器
--meter_providerOTEL_METER_PROVIDER仪表提供者
--tracer_providerOTEL_TRACER_PROVIDER跟踪器提供者
--traces_exporterOTEL_TRACES_EXPORTER跟踪导出器
--configuratorOTEL_CONFIGURATOR配置器
--disabled_instrumentationsOTEL_DISABLED_INSTRUMENTATIONS禁用的仪器
--distroOTEL_DISTRO发行版
--attribute_count_limitOTEL_ATTRIBUTE_COUNT_LIMIT属性数量限制
--attribute_value_length_limitOTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT属性值长度限制
--blrp_export_timeoutOTEL_BLRP_EXPORT_TIMEOUTBLRP 导出超时
--blrp_max_export_batch_sizeOTEL_BLRP_MAX_EXPORT_BATCH_SIZEBLRP 最大导出批量大小
--blrp_max_queue_sizeOTEL_BLRP_MAX_QUEUE_SIZEBLRP 最大队列大小
--blrp_schedule_delayOTEL_BLRP_SCHEDULE_DELAYBLRP 调度延迟
--bsp_export_timeoutOTEL_BSP_EXPORT_TIMEOUTBSP 导出超时
--bsp_max_export_batch_sizeOTEL_BSP_MAX_EXPORT_BATCH_SIZEBSP 最大导出批量大小
--bsp_max_queue_sizeOTEL_BSP_MAX_QUEUE_SIZEBSP 最大队列大小
--bsp_schedule_delayOTEL_BSP_SCHEDULE_DELAYBSP 调度延迟
--event_attribute_count_limitOTEL_EVENT_ATTRIBUTE_COUNT_LIMIT事件属性数量限制
--experimental_resource_detectorsOTEL_EXPERIMENTAL_RESOURCE_DETECTORS实验性资源检测器
--exporter_otlp_certificateOTEL_EXPORTER_OTLP_CERTIFICATEOTLP 证书
--exporter_otlp_client_certificateOTEL_EXPORTER_OTLP_CLIENT_CERTIFICATEOTLP 客户端证书
--exporter_otlp_client_keyOTEL_EXPORTER_OTLP_CLIENT_KEYOTLP 客户端密钥
--exporter_otlp_compressionOTEL_EXPORTER_OTLP_COMPRESSIONOTLP 压缩
--exporter_otlp_endpointOTEL_EXPORTER_OTLP_ENDPOINTOTLP 端点
--exporter_otlp_headersOTEL_EXPORTER_OTLP_HEADERSOTLP 头信息
--exporter_otlp_insecureOTEL_EXPORTER_OTLP_INSECUREOTLP 不安全
--exporter_otlp_logs_certificateOTEL_EXPORTER_OTLP_LOGS_CERTIFICATEOTLP 日志证书
--exporter_otlp_logs_client_certificateOTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATEOTLP 日志客户端证书
--exporter_otlp_logs_client_keyOTEL_EXPORTER_OTLP_LOGS_CLIENT_KEYOTLP 日志客户端密钥
--exporter_otlp_logs_compressionOTEL_EXPORTER_OTLP_LOGS_COMPRESSIONOTLP 日志压缩
--exporter_otlp_logs_endpointOTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTLP 日志端点
--exporter_otlp_logs_headersOTEL_EXPORTER_OTLP_LOGS_HEADERSOTLP 日志头信息
--exporter_otlp_logs_insecureOTEL_EXPORTER_OTLP_LOGS_INSECUREOTLP 日志不安全
--exporter_otlp_logs_protocolOTEL_EXPORTER_OTLP_LOGS_PROTOCOLOTLP 日志协议
--exporter_otlp_logs_timeoutOTEL_EXPORTER_OTLP_LOGS_TIMEOUTOTLP 日志超时
--exporter_otlp_metrics_certificateOTEL_EXPORTER_OTLP_METRICS_CERTIFICATEOTLP 指标证书
--exporter_otlp_metrics_client_certificateOTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATEOTLP 指标客户端证书
--exporter_otlp_metrics_client_keyOTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYOTLP 指标客户端密钥
--exporter_otlp_metrics_compressionOTEL_EXPORTER_OTLP_METRICS_COMPRESSIONOTLP 指标压缩
--exporter_otlp_metrics_default_histogram_aggregationOTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATIONOTLP 指标默认直方图聚合
--exporter_otlp_metrics_endpointOTEL_EXPORTER_OTLP_METRICS_ENDPOINTOTLP 指标端点
--exporter_otlp_metrics_headersOTEL_EXPORTER_OTLP_METRICS_HEADERSOTLP 指标头信息
--exporter_otlp_metrics_insecureOTEL_EXPORTER_OTLP_METRICS_INSECUREOTLP 指标不安全
--exporter_otlp_metrics_protocolOTEL_EXPORTER_OTLP_METRICS_PROTOCOLOTLP 指标协议
--exporter_otlp_metrics_temporality_preferenceOTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCEOTLP 指标时间偏好
--exporter_otlp_metrics_timeoutOTEL_EXPORTER_OTLP_METRICS_TIMEOUTOTLP 指标超时
--exporter_otlp_protocolOTEL_EXPORTER_OTLP_PROTOCOLOTLP 协议
--exporter_otlp_timeoutOTEL_EXPORTER_OTLP_TIMEOUTOTLP 超时
--exporter_otlp_traces_certificateOTEL_EXPORTER_OTLP_TRACES_CERTIFICATEOTLP 跟踪证书
--exporter_otlp_traces_client_certificateOTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATEOTLP 跟踪客户端证书
--exporter_otlp_traces_client_keyOTEL_EXPORTER_OTLP_TRACES_CLIENT_KEYOTLP 跟踪客户端密钥
--exporter_otlp_traces_compressionOTEL_EXPORTER_OTLP_TRACES_COMPRESSIONOTLP 跟踪压缩
--exporter_otlp_traces_endpointOTEL_EXPORTER_OTLP_TRACES_ENDPOINTOTLP 跟踪端点
--exporter_otlp_traces_headersOTEL_EXPORTER_OTLP_TRACES_HEADERSOTLP 跟踪头信息
--exporter_otlp_traces_insecureOTEL_EXPORTER_OTLP_TRACES_INSECUREOTLP 跟踪不安全
--exporter_otlp_traces_protocolOTEL_EXPORTER_OTLP_TRACES_PROTOCOLOTLP 跟踪协议
--exporter_otlp_traces_timeoutOTEL_EXPORTER_OTLP_TRACES_TIMEOUTOTLP 跟踪超时
--exporter_prometheus_hostOTEL_EXPORTER_PROMETHEUS_HOSTPrometheus 主机
--exporter_prometheus_portOTEL_EXPORTER_PROMETHEUS_PORTPrometheus 端口
--link_attribute_count_limitOTEL_LINK_ATTRIBUTE_COUNT_LIMIT链接属性数量限制
--log_levelOTEL_LOG_LEVEL日志级别
--metrics_exemplar_filterOTEL_METRICS_EXEMPLAR_FILTER指标示例过滤器
--metric_export_intervalOTEL_METRIC_EXPORT_INTERVAL指标导出间隔
--metric_export_timeoutOTEL_METRIC_EXPORT_TIMEOUT指标导出超时
--resource_attributesOTEL_RESOURCE_ATTRIBUTES资源属性
--sdk_disabledOTEL_SDK_DISABLEDSDK 禁用
--service_nameOTEL_SERVICE_NAME服务名称
--span_attribute_count_limitOTEL_SPAN_ATTRIBUTE_COUNT_LIMIT跨度属性数量限制
--span_attribute_value_length_limitOTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT跨度属性值长度限制
--span_event_count_limitOTEL_SPAN_EVENT_COUNT_LIMIT跨度事件数量限制
--span_link_count_limitOTEL_SPAN_LINK_COUNT_LIMIT跨度链接数量限制
--traces_samplerOTEL_TRACES_SAMPLER跟踪采样器
--traces_sampler_argOTEL_TRACES_SAMPLER_ARG跟踪采样器参数
--versionOTEL_VERSION版本信息

环境变量

在某些情况下,通过环境变量进行配置更为优选。任何可以通过命令行参数配置的设置也可以通过环境变量进行配置。

您可以应用以下步骤来确定所需配置属性的正确名称映射:

  • 将配置属性转换为大写。
  • 在环境变量前加上 OTEL_ 前缀。

例如,exporter_otlp_endpoint 将转换为 OTEL_EXPORTER_OTLP_ENDPOINT

Python 特定配置

有一些 Python 特定的配置选项,您可以通过在环境变量前加上 OTEL_PYTHON_ 前缀来设置。

排除的 URL

表示要在所有仪器中排除的 URL 的逗号分隔正则表达式:

  • OTEL_PYTHON_EXCLUDED_URLS

您还可以通过使用变量 OTEL_PYTHON_<library>_EXCLUDED_URLS 来为特定仪器排除 URL,其中 library 是以下之一的大写版本:Django, Falcon, FastAPI, Flask, Pyramid, Requests, Starlette, Tornado, urllib, urllib3。

示例:

export OTEL_PYTHON_EXCLUDED_URLS="client/.*/info,healthcheck"
export OTEL_PYTHON_URLLIB3_EXCLUDED_URLS="client/.*/info"
export OTEL_PYTHON_REQUESTS_EXCLUDED_URLS="healthcheck"

请求属性名称

将从请求对象中提取并设置为跨度属性的名称的逗号分隔列表。

  • OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS
  • OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS
  • OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS

示例:

export OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS='path_info,content_type'
export OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS='query_string,uri_template'
export OTEL_PYTHON_TORNADO_TRACED_REQUEST_ATTRS='uri,query'

日志记录

有一些配置选项用于控制输出的日志。

  • OTEL_PYTHON_LOG_CORRELATION:启用日志中的跟踪上下文注入(true, false)
  • OTEL_PYTHON_LOG_FORMAT:指示仪器使用自定义日志格式
  • OTEL_PYTHON_LOG_LEVEL:设置自定义日志级别(info, error, debug, warning)
  • OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED:启用日志的自动仪器化。将 OTLP 处理程序附加到 Python 根记录器。示例请参见此处

示例:

export OTEL_PYTHON_LOG_CORRELATION=true
export OTEL_PYTHON_LOG_FORMAT="%(msg)s [span_id=%(span_id)s]"
export OTEL_PYTHON_LOG_LEVEL=debug
export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true

其他

还有一些不属于特定类别的配置选项可以设置。

  • OTEL_PYTHON_DJANGO_INSTRUMENT:设置为 false 以禁用 Django 仪器的默认启用状态
  • OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX:将 Elasticsearch 操作名称的默认前缀从 "Elasticsearch" 更改为此处使用的内容
  • OTEL_PYTHON_GRPC_EXCLUDED_SERVICES:要为 gRPC 仪器排除的特定服务的逗号分隔列表
  • OTEL_PYTHON_ID_GENERATOR:指定用于全局 Tracer 提供程序的 ID 生成器
  • OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS:启用查询清理

示例:

export OTEL_PYTHON_DJANGO_INSTRUMENT=false
export OTEL_PYTHON_ELASTICSEARCH_NAME_PREFIX=my-custom-prefix
export OTEL_PYTHON_GRPC_EXCLUDED_SERVICES="GRPCTestServer,GRPCHealthServer"
export OTEL_PYTHON_ID_GENERATOR=xray
export OTEL_PYTHON_INSTRUMENTATION_SANITIZE_REDIS=true

禁用特定仪器

Python 代理默认会检测 Python 程序的包并对其能进行的任何包进行仪器化。这使得仪器化变得简单,但可能会导致过多或不需要的数据。

您可以使用 OTEL_PYTHON_DISABLED_INSTRUMENTATIONS 环境变量省略特定包的仪器化。环境变量可以设置为逗号分隔的仪器入口点名称列表,以排除仪器化。大多数情况下,入口点名称与包名称相同,并在包的 pyproject.toml 文件中的 project.entry-points.opentelemetry_instrumentor 表中设置。

例如,如果您的 Python 程序使用 rediskafka-pythongrpc 包,默认情况下代理将使用 opentelemetry-instrumentation-redisopentelemetry-instrumentation-kafka-pythonopentelemetry-instrumentation-grpc 包对其进行仪器化。要禁用此功能,您可以设置 OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=redis,kafka,grpc_client