1. 免费注册试用
2. 本地下载安装agent .
DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=xxxkey DD_SITE="us5.datadoghq.com" bash -c "$(curl -L https://install.datadoghq.com/scripts/install_mac_os.sh)"
3. 下载 dd-java-agent.jar
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
4. 配置环境变量
export DD_API_KEY="xxxxapikey"
export DD_SITE="us5.datadoghq.com"
5. 配置Java Client
implementation "com.datadoghq:datadog-api-client:2.23.0"
6. 测试认证是否成功
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.AuthenticationApi;
import com.datadog.api.client.v1.model.AuthenticationValidationResponse;
public class DatalogTest {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
AuthenticationApi apiInstance = new AuthenticationApi(defaultClient);
try {
AuthenticationValidationResponse result = apiInstance.validate();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AuthenticationApi#validate");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
7. 测试submit metrics
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.MetricsApi;
import com.datadog.api.client.v2.model.IntakePayloadAccepted;
import com.datadog.api.client.v2.model.MetricIntakeType;
import com.datadog.api.client.v2.model.MetricPayload;
import com.datadog.api.client.v2.model.MetricPoint;
import com.datadog.api.client.v2.model.MetricResource;
import com.datadog.api.client.v2.model.MetricSeries;
import java.time.OffsetDateTime;
import java.util.Collections;
public class MetricExample {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
MetricsApi apiInstance = new MetricsApi(defaultClient);
MetricPayload body =
new MetricPayload()
.series(
Collections.singletonList(
new MetricSeries()
.metric("test_metric")
.type(MetricIntakeType.UNSPECIFIED)
.points(
Collections.singletonList(
new MetricPoint()
.timestamp(OffsetDateTime.now().toInstant().getEpochSecond())
.value(0.7)))
.resources(
Collections.singletonList(
new MetricResource().name("dummyhost").type("host")))));
try {
IntakePayloadAccepted result = apiInstance.submitMetrics(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MetricsApi#submitMetrics");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
8. 把应用的log发送到datadog
a. 修改 datadog.yaml
logs_enabled: true
b. 在Agent配置主目录/opt/datadog-agent/etc/conf.d下面创建一个app.d的目录,下面创建一个文件config.yaml
logs:
- type: file
path: "<PATH_LOG_FILE>/<LOG_FILE_NAME>.log"
service: "<APP_NAME>"
source: "<SOURCE>"
c. 重启Agent
d. springboot 日志相关配置