Skip to content

Datadog — алерт когда host не репортит метрики

Datadog agent умер (OOM, mismatched apt-update, certificate expiry до dd-staging.com) — host исчезает из dashboard через 10 мин (default mute window), но никто не алертит, что мониторинг ослеп.

Рецепт

bash
#!/usr/bin/env bash
# /etc/cron.d/dd-agent
# */10 * * * * root /opt/dd-agent.sh

DD_API_KEY=${DD_API_KEY}
DD_APP_KEY=${DD_APP_KEY}
EXPECTED=${EXPECTED:-host1,host2,host3}    # comma-separated hostname list

LIVE=$(curl -fsS -H "DD-API-KEY: $DD_API_KEY" -H "DD-APPLICATION-KEY: $DD_APP_KEY" \
  "https://api.datadoghq.com/api/v1/hosts?from=$(date -d '5 minutes ago' +%s)" \
  | jq -r '.host_list[].name' | sort -u)

MISSING=""
IFS=',' read -ra EXP <<< "$EXPECTED"
for H in "${EXP[@]}"; do
  if ! echo "$LIVE" | grep -qx "$H"; then
    MISSING="$MISSING$H,"
  fi
done

if [ -n "$MISSING" ]; then
  curl -fsS "$HEARTBEAT_URL" --data-urlencode "missing=$MISSING"
  exit 2
fi
echo "OK (all hosts reporting)"

То же самое в Enterno.io

Заверните в Enterno heartbeat — независимый канал для catch на «monitoring сам ослеп», не полагается на тот же DD-стек.

Настроить API monitor → ← Все рецепты

Похожие рецепты

Prometheus сам жив, но один из targets (`up==0`) — данные перестали течь, графики пустые, alertmanager-правила, основанные на этом target, не fire-ят (нет данных = нет алерта).