跳转到主要内容

所有Datadog公共端点的集合

项目描述

datadog-api-client-python

此存储库包含用于Datadog API的Python API客户端。

需求

构建和使用API客户端库需要Python 3.7+

安装

要安装API客户端库,请执行以下操作

pip install datadog-api-client

入门

请按照安装说明执行以下Python代码

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
from datadog_api_client.v1.model.monitor import Monitor
from datadog_api_client.v1.model.monitor_type import MonitorType

body = Monitor(
    name="example",
    type=MonitorType("log alert"),
    query='logs("service:foo AND type:error").index("main").rollup("count").by("source").last("5m") > 2',
    message="some message Notify: @hipchat-channel",
    tags=["test:example", "env:ci"],
    priority=3,
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = MonitorsApi(api_client)
    response = api_instance.create_monitor(body=body)
    print(response)

身份验证

默认情况下,库将使用DD_API_KEYDD_APP_KEY环境变量对Datadog API进行身份验证。要提供自己的凭据集,您需要在配置中设置一些密钥

configuration.api_key["apiKeyAuth"] = "<API KEY>"
configuration.api_key["appKeyAuth"] = "<APPLICATION KEY>"

不稳定端点

此客户端包括对处于不稳定状态的Datadog API端点的访问,并且可能进行破坏性更改。需要额外的配置步骤才能启用这些端点

configuration.unstable_operations["<OperationName>"] = True

其中<OperationName>是与该端点交互的方法的名称。例如:list_log_indexesget_logs_index

更改服务器

当与不同的服务器(如 eu 实例)通信时,更改配置对象上的 server_variables

configuration.server_variables["site"] = "datadoghq.eu"

禁用压缩有效载荷

如果您想禁用 GZIP 压缩响应,请将配置对象上的 compress 标志设置为

configuration.compress = False

启用请求日志记录

如果您想启用请求日志记录,请将配置对象上的 debug 标志设置为

configuration.debug = True

启用重试

如果您想在收到状态码 429 速率限制时启用重试,请将 enable_retry 设置为 True

    configuration.enable_retry = True

默认最大重试次数为 3,您可以使用 max_retries 来更改它

    configuration.max_retries = 5

配置代理

您可以通过在配置对象上设置 proxy 键来配置客户端使用代理

configuration.proxy = "http://127.0.0.1:80"

线程支持

您可以通过使用 ThreadedApiClient 替代 ApiClient 来在线程中运行 API 调用。然后,API 调用将返回一个 AsyncResult 实例,您可以在该实例上调用 get 以检索结果

from datadog_api_client import Configuration, ThreadedApiClient
from datadog_api_client.v1.api.dashboards_api import DashboardsApi

configuration = Configuration()
with ThreadedApiClient(configuration) as api_client:
    api_instance = DashboardsApi(api_client)
    result = api_instance.list_dashboards()
    dashboards = result.get()
    print(dashboards)

Asyncio 支持

当使用 AsyncApiClient 进行传输时,该库支持异步操作。当使用该客户端时,API 方法将返回协程,您可以在其中等待。

要使异步支持可用,您需要在安装期间安装额外的 async 限定符: pip install datadog-api-client[async]

import asyncio

from datadog_api_client import Configuration, AsyncApiClient
from datadog_api_client.v1.api.dashboards_api import DashboardsApi

async def main():
    configuration = Configuration()
    async with AsyncApiClient(configuration) as api_client:
        api_instance = DashboardsApi(api_client)
        dashboards = await api_instance.list_dashboards()
        print(dashboards)

asyncio.run(main())

分页

一些列出操作有分页方法,可以帮助消耗所有可用的项目。例如,检索所有事件

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.incidents_api import IncidentsApi

configuration = Configuration()
configuration.unstable_operations["list_incidents"] = True
with ApiClient(configuration) as api_client:
    api_instance = IncidentsApi(api_client)
    for incident in api_instance.list_incidents_with_pagination():
        print(incident.id)

API 端点和模型的文档

API 端点和模型的文档可在 readthedocs 上找到。

授权文档

通过在配置中提供您的 API 和应用程序密钥进行 API 认证

configuration.api_key["apiKeyAuth"] = "YOUR_API_KEY"
configuration.api_key["appKeyAuth"] = "YOUR_APPLICATION_KEY"

作者

support@datadoghq.com

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分发

datadog_api_client-2.29.0.tar.gz (2.4 MB 查看哈希值)

上传时间

构建分发

datadog_api_client-2.29.0-py3-none-any.whl (2.7 MB 查看哈希值)

上传时间 Python 3