Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Java client for the Datadog API

License

NotificationsYou must be signed in to change notification settings

DataDog/datadog-api-client-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains a Java API client for theDatadog API.

Requirements

Building the API client library requires:

  1. Java 1.8+
  2. Maven/Gradle

Installation

To install the API client library to your local Maven repository, simply execute:

mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

mvn clean deploy

Refer to theOSSRH Guide for more information.

Maven users

Add this dependency to your project's POM:

<dependency>  <groupId>com.datadoghq</groupId>  <artifactId>datadog-api-client</artifactId>  <version>2.10.0</version>  <scope>compile</scope></dependency>

See theReleases page for the latest available version.

Gradle users

Add this dependency to your project's build file:

compile"com.datadoghq:datadog-api-client:2.0.0"

See theReleases page for the latest available version.

Others

At first generate the JAR by executing:

mvn clean package

Then manually install the following JARs:

  • target/datadog-api-client-<VERSION>.jar
  • target/lib/*.jar

Getting Started

Please follow theinstallation instruction and execute the following Java code:

importcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v1.api.MonitorsApi;importcom.datadog.api.client.v1.model.Monitor;importcom.datadog.api.client.v1.model.MonitorType;importjava.util.Arrays;publicclassMonitorCreatedExample {publicstaticvoidmain(String[]args) {ApiClientdefaultClient =ApiClient.getDefaultApiClient();MonitorsApiapiInstance =newMonitorsApi(defaultClient);Monitorbody =newMonitor()            .name("my-monitor")            .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(Arrays.asList("test:example","env:ci"))            .priority(3L);try {Monitorresult =apiInstance.createMonitor(body);System.out.println(result);    }catch (ApiExceptione) {System.err.println("Exception when calling MonitorsApi#createMonitor");System.err.println("Status code: " +e.getCode());System.err.println("Reason: " +e.getResponseBody());System.err.println("Response headers: " +e.getResponseHeaders());e.printStackTrace();    }  }}

Asynchronous support

All API methods have asynchronous versions returningCompletableFuture when adding theAsync suffix to their names:

importcom.datadog.api.client.ApiClient;importcom.datadog.api.client.v1.api.MonitorsApi;publicclassListMonitorsAsyncExample {publicstaticvoidmain(String[]args) {ApiClientdefaultClient =ApiClient.getDefaultApiClient();MonitorsApiapiInstance =newMonitorsApi(defaultClient);apiInstance.listMonitorsAsync().thenApply(monitors -> {System.out.println(monitors);returnnull;    }).exceptionally(error -> {System.out.println(error);returnnull;    });  }}

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:

defaultClient.setUnstableOperationEnabled("<Version>.<OperationName>",true);

where<OperationName> is the name of the method used to interact with that endpoint. For example:listSLOCorrection, orgetSLOHistory

Changing Server

When talking to a different server, like theeu instance, change theserverVariables on your client:

HashMap<String,String>serverVariables =newHashMap<String,String>();serverVariables.put("site","datadoghq.eu");defaultApiClient.setServerVariables(serverVariables);

Disable compressed payloads

If you want to disable GZIP compressed responses, set thecompress flagon your client:

defaultClient.setCompress(false)

Enable requests logging

If you want to enable requests logging, set thedebugging flag on your client:

defaultClient.setDebugging(true)

Enable Retry

To enable the client to retry when rate limited (status 429) or status 500 and above:

defaultClient.enableRetry(true)

The interval between 2 retry attempts will be the value of thex-ratelimit-reset response header when available. If not, it will be :Math.pow (multiplier_for_retry_backoff, current_retry_count)*base_for_retry_backoff.

Configure proxy

You can provide customconnectorProvider implementation toclientConfig to use proxy. See example below usingApacheConnectorProvider:

importorg.glassfish.jersey.apache.connector.ApacheConnectorProvider;importorg.glassfish.jersey.client.ClientConfig;importorg.glassfish.jersey.client.ClientProperties;importcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v1.api.DashboardsApi;importcom.datadog.api.client.v1.model.DashboardSummary;publicclassProxyExample {publicstaticvoidmain(String[]args ) {ApiClientdefaultClient =ApiClient.getDefaultApiClient();ClientConfigclientConfig =defaultClient.getClientConfig().connectorProvider(newApacheConnectorProvider());clientConfig.property(ClientProperties.PROXY_URI,"http://127.0.0.1:80");defaultClient.setClientConfig(clientConfig);DashboardsApiapiInstance =newDashboardsApi(defaultClient);try {DashboardSummaryresult =apiInstance.listDashboards();System.out.println(result);    }catch (ApiExceptione) {System.err.println("Exception when calling DashboardsApi#listDashboards");System.err.println("Status code: " +e.getCode());System.err.println("Reason: " +e.getResponseBody());System.err.println("Response headers: " +e.getResponseHeaders());e.printStackTrace();    }  }}

Using alternative artifacts

Outside of the regular JAR file we also release 2 artifacts that can be useful for development, namely:

  • jar-with-dependencies, which contains all the dependencies of the client in a single JAR
  • shaded-jar, which includes and renames the core dependencies of the client, allowing you to use different versions of thoselibraries in your project.

To use them in Maven, just add theclassifier keyword in the dependency definition. For example:

<dependency>  <groupId>com.datadoghq</groupId>  <artifactId>datadog-api-client</artifactId>  <version>2.10.0</version>  <classifier>shaded-jar</classifier>  <scope>compile</scope></dependency>

Documentation for API Endpoints and Models

Javadoc is available onjavadoc.io.

Documentation for Authorization

To programmatically defined authorization headers, calls theconfigureApiKeysmethod with a map containing the required secrets for the operations:

HashMap<String,String>secrets =newHashMap<>();secrets.put("apiKeyAuth","<YOUR API KEY>");secrets.put("appKeyAuth","<YOUR APPLICATION KEY>");generalApiClient.configureApiKeys(secrets);

Recommendation

It's recommended to create an instance ofApiClient per thread in a multithreaded environment to avoid any potential issues.

Author

support@datadoghq.com


[8]ページ先頭

©2009-2025 Movatter.jp