跳转到主要内容

Elastic Distribution of OpenTelemetry Python

项目描述

Elastic Distribution of OpenTelemetry Python

[!WARNING] OpenTelemetry Python的Elastic分发版目前不建议用于生产。功能可能在未来的版本中更改或删除。Alpha版本不受官方GA功能支持SLA的约束。

我们欢迎您的反馈!您可以通过 在GitHub上打开问题 或在 Elastic Discuss论坛 上发起讨论来联系我们。

OpenTelemetry Python(EDOT Python)的弹性分布是一个定制的版本,它基于OpenTelemetry Python。EDOT Python通过严格的原生OpenTelemetry方式使Python应用程序中使用OpenTelemetry变得更容易,同时提供与Elastic Observability无缝且丰富的开箱体验。本分布的明确目标是在更广泛的OpenTelemetry社区定义的概念之外不引入任何新概念。

使用EDOT Python,您可以访问OpenTelemetry Python代理的所有功能,加上

  • 访问Elastic团队在更改上传到OpenTelemetry存储库之前贡献的改进和错误修复。
  • 访问可选功能,可以增强发送到Elastic的OpenTelemetry数据。
  • 特定的Elastic处理器,确保将OpenTelemetry信号数据导出到Elastic后端(如Elastic Observability部署)时具有最佳兼容性。
  • 预先配置的跟踪和指标信号集合,应用一些具有偏见的默认值,例如默认收集哪些来源。

准备好尝试EDOT Python了吗?请按照入门中的逐步说明进行操作。

阅读文档

安装

pip install elastic-opentelemetry

用法

我们的分布默认不安装任何仪器包,而是依赖于opentelemetry-bootstrap命令来扫描已安装的包并安装可用的仪器。以下命令将安装环境中发现的库的所有可用仪器

opentelemetry-bootstrap --action=install

每次您需要部署应用程序的新版本时,例如在容器镜像构建过程中,都需要添加此命令。

在运行时,您必须提供一些环境变量以提供所需的配置。需要一个服务名称以便您的应用程序易于从其他应用程序中识别。然后您需要提供与Elastic云进行身份验证的授权头,以及发送数据的项目端点。

OTEL_RESOURCE_ATTRIBUTES=service.name=<app-name>
OTEL_EXPORTER_OTLP_HEADERS="Authorization=<authorization header value>"
OTEL_EXPORTER_OTLP_ENDPOINT=<your elastic cloud url>

配置完成后,最后一部分是将服务调用包装在提供自动仪器的包装器opentelemetry-instrument中。

opentelemetry-instrument <command to start your service>

对于使用gunicorn运行的网络服务,它可能看起来像

opentelemetry-instrument gunicorn main:app

配置

本分布支持OpenTelemetry Python项目版本1.27.0的所有配置变量。

默认配置变量

此分布设置了以下默认值

  • OTEL_TRACES_EXPORTER: otlp
  • OTEL_METRICS_EXPORTER: otlp
  • OTEL_EXPORTER_OTLP_PROTOCOL: grpc
  • OTEL_EXPERIMENTAL_RESOURCE_DETECTORS: process_runtime,os,otel,telemetry_distro

特定于分布的配置变量

  • ELASTIC_OTEL_SYSTEM_METRICS_ENABLED(默认:false):当设置为true时,发送系统命名空间指标。

许可证

本软件根据Apache License版本2(“Apache-2.0”)授权。

项目详情


下载文件

下载适合您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

elastic_opentelemetry-0.3.0.tar.gz (14.6 kB 查看散列

上传于 源代码

构建分发

elastic_opentelemetry-0.3.0-py3-none-any.whl (16.6 kB 查看哈希)

上传于 Python 3

由以下支持