community.general.opentelemetry 回调 - 使用 OpenTelemetry 创建分布式追踪

注意

这个回调插件是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此回调插件,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.opentelemetry

community.general 3.7.0 中的新增功能

回调插件

此插件是一个 通知回调。它将 playbook 运行的信息发送到其他应用程序、服务或系统。有关回调插件的更多信息,请参阅 回调插件

概要

要求

在执行此回调的本地控制器节点上需要以下要求。

  • opentelemetry-api (Python 库)

  • opentelemetry-exporter-otlp (Python 库)

  • opentelemetry-sdk (Python 库)

参数

参数

注释

disable_attributes_in_logs

布尔值

在 community.general 7.1.0 中添加

禁用将 span 属性填充到日志中。

选择

  • false ← (默认)

  • true

配置

disable_logs

布尔值

在 community.general 5.8.0 中添加

禁用发送日志。

选择

  • false ← (默认)

  • true

配置

enable_from_environment

字符串

在 community.general 3.8.0 中添加

仅当给定的环境变量存在并设置为 true 时是否启用此回调。

当您使用配置即代码并且想要在 CI 中运行时发送分布式追踪,而不是在本地运行 Ansible 时,这很方便。

为此,它将给定的 enable_from_environment 值评估为环境变量,如果设置为 true,则将启用此插件。

配置

hide_task_arguments

布尔值

隐藏任务的参数。

选择

  • false ← (默认)

  • true

配置

otel_exporter_otlp_traces_protocol

字符串

在 community.general 9.0.0 中添加

OTEL_EXPORTER_OTLP_TRACES_PROTOCOL 表示 span 的传输协议。

请参阅 https://opentelemetry-python.readthedocs.io/en/latest/sdk/environment_variables.html#envvar-OTEL_EXPORTER_OTLP_TRACES_PROTOCOL

选择

  • "grpc" ← (默认)

  • "http/protobuf"

配置

otel_service_name

字符串

服务名称资源属性。

默认值: "ansible"

配置

  • INI 条目

    [callback_opentelemetry]
    otel_service_name = ansible
    

    在 community.general 5.3.0 中添加

  • 环境变量: OTEL_SERVICE_NAME

store_spans_in_file

字符串

在 community.general 9.0.0 中添加

它将导出的 span 存储在给定的文件中

配置

traceparent

字符串

W3C 跟踪上下文标头 traceparent

默认值: "None"

配置

示例

examples: |
  Enable the plugin in ansible.cfg:
    [defaults]
    callbacks_enabled = community.general.opentelemetry
    [callback_opentelemetry]
    enable_from_environment = ANSIBLE_OPENTELEMETRY_ENABLED

  Set the environment variable:
    export OTEL_EXPORTER_OTLP_ENDPOINT=<your endpoint (OTLP/HTTP)>
    export OTEL_EXPORTER_OTLP_HEADERS="authorization=Bearer your_otel_token"
    export OTEL_SERVICE_NAME=your_service_name
    export ANSIBLE_OPENTELEMETRY_ENABLED=true

作者

  • Victor Martinez (@v1v)

提示

每个条目类型的配置条目都具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。