Datadog
连接
从终端连接Datadog。传入--help查看Datadog接受的标志。
polylane integration connect --type datadog你的Datadog站点的API密钥和应用密钥。
连接Datadog,让智能体在调查期间可以查询你的日志、指标、监控器和仪表盘。
设置
- 选择你的Datadog site(US1、US3、US5、EU1、AP1等)。查看你的Datadog URL:
app.datadoghq.com是US1,app.datadoghq.eu是EU1。 - 输入来自Organization Settings → API Keys的API key。
- 输入来自Organization Settings → Application Keys的Application key。
- 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的Webhook,并让每个监控器订阅它,这样告警一触发就落到Polylane并得到分诊。
智能体能做什么
- 用Datadog查询语法搜索和过滤日志
- 读取指标值及其随时间的趋势
- 检查哪些监控器正在告警及其状态
- 在调查中引用仪表盘数据
断开连接
在Polylane中断开Datadog,然后在Datadog中撤销应用密钥和API密钥。
把Datadog的告警与你由Terraform管理的资源一起注册到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"])
}
最简单的设置是让Webhook本身仍由Polylane管理,只把提及和标签放进Terraform。如果你也在Terraform中管理Webhook,导入现有的那个而不是创建它,因为Datadog的Webhook名称是唯一的。先添加资源块,然后导入:
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的令牌),或在同一页面创建一个新令牌。重新连接该集成会用新令牌重建Webhook,所以导入的Webhook之后需要更新它的令牌变量。
断开连接
断开连接会停止所有同步和检查,并删除Polylane持有的凭据。 Polylane会移除Datadog的API允许它移除的内容。以下内容会保留,直到你自己移除:
- @webhook-polylane appended to every monitor message
- polylane:managed tag on every monitor
polylane integration disconnect <id>工具
12智能体可以在线程中执行的操作。