Spring Boot 3rd-party (Sentry + DataDog + Vault) integration 2. DataDog 연동

예제 코드는 Github repository에서 확인 가능합니다.


DataDog과 Spring Boot를 연동하는 방법이 여러가지가 있겠지만 이 예제에서는 Spring Boot Metrics를 사용하여 DataDog과 연동하는 방법에 대해 알아보도록 하겠다.

(DataDog 계정이 이미 있다는 가정하에 진행하도록 하겠다.)

DataDog Secret

DataDog을 application과 연동하기 위한 Secret을 발급받아보자.

DataDog 로그인을 한 뒤 IntegrationsAPIs 을 들어가면 API KeyApplication Key를 새로 발급받을 수 있다.

다음과 같이 새로운 secret이 발급된다.

Application 설정

초반 프로젝트 생성을 했을 때 build.gradle에 주석 처리했던 DataDog dependency를 풀도록한다.

1
runtimeOnly 'io.micrometer:micrometer-registry-datadog'

그리고 application-local.yml에 다음 설정을 추가한다.

1
2
3
4
5
6
7
8
9
management:
metrics:
export:
datadog:
enabled: true
api-key: your api key
application-key: your application key
host-tag: thirdparty-example
step: PT10S

api-key, application-key에는 앞서 발급 받은 DataDog secret 값을 넣도록 한다.

실행을 통한 테스트

앞서 Sentry와 동일하게 local profile로 application을 실행한 뒤, 요청을 하나 보내보자.

1
2
$ curl http://localhost:8080/info
info

이제 해당 요청에 대한 결과를 DataDog을 통해 확인하기 위해 Dashboard 설정을 해보자.

DataDog Dashboard 생성 및 데이터 확인

application에서 보낸 데이터를 확인하기 위해서 Dashboard를 생성해야한다.
여기서는 매우 단순하게만 설정해서 연동이 잘 되었는지 여부만 확인하도록 하겠다.

DashbordsNew Dashboard를 선택하여 새로운 Dashboard를 생성한다.

새로 생성한 Dashboard에 Timeseries를 하나 추가하자.

그래프 데이터에 http.server.requests.count를 추가한 뒤 Save를 하자.

동일하게 Timeseries를 JVM memory 모니터링 용으로 하나 추가하자.

이렇게 설정을 하면 Dashboard를 통해 application을 모니터링할 수 있다.

실제 개발 환경에 맞춰 설정값 변경

DataDog 역시 local 개발 환경에서는 연동할 필요가 없을 테니 설정을 끄도록한다.

1
2
3
4
5
6
7
8
9
management:
metrics:
export:
datadog:
enabled: false
api-key: your api key
application-key: your application key
host-tag: thirdparty-example
step: PT10S

지금까지 Sentry와 DataDog을 연동을 확인하였다.

이제 Vault를 사용하여 Sentry DSN, DataDog API Key, Application Key를 암호화하여 보관하는 방법에 대해 알아보도록 하겠다.

참고: https://docs.spring.io/spring-metrics/docs/current/public/datadog

Share