Datadog Python库
项目描述
Datadog Python库
Datadog Python 库是一组工具集合,适用于现有 Python 项目中或独立脚本的开发。它提供对 Datadog 原始 HTTP 接口和 Agent 的 DogStatsD 指标聚合服务器的抽象,以与 Datadog 交互并高效地报告事件和指标。
- 库文档:https://datadogpy.readthedocs.io/en/latest/
- HTTP API 文档:https://docs.datadoghq.com/api/
- DatadogHQ: https://datadoghq.com
有关更改,请参阅 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_KEY
和 DATADOG_APP_KEY
。
如果未设置 DATADOG_API_KEY
或 DATADOG_APP_KEY
,库尝试回退到 Datadog 的 APM 环境变量前缀:DD_API_KEY
和 DD_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)
线程安全
DogStatsD
和 ThreadStats
是线程安全的。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分发
datadog-0.50.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 579d4db54bd6ef918c5250217edb15b80b7b11582b8e24fce43702768c3f2e2d |
|
MD5 | 2d25307d7333ecb058c6541df878e551 |
|
BLAKE2b-256 | 87587cdf98e3e0a4d1d4416962df5b16f3a5bd638055b7929d8d74a6645a6f2b |
datadog-0.50.1-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eb101abee34fe6c1121558fd5ea48f592eb661604abb7914c4f693d8ad25a515 |
|
MD5 | 3cd13d7181742c1f61e20e097a67cf99 |
|
BLAKE2b-256 | b185fa30d2742cbc6868c287f30e6d8be2f16b36458df917d4936bf61a8e43e3 |