Datadog
연결
터미널에서 Datadog을 연결하세요. Datadog이 받는 플래그는 --help로 확인할 수 있습니다.
polylane integration connect --type datadogDatadog 사이트의 API 키와 애플리케이션 키입니다.
Datadog을 연결하면 에이전트가 조사 중에 로그, 메트릭, 모니터, 대시보드를 질의할 수 있습니다.
설정
- Datadog 사이트(US1, US3, US5, EU1, AP1 등)를 선택합니다. Datadog URL을 확인하세요:
app.datadoghq.com은 US1,app.datadoghq.eu는 EU1입니다. - Organization Settings → API Keys의 API 키를 입력합니다.
- Organization Settings → Application Keys의 애플리케이션 키를 입력합니다.
- Polylane이 두 키를 검증하고 연결합니다.
스코프가 없는 애플리케이션 키는 사용자와 같은 접근 권한을 가지며 그대로 동작합니다. 키에 스코프를 지정하는 경우 user_app_keys(연결에 필수)와 logs_read_data, timeseries_query, metrics_read, monitors_read, monitors_write, monitors_downtime, dashboards_read, slos_read, hosts_read, events_read, incident_read, apm_read, aws_configuration_read, create_webhooks를 포함하세요. 키는 저장 전에 암호화되며 에이전트는 이를 절대 보지 못합니다.
연결하면 Datadog에 polylane이라는 웹훅이 만들어지고 모든 모니터가 이를 구독하므로, 경보가 발생하는 대로 Polylane에 도착하여 트리아지됩니다.
에이전트가 할 수 있는 것
- Datadog 질의 구문으로 로그 검색과 필터링
- 시간에 따른 메트릭 값과 추세 읽기
- 어떤 모니터가 경보 중인지와 그 상태 확인
- 조사에서 대시보드 데이터 참조
연결 해제
Polylane에서 Datadog의 연결을 해제한 뒤, Datadog에서 애플리케이션 키와 API 키를 취소하세요.
Terraform으로 관리하는 리소스와 함께 Datadog 경보를 Polylane에 등록하세요.
Polylane은 모니터의 메시지에 @webhook-polylane 멘션을 덧붙이고 polylane:managed 태그를 추가하여 모니터를 구독시킵니다. 반복 동기화가 모든 모니터에 두 가지를 적용하므로, Terraform으로 관리하는 모니터는 Terraform 구성에도 이를 포함하기 전까지 드리프트를 표시합니다. 각 모니터에 두 가지를 추가하세요:
resource "datadog_monitor" "high_error_rate" {
name = "High error rate on checkout"
type = "metric alert"
query = "sum(last_5m):sum:trace.http.request.errors{service:checkout}.as_count() > 50"
message = <<-EOT
{{#is_alert}}Error rate on checkout is above threshold.{{/is_alert}}
@webhook-polylane
EOT
tags = concat(var.tags, ["polylane:managed"])
}
가장 간단한 설정은 웹훅 자체는 Polylane이 관리하게 두고 멘션과 태그만 Terraform에 두는 것입니다. 웹훅도 Terraform으로 관리한다면, Datadog 웹훅 이름은 고유하므로 새로 만드는 대신 기존 웹훅을 가져오세요. 먼저 리소스 블록을 추가한 뒤 가져옵니다:
resource "datadog_webhook" "polylane" {
name = "polylane"
url = "https://sinks.polylane.com/v1/datadog"
encode_as = "json"
custom_headers = jsonencode({
"x-polylane-telemetry-token" = var.polylane_telemetry_token
})
payload = jsonencode({
alert_id = "$ALERT_ID"
alert_metric = "$ALERT_METRIC"
alert_query = "$ALERT_QUERY"
alert_scope = "$ALERT_SCOPE"
alert_status = "$ALERT_STATUS"
alert_title = "$ALERT_TITLE"
alert_transition = "$ALERT_TRANSITION"
alert_type = "$ALERT_TYPE"
date = "$DATE_POSIX"
event_msg = "$EVENT_MSG"
event_title = "$EVENT_TITLE"
event_type = "$EVENT_TYPE"
hostname = "$HOSTNAME"
id = "$ID"
link = "$LINK"
logs_sample = "$LOGS_SAMPLE"
org_id = "$ORG_ID"
org_name = "$ORG_NAME"
priority = "$PRIORITY"
snapshot = "$SNAPSHOT"
tags = "$TAGS"
user = "$USER"
username = "$USERNAME"
})
}
terraform import datadog_webhook.polylane polylane
텔레메트리 토큰은 워크스페이스로의 경보 전달을 인증합니다. Polylane의 Settings → Telemetry tokens에서 찾거나(datadog-integration이라는 토큰), 같은 페이지에서 새 토큰을 만드세요. 통합을 다시 연결하면 새 토큰으로 웹훅이 다시 만들어지므로, 가져온 웹훅은 그 후 토큰 변수를 업데이트해야 합니다.
연결 해제
연결을 해제하면 모든 동기화와 검사가 중단되고 Polylane이 보관하던 자격 증명이 삭제됩니다. Polylane은 Datadog의 API가 허용하는 범위에서 제거합니다. 다음은 직접 제거하기 전까지 남습니다:
- @webhook-polylane appended to every monitor message
- polylane:managed tag on every monitor
polylane integration disconnect <id>도구
12에이전트가 스레드에서 수행할 수 있는 작업입니다.