跳转到主要内容

Datadog Python库

项目描述

Datadog Python库

Unit Tests Integration Tests Documentation Status PyPI - Version PyPI - Downloads

Datadog Python 库是一组工具集合,适用于现有 Python 项目中或独立脚本的开发。它提供对 Datadog 原始 HTTP 接口和 Agent 的 DogStatsD 指标聚合服务器的抽象,以与 Datadog 交互并高效地报告事件和指标。

有关更改,请参阅 CHANGELOG.md

安装

从 pip 安装

pip install datadog

从源代码安装

python setup.py install

Datadog API

为了支持所有 Datadog HTTP API,有一个生成的库可用,它将公开所有端点:[datadog-api-client-python](https://github.com/DataDog/datadog-api-client-python)。

下面是一个将事件提交到您的 Event Stream 的工作示例

from datadog import initialize, api

options = {
    "api_key": "<YOUR_API_KEY>",
    "app_key": "<YOUR_APP_KEY>",
}

initialize(**options)

title = "Something big happened!"
text = "And let me tell you all about it here!"
tags = ["version:1", "application:web"]

api.Event.create(title=title, text=text, tags=tags)

在 [Datadog API 文档](https://docs.datadoghq.com/api/latest/?code-lang=python) 中查看支持的所有 Datadog API 端点的完整列表和代码示例。

注意:完整的 Datadog API 端点列表也可在 [Datadog Python 库文档](https://datadogpy.readthedocs.io/en/latest/) 中找到

环境变量

作为使用带 options 参数的 initialize 函数的替代方法,在您的应用程序上下文中设置环境变量 DATADOG_API_KEYDATADOG_APP_KEY

如果未设置 DATADOG_API_KEYDATADOG_APP_KEY,库尝试回退到 Datadog 的 APM 环境变量前缀:DD_API_KEYDD_APP_KEY

from datadog import initialize, api

# Assuming you've set `DD_API_KEY` and `DD_APP_KEY` in your env,
# initialize() will pick it up automatically
initialize()

title = "Something big happened!"
text = "And let me tell you all about it here!"
tags = ["version:1", "application:web"]

api.Event.create(title=title, text=text, tags=tags)

在开发过程中,您可以使用 DD_DOGSTATSD_DISABLE=True(或任何非空值)禁用任何 statsd 指标收集。

DogStatsD

为了使用 DogStatsD 指标,Agent 必须正在运行并可用。

使用 UDP 实例化 DogStatsD 客户端

安装 Datadog Python 库后,在您的代码中使用 UDP 实例化 StatsD 客户端

from datadog import initialize, statsd

options = {
    "statsd_host": "127.0.0.1",
    "statsd_port": 8125,
}

initialize(**options)

查看完整的 [DogStatsD 客户端实例化参数](https://docs.datadoghq.com/developers/dogstatsd/?code-lang=python#client-instantiation-parameters) 列表。

使用 UDS 实例化 DogStatsd 客户端

安装 Datadog Python 库后,在您的代码中使用 UDS 实例化 StatsD 客户端

from datadog import initialize, statsd

options = {
    "statsd_socket_path": PATH_TO_SOCKET,
}

initialize(**options)

UDP 和 UDS 的源检测

源检测是一种检测 DogStatsD 数据包来自哪个 pod 的方法,以便将 pod 的标签添加到标签列表中。DogStatsD 客户端附加一个内部标签,entity_id。如果找到,此标签的值是 DD_ENTITY_ID 环境变量的内容,即 pod 的 UID。Datadog Agent 使用此标签将容器标签添加到指标中。为了避免覆盖此全局标签,请确保只向 constant_tags 列表 append

要启用 UDP 上的源检测,请将以下行添加到您的应用程序清单中

env:
  - name: DD_ENTITY_ID
    valueFrom:
      fieldRef:
        fieldPath: metadata.uid

用法

指标

创建客户端后,您可以将自定义指标发送到 Datadog。有关如何使用工作代码示例提交所有支持的指标类型的说明,请参阅[指标提交:DogStatsD 文档](https://docs.datadoghq.com/metrics/dogstatsd_metrics_submission/?code-lang=python)。

提交指标时支持一些选项,例如[应用样本率](https://docs.datadoghq.com/metrics/dogstatsd_metrics_submission/?code-lang=python#metric-submission-options)到您的指标或将[自定义标签](https://docs.datadoghq.com/metrics/dogstatsd_metrics_submission/?code-lang=python#metric-tagging)添加到您的指标中。

事件

客户端创建后,您就可以向您的 Datadog 事件流发送事件。请参阅专门的事件提交:DogStatsD 文档了解如何将事件提交到您的 Datadog 事件流。

服务检查

客户端创建后,您可以开始向 Datadog 发送服务检查。请参阅专门的服务检查提交:DogStatsD 文档了解如何将服务检查提交到 Datadog。

监控此客户端

此客户端会自动在 DogStatsD 流中注入有关自身的遥测信息。这些指标将不计入自定义指标,也不会产生费用。您可以使用 statsd.disable_telemetry() 方法禁用此功能。

请参阅遥测文档了解更多信息。

基准测试

注意:在运行基准测试之前,您需要安装 psutil 包。

如果您想了解您的 DogStatsD 库在系统上可以处理的吞吐量的大致情况,可以运行提供的本地基准测试代码

$ # Python 2 Example
$ python2 -m unittest -vvv tests.performance.test_statsd_throughput

$ # Python 3 Example
$ python3 -m unittest -vvv tests.performance.test_statsd_throughput

您也可以添加 BENCHMARK_* 来自定义运行

$ # Example #1
$ BENCHMARK_NUM_RUNS=10 BENCHMARK_NUM_THREADS=1 BENCHMARK_NUM_DATAPOINTS=5000 BENCHMARK_TRANSPORT="UDP" python2 -m unittest -vvv tests.performance.test_statsd_throughput

$ # Example #2
$ BENCHMARK_NUM_THREADS=10 BENCHMARK_TRANSPORT="UDS" python3 -m unittest -vvv tests.performance.test_statsd_throughput

高吞吐量场景下的最大数据包大小

为了在高速场景下最大限度地提高此库的效率,已为 UDS(8192 字节)和 UDP(1432 字节)设置了默认的最大数据包大小,以便最大限度地利用底层网络。但是,如果您完全了解您的网络,并且知道应该使用不同的最大数据包大小,您可以使用 max_buffer_len 参数来设置它。示例

from datadog import initialize

options = {
    "api_key": "<YOUR_API_KEY>",
    "app_key": "<YOUR_APP_KEY>",
    "max_buffer_len": 4096,
}

initialize(**options)

线程安全

DogStatsDThreadStats 是线程安全的。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分布

datadog-0.50.1.tar.gz (349.2 kB 查看哈希值)

上传于 来源

构建分发

datadog-0.50.1-py2.py3-none-any.whl (119.6 kB 查看哈希)

上传于 Python 2 Python 3

支持者