Collection of all Datadog Public endpoints
Project description
datadog-api-client-python
This repository contains a Python API client for the Datadog API.
Requirements
Building and using the API client library requires Python 3.8+.
Installation
To install the API client library, simply execute:
pip install datadog-api-client
Getting Started
Please follow the installation instruction and execute the following Python code:
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)
Authentication
By default the library will use the DD_API_KEY and DD_APP_KEY environment variables to authenticate against the Datadog API.
To provide your own set of credentials, you need to set some keys on the configuration:
configuration.api_key["apiKeyAuth"] = "<API KEY>"
configuration.api_key["appKeyAuth"] = "<APPLICATION KEY>"
Unstable Endpoints
This client includes access to Datadog API endpoints while they are in an unstable state and may undergo breaking changes. An extra configuration step is required to enable these endpoints:
configuration.unstable_operations["<OperationName>"] = True
where <OperationName> is the name of the method used to interact with that endpoint. For example: list_log_indexes, or get_logs_index
Changing Server
When talking to a different server, like the eu instance, change the server_variables on your configuration object:
configuration.server_variables["site"] = "datadoghq.eu"
Disable compressed payloads
If you want to disable GZIP compressed responses, set the compress flag
on your configuration object:
configuration.compress = False
Enable requests logging
If you want to enable requests logging, set the debug flag on your configuration object:
configuration.debug = True
Enable retry
If you want to enable retry when getting status code 429 rate-limited, set enable_retry to True
configuration.enable_retry = True
The default max retry is 3, you can change it with max_retries
configuration.max_retries = 5
Custom retry policy
You can provide a custom retry policy by passing a urllib3.util.Retry instance to the configuration.
When a custom retry policy is provided, it takes precedence over the enable_retry, retry_backoff_factor,
and max_retries settings.
import urllib3
from datadog_api_client import Configuration
# Create a custom retry policy
custom_retry = urllib3.util.Retry(
total=5,
backoff_factor=2,
status_forcelist=[429, 500, 502, 503, 504],
allowed_methods=["GET", "POST", "PUT", "DELETE"]
)
configuration = Configuration(retry_policy=custom_retry)
See urllib3.util.Retry documentation for more details.
Configure proxy
You can configure the client to use proxy by setting the proxy key on configuration object:
configuration.proxy = "http://127.0.0.1:80"
Threads support
You can run API calls in a thread by using ThreadedApiClient in place of ApiClient. API calls will then
return a AsyncResult instance on which you can call get to retrieve the result:
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 support
The library supports asynchronous operations when using AsyncApiClient for the transport. When that client is used,
the API methods will then return coroutines that you can wait for.
To make async support available, you need to install the extra async qualifiers during installation: 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())
Pagination
Several listing operations have a pagination method to help consume all the items available. For example, to retrieve all your incidents:
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)
Documentation for API Endpoints and Models
Documentation for API endpoints and models is available in the API Client docs.
Documentation for Authorization
Authenticate with the API by providing your API and Application keys in the configuration:
configuration.api_key["apiKeyAuth"] = "YOUR_API_KEY"
configuration.api_key["appKeyAuth"] = "YOUR_APPLICATION_KEY"
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datadog_api_client-2.46.0.tar.gz.
File metadata
- Download URL: datadog_api_client-2.46.0.tar.gz
- Upload date:
- Size: 3.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
001719e8ea4968177d038b7f568e5c1f3fa5205896f2d999d082d751bb7bc7a8
|
|
| MD5 |
986ea8b0c33897215cdb4fdc25082539
|
|
| BLAKE2b-256 |
4322dbe5804382baec5f095bbd6c3e80035dfb462c74ce9938d5282a03f127f9
|
Provenance
The following attestation bundles were made for datadog_api_client-2.46.0.tar.gz:
Publisher:
publish.yml on DataDog/datadog-api-client-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
datadog_api_client-2.46.0.tar.gz -
Subject digest:
001719e8ea4968177d038b7f568e5c1f3fa5205896f2d999d082d751bb7bc7a8 - Sigstore transparency entry: 701293263
- Sigstore integration time:
-
Permalink:
DataDog/datadog-api-client-python@ed545aaab5bfb9ef01a4a3064c09f4f7f90eaf70 -
Branch / Tag:
refs/tags/2.46.0 - Owner: https://github.com/DataDog
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed545aaab5bfb9ef01a4a3064c09f4f7f90eaf70 -
Trigger Event:
release
-
Statement type:
File details
Details for the file datadog_api_client-2.46.0-py3-none-any.whl.
File metadata
- Download URL: datadog_api_client-2.46.0-py3-none-any.whl
- Upload date:
- Size: 4.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d5c03b21fdd513d0619d62080f24a525f728e0f81c748a0eba1e5b54a73002f
|
|
| MD5 |
9394c94ac2836ecf12b98d96fb7b9276
|
|
| BLAKE2b-256 |
cc0559c5f2914f9582192932a04e5f293233e38ca077cdad68fbcf58f5ae988b
|
Provenance
The following attestation bundles were made for datadog_api_client-2.46.0-py3-none-any.whl:
Publisher:
publish.yml on DataDog/datadog-api-client-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
datadog_api_client-2.46.0-py3-none-any.whl -
Subject digest:
1d5c03b21fdd513d0619d62080f24a525f728e0f81c748a0eba1e5b54a73002f - Sigstore transparency entry: 701293265
- Sigstore integration time:
-
Permalink:
DataDog/datadog-api-client-python@ed545aaab5bfb9ef01a4a3064c09f4f7f90eaf70 -
Branch / Tag:
refs/tags/2.46.0 - Owner: https://github.com/DataDog
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ed545aaab5bfb9ef01a4a3064c09f4f7f90eaf70 -
Trigger Event:
release
-
Statement type: