콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
API 레퍼런스업데이트된 2026년 9월 2일Telemetry 편집 및 제품 팀의 검토12 최소 읽기

코딩 에이전트와 함께 이 문서를 사용하세요.

Claude Code, Codex, Cursor 또는 다른 코딩 에이전트에 대한 집중 프롬프트 팩을 연 다음 여기에서 다루는 워크플로에 맞게 조정하세요.

이 페이지에서
  1. 알림 나열
  2. 알림 필드
  3. 알림 만들기
  4. 쿼리 알림 만들기
  5. 쿼리 페이로드
  6. 탐색기 페이로드
  7. 코딩 에이전트를 사용하여 알림 만들기
  8. 에이전트에게 필요한 정보
  9. 권장 요청 순서
  10. 코딩 에이전트에 대한 프롬프트
  11. 의도적으로 두 집계를 모두 선택합니다.
  12. 예: 지속적인 서버 오류율
  13. 예: p95 대기 시간 스파이크
  14. 예: 하트비트 누락
  15. 예: 초안 검토 및 활성화
  16. 슬러그 정규화
  17. 알림 편집
  18. 알림 삭제
  19. 일반적인 오류

알림

알림 API를 사용하면 Telemetry UI에서 사용할 수 있는 동일한 단일 시리즈 임계값 알림을 프로비저닝하고 관리할 수 있습니다.

코딩 에이전트에게 알림 프로비저닝을 요청하는 경우 코딩 에이전트를 사용하여 알림 생성부터 시작하세요. 이는 에이전트에 안전한 검색 및 검증 순서, 에이전트 준비 프롬프트 및 일반적인 사용 사례에 대한 완전한 요청을 제공합니다.

지원되는 작업:

  • 목록. GET https://api.telemetry.sh/alert
  • 만들기. POST https://api.telemetry.sh/alert
  • 편집. PATCH https://api.telemetry.sh/alert
  • 삭제. DELETE https://api.telemetry.sh/alert

헤더

이름 유형 설명
Content-Type 문자열 생성, 편집, 삭제 요청의 경우 application/json여야 합니다.
Authorization 문자열 API 키(원시 키 또는 Bearer <key>)

범위 규칙:

  • GET /alertread, write 또는 read-and-write를 허용합니다.
  • POST /alert, PATCH /alertDELETE /alert에는 write 또는 read-and-write가 필요합니다.

알림 나열

GET /alertupdated_at DESC가 주문한 API 키 팀에 대한 알림을 반환합니다.

지원되는 쿼리 매개변수:

필드 유형 필수 정확한 계약 기본값
page 정수 아니요 1부터 시작하는 양수 페이지 번호입니다. 1
pageSize 정수 아니요 양수 페이지 크기. 100 이상의 값은 100로 고정됩니다. 레거시 별칭 page_size도 허용됩니다. 50
curl "https://api.telemetry.sh/alert?page=1&pageSize=25" \
  -H "Authorization: $API_KEY"

응답에는 표준 페이지 매김 메타데이터와 전체 알림 기록이 포함됩니다.

{
  "status": "success",
  "pagination": {
    "page": 1,
    "pageSize": 25,
    "total": 1,
    "totalPages": 1,
    "hasNextPage": false,
    "hasPreviousPage": false
  },
  "alerts": [
    {
      "id": "d7463946-8c6a-4a54-8a47-74cc98247c54",
      "team_id": "a7d4...",
      "name": "API error rate",
      "slug": "api-error-rate",
      "description": "Notify the API on-call rotation",
      "alert_type": "query",
      "payload": {
        "querySql": "SELECT time_bucket, error_rate FROM api_health",
        "timestampColumn": "time_bucket"
      },
      "aggregation": "avg",
      "metric": "error_rate",
      "last_n_data_points": 3,
      "ignore_last_data_point": true,
      "check_interval_minutes": 60,
      "comparison": "greater_than",
      "threshold": 0.05,
      "recipients": [
        { "type": "email", "recipient": "[email protected]" }
      ],
      "status": "inactive",
      "enabled": true,
      "last_evaluated_at": null,
      "last_value": null,
      "evaluation_version": 0,
      "created_by": null,
      "created_by_api_key_id": "key_123",
      "created_at": "2026-09-02T17:05:00.000Z",
      "updated_at": "2026-09-02T17:05:00.000Z",
      "url": "/team/acme/alert/api-error-rate"
    }
  ]
}

팀에 알림이 없으면 pagination.totalPages0입니다. 마지막 페이지 이후의 페이지를 요청하면 빈 alerts 배열이 반환됩니다.

알림 필드

필드 유형 쓰기 가능 정확한 계약
id 문자열 아니요 알림 ID
team_id 문자열 아니요 소유한 팀 ID입니다.
name 문자열 비어 있지 않은 잘린 표시 이름(최대 200자)
slug 문자열 독특한 팀 범위의 슬러그. 슬러그 정규화를 참조하세요.
description 문자열 또는 null 선택적 설명입니다. 빈 문자열은 null로 저장됩니다.
alert_type 문자열 query 또는 explorer. 페이로드는 선택한 유형과 일치해야 합니다.
payload 객체 저장된 쿼리 정의. 쿼리 페이로드탐색기 페이로드를 참조하세요.
aggregation 문자열 count, sum, avg, min, max, p50, p90, p95 또는 p99.
metric 문자열 또는 null 집계할 숫자 결과 열입니다. null인 경우 평가자는 타임스탬프가 아닌 첫 번째 숫자 열을 사용합니다. 명시적인 값을 사용하는 것이 좋습니다.
last_n_data_points 정수 1, 3, 5, 10, 20, 50 또는 100 중 하나입니다.
ignore_last_data_point 부울 불완전한 시간 버킷을 나타낼 수 있는 최신 결과 행을 건너뛸지 여부입니다.
check_interval_minutes 정수 1, 60 또는 1440 중 하나입니다.
comparison 문자열 greater_than, less_than, greater_than_or_equal 또는 less_than_or_equal.
threshold 번호 유한 비교 임계값. "10"와 같은 JSON 문자열은 거부됩니다.
recipients 배열 1~25개의 고유한 이메일 수신자 개체입니다. 주소는 잘리고 소문자로 표시됩니다.
status 문자열 아니요 현재 평가 상태: 조건이 충족되면 active, 그렇지 않으면 inactive입니다.
enabled 부울 평가자가 알림을 실행해야 하는지 여부입니다.
last_evaluated_at 문자열 또는 null 아니요 최근 완료된 평가의 타임스탬프입니다.
last_value 번호 또는 null 아니요 최근 집계된 값입니다.
evaluation_version 정수 아니요 내부 낙관적 동시성 버전입니다.
created_by 문자열 또는 null 아니요 UI 생성 알림의 사용자 ID입니다. API가 생성한 알림에 대한 null입니다.
created_by_api_key_id 문자열 또는 null 아니요 API 생성 알림에 대한 API 키 ID입니다. UI 생성 알림용 null.
created_at 문자열 아니요 생성 타임스탬프.
updated_at 문자열 아니요 최신 업데이트 타임스탬프.
url 문자열 아니요 Telemetry UI의 상대 알림 URL입니다.

알림 만들기

POST /alert는 하나의 알림을 생성하고 201 Created를 반환합니다.

필드 필수 기본값
name 없음
slug 아니요 name에서 정규화됨
description 아니요 null
alert_type 없음
payload 없음
aggregation 아니요 avg
metric 아니요 null
last_n_data_points 아니요 3
ignore_last_data_point 아니요 true
check_interval_minutes 아니요 60
comparison 아니요 greater_than
threshold 없음
recipients 없음
enabled 아니요 true

쿼리 알림 만들기

curl -X POST https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "API error rate",
    "description": "Notify the API on-call rotation",
    "alert_type": "query",
    "payload": {
      "querySql": "SELECT timestamp_utc AS time_bucket, error_rate FROM api_health ORDER BY timestamp_utc DESC",
      "timestampColumn": "time_bucket",
      "sourceUrl": "/team/acme/default/error-rate/1"
    },
    "aggregation": "avg",
    "metric": "error_rate",
    "last_n_data_points": 3,
    "ignore_last_data_point": true,
    "check_interval_minutes": 60,
    "comparison": "greater_than",
    "threshold": 0.05,
    "recipients": [
      { "type": "email", "recipient": "[email protected]" }
    ]
  }'

성공적인 응답:

{
  "status": "success",
  "alert": {
    "id": "d7463946-8c6a-4a54-8a47-74cc98247c54",
    "name": "API error rate",
    "slug": "api-error-rate",
    "created_by": null,
    "created_by_api_key_id": "key_123",
    "url": "/team/acme/alert/api-error-rate"
  }
}

반환된 alert 객체에는 알림 필드에 표시된 모든 필드가 포함되어 있습니다. 단축된 예에서는 생성 ID와 URL을 강조합니다.

쿼리 페이로드

필드 유형 필수 정확한 계약
querySql 문자열 비어 있지 않은 읽기 전용 SQL. 쓰기 또는 DDL이 포함된 문은 거부됩니다.
timestampColumn 문자열 또는 null 아니요 최신 행부터 정렬하는 데 사용되는 결과 열입니다. 생략되거나 null인 경우 Telemetry는 공통 타임스탬프 열을 찾습니다.
queryId 문자열 또는 null 아니요 속성을 위한 선택적 저장된 쿼리 ID입니다.
sourceUrl 문자열 또는 null 아니요 소스 쿼리로 돌아가기 위한 선택적 상대 Telemetry URL입니다.

쿼리는 행당 하나의 숫자 값을 사용하여 하나의 정렬된 시계열을 반환해야 합니다. 알림 평가자는 타임스탬프 열을 기준으로 행을 정렬하고 선택적으로 최신 행을 건너뛰고 요청된 포인트 수를 가져와 metric를 집계하고 comparisonthreshold에 적용합니다.

탐색기 페이로드

Explorer 알림은 테이블 이름과 Explorer 상태를 유지합니다.

{
  "name": "Checkout failures",
  "alert_type": "explorer",
  "payload": {
    "tableName": "checkout_events",
    "explorerState": {
      "graphType": "line",
      "aggregation": "count",
      "metric": null,
      "timeZone": "UTC",
      "timePreset": "24h",
      "granularity": "hour",
      "splitBy": [],
      "filters": [
        {
          "logic": "AND",
          "conditions": [
            { "field": "outcome", "operator": "=", "value": "failed" }
          ]
        }
      ],
      "selectedColumns": [],
      "orderBy": null,
      "orderDirection": "DESC",
      "limit": 200
    },
    "fields": [
      { "name": "outcome", "type": "Utf8" }
    ]
  },
  "metric": "count",
  "threshold": 10,
  "recipients": [
    { "type": "email", "recipient": "[email protected]" }
  ]
}

Explorer 알림 규칙:

  • payload.tableName는 비어 있지 않은 문자열이어야 합니다.
  • payload.explorerState는 객체여야 하며 지정된 경우 해당 graphTypeline여야 합니다.
  • 알림은 하나의 계열을 평가하므로 splitBy는 비어 있어야 합니다.
  • aggregation는 최상위 알림 조건과 동일한 집계 이름을 허용합니다. count가 아닌 Explorer 집계에는 explorerState.metric가 필요합니다.
  • timePreset1h, 6h, 24h, 7d, 30d, 90d 또는 custom를 허용합니다.
  • granularityauto, minute, hour, day, week 또는 month를 허용합니다.
  • fields는 선택 사항입니다. 필터 또는 숫자 필드 선택이 스키마 유형에 따라 달라지는 경우 { "name", "type" } 레코드를 포함합니다.
  • 필터 연산자는 =, !=, >, >=, <, <=, LIKE, NOT LIKE입니다. IS NULLIS NOT NULL.

코딩 에이전트를 사용하여 알림 만들기

에이전트는 여전히 잘못된 테이블을 감시하고, 잘못된 단위를 사용하고, 잘못된 사람에게 이메일을 보내는 구문상 유효한 알림을 생성할 수 있습니다. 운영 목표를 지정하고 POST /alert를 호출하기 전에 데이터를 검사하고 검증하도록 요구합니다.

쿼리 알림은 저장하기 전에 POST /query를 통해 정확한 SQL을 실행할 수 있기 때문에 일반적으로 에이전트가 구축하기 가장 쉬운 유형입니다. Telemetry는 시간 버킷을 생성하고 누락된 버킷을 0으로 채우기 때문에 Explorer 알림은 표준 개수 및 백분위수에 유용합니다.

에이전트에게 필요한 정보

다음 입력을 제공하거나 에이전트에게 중지하고 요청하도록 지시합니다.

  • 트리거해야 하는 조건과 해당 임계값의 단위
  • 예상되는 테이블 또는 이벤트 이름(알고 있는 경우)
  • 모니터링할 환경, 서비스, 경로, 계정 또는 기타 인구
  • 전환 확인, 버킷 크기 및 위반해야 하는 완료된 버킷 수
  • 안정적인 알림 이름과 슬러그
  • 응답을 소유한 수신자
  • 상담사가 전달을 활성화할 수 있는지 아니면 비활성화된 초안만 생성해야 하는지 여부

에이전트에게 프로덕션 페이징 주소를 추론하거나 몇 개의 샘플 행에서 임계값을 만들어내도록 요청하지 마십시오.

  1. GET /tables를 호출하여 정식 테이블 이름을 알아보세요.
  2. GET /tables/<table>/schema를 호출하고 실제로 호환되는 유형으로 존재하는 필드만 사용하세요.
  3. GET /alert?page=1&pageSize=100를 호출하고 의도된 안정적인 슬러그를 찾으세요. 존재하는 경우 PATCH /alert를 사용하십시오. 중복을 만들지 마십시오.
  4. 쿼리 알림의 경우 제안된 정확한 SQL을 POST /query와 함께 실행하세요. 타임스탬프 열 1개, 숫자 메트릭 열 1개, 예상 단위, 최신순 정렬이 반환되는지 확인합니다.
  5. enabled: false를 사용하여 새 알림을 만듭니다. 반환된 알림, 쿼리, 임계값, 포인트 창 및 수신자를 검토합니다.
  6. PATCH /alert를 사용하여 검토된 알림을 활성화합니다. 알림을 활성화하면 상태 전환 후 실제 이메일이 전달될 수 있으므로 이를 부작용 단계로 간주하십시오.

알림 upsert 엔드포인트가 없습니다. 기존 슬러그와 함께 POST /alert를 반복하면 409 Conflict가 반환됩니다. 선의로 행동하는 에이전트는 먼저 목록을 나열하고 의도적으로 기존 알림을 패치합니다.

검색 호출은 다음과 같습니다.

curl "https://api.telemetry.sh/tables?page=1&pageSize=100" \
  -H "Authorization: $API_KEY"

curl https://api.telemetry.sh/tables/http_request_completed/schema \
  -H "Authorization: $API_KEY"

curl "https://api.telemetry.sh/alert?page=1&pageSize=100" \
  -H "Authorization: $API_KEY"

코딩 에이전트에 대한 프롬프트

이 프롬프트를 복사하고 대괄호로 묶인 값을 바꿉니다.

Create a Telemetry alert for [operational condition] using https://api.telemetry.sh.

Use the API key already available as API_KEY. The expected event or table is
[table, or "unknown"]. Monitor [population] over [window and bucket size]. The
threshold is [value and unit], and the owner is [recipient]. Use the stable slug
[slug].

Before changing anything:
1. List tables and inspect the selected table's schema.
2. List existing alerts and look for the stable slug.
3. Build a single-series query and run the exact SQL through POST /query.
4. Show me the returned columns and representative rows, the proposed alert
   request, and how its bucket aggregation differs from its top-level aggregation.

Do not guess field names, units, thresholds, or recipients. Do not create a
duplicate or delete an alert. If the slug does not exist, create the alert with
enabled set to false. If it exists, propose a PATCH instead. Do not enable the
alert until I confirm the query, threshold, and recipient.

의도적으로 두 집계를 모두 선택합니다.

Explorer 알림에는 두 개의 집계 레이어가 있습니다. explorerState.aggregation는 각 시간 버킷 내부의 값을 계산합니다. 최상위 aggregationlast_n_data_points에서 선택한 최근 버킷 값을 줄입니다. 쿼리 알림은 SQL의 각 행을 계산하고 최근 행 전체에서 최상위 집계만 사용합니다.

운영 목표 버킷당 가치 최상위 조건
지속적인 서버 오류율 SQL는 server_error_rate_pct를 계산합니다. 완료된 마지막 3개 버킷의 평균을 계산하고 5 퍼센트와 비교합니다.
지연 시간 급증 Explorer는 p95 duration_ms를 계산합니다. 마지막 5개의 완료된 버킷 중 최대값이 850 밀리초를 초과합니다.
누락된 심장 박동 Explorer는 이벤트를 계산하고 누락된 버킷을 0으로 채웁니다. 마지막으로 완료된 5개 버킷의 합계가 1 이벤트보다 작습니다.

최신 버킷이 불완전할 수 있으므로 ignore_last_data_point: true는 이러한 시간 버킷 예시에 적합합니다. 완전히 계산된 행 하나만 반환하는 쿼리의 경우 false로 설정합니다. 그렇지 않으면 평가자는 해당 행만 삭제합니다.

예: 지속적인 서버 오류율

이 쿼리는 각 5분 버킷에 대해 하나의 오류율 백분율을 계산하고 버킷당 요청이 100개 미만인 비율 알림을 억제합니다. 그런 다음 알림은 가장 최근에 완료된 버킷 3개의 평균을 계산하고 해당 평균을 5 퍼센트와 비교합니다.

먼저 정확한 SQL을 실행하고 결과를 검사합니다.

ALERT_QUERY=$(cat <<'SQL'
SELECT
  date_bin(
    INTERVAL '5 minutes',
    timestamp_utc,
    TIMESTAMP '1970-01-01'
  ) AS time_bucket,
  CASE
    WHEN COUNT(*) >= 100 THEN
      100.0 * SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END)
        / NULLIF(COUNT(*), 0)
    ELSE 0.0
  END AS server_error_rate_pct
FROM http_request_completed
WHERE
  timestamp_utc >= now() - INTERVAL '35 minutes'
  AND environment = 'production'
GROUP BY time_bucket
ORDER BY time_bucket DESC;
SQL
)

curl -X POST https://api.telemetry.sh/query \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg query "$ALERT_QUERY" \
    '{query: $query, realtime: true, json: true}')"

time_bucket가 타임스탬프이고 server_error_rate_pct가 숫자인지 확인한 후 비활성화된 초안을 만듭니다.

curl -X POST https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg query "$ALERT_QUERY" '{
    name: "Production API error rate",
    slug: "production-api-error-rate",
    description: "Investigate recent deploys and affected routes before escalating.",
    alert_type: "query",
    payload: {
      querySql: $query,
      timestampColumn: "time_bucket"
    },
    aggregation: "avg",
    metric: "server_error_rate_pct",
    last_n_data_points: 3,
    ignore_last_data_point: true,
    check_interval_minutes: 1,
    comparison: "greater_than",
    threshold: 5,
    recipients: [
      {type: "email", recipient: "[email protected]"}
    ],
    enabled: false
  }')"

알림을 활성화하기 전에 예시 수신자를 검토된 소유자로 바꾸세요.

예: p95 대기 시간 스파이크

이 Explorer 알림은 매분마다 p95 요청 기간을 계산합니다. 최상위 max는 가장 최근에 완료된 5분 중 하나가 850 밀리초를 초과해야 함을 의미합니다.

curl -X POST https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production API p95 latency",
    "slug": "production-api-p95-latency",
    "description": "Inspect slow routes, dependencies, and the latest deploy.",
    "alert_type": "explorer",
    "payload": {
      "tableName": "http_request_completed",
      "explorerState": {
        "graphType": "line",
        "aggregation": "p95",
        "metric": "duration_ms",
        "timeZone": "UTC",
        "timePreset": "1h",
        "granularity": "minute",
        "splitBy": [],
        "filters": [
          {
            "logic": "AND",
            "conditions": [
              {
                "field": "environment",
                "operator": "=",
                "value": "production"
              }
            ]
          }
        ],
        "selectedColumns": ["duration_ms"],
        "orderBy": null,
        "orderDirection": "DESC",
        "limit": 200
      },
      "fields": [
        { "name": "duration_ms", "type": "Float64" },
        { "name": "environment", "type": "Utf8" }
      ]
    },
    "aggregation": "max",
    "metric": "duration_ms",
    "last_n_data_points": 5,
    "ignore_last_data_point": true,
    "check_interval_minutes": 1,
    "comparison": "greater_than",
    "threshold": 850,
    "recipients": [
      { "type": "email", "recipient": "[email protected]" }
    ],
    "enabled": false
  }'

fields 유형은 스키마 응답에서 나와야 합니다. 이를 통해 Explorer SQL 생성기는 필터 값을 올바르게 직렬화하고 숫자 측정값을 식별할 수 있습니다.

예: 하트비트 누락

부재가 신호일 때 탐험가 수를 사용하십시오. Explorer 시계열 쿼리에는 값이 0인 누락 버킷이 포함되어 있으므로 완료된 마지막 5개의 1분 버킷의 합계가 이벤트 1개 미만일 때 이 알림이 트리거됩니다.

curl -X POST https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production worker heartbeat missing",
    "slug": "production-worker-heartbeat-missing",
    "description": "Check the worker process, queue, and ingestion path.",
    "alert_type": "explorer",
    "payload": {
      "tableName": "worker_heartbeat",
      "explorerState": {
        "graphType": "line",
        "aggregation": "count",
        "metric": null,
        "timeZone": "UTC",
        "timePreset": "1h",
        "granularity": "minute",
        "splitBy": [],
        "filters": [
          {
            "logic": "AND",
            "conditions": [
              {
                "field": "environment",
                "operator": "=",
                "value": "production"
              }
            ]
          }
        ],
        "selectedColumns": [],
        "orderBy": null,
        "orderDirection": "DESC",
        "limit": 200
      },
      "fields": [
        { "name": "environment", "type": "Utf8" }
      ]
    },
    "aggregation": "sum",
    "metric": "count",
    "last_n_data_points": 5,
    "ignore_last_data_point": true,
    "check_interval_minutes": 1,
    "comparison": "less_than",
    "threshold": 1,
    "recipients": [
      { "type": "email", "recipient": "[email protected]" }
    ],
    "enabled": false
  }'

기존 하트비트 이벤트만 그룹화하는 쿼리를 사용하지 마십시오. 이벤트가 도착하지 않으면 해당 쿼리는 누락된 간격에 대해 행을 반환하지 않을 수 있습니다. Explorer 시계열 형식은 조건에 필요한 값이 0인 버킷을 생성하므로 여기서 유용합니다.

예: 초안 검토 및 활성화

알림을 다시 나열하고 안정적인 슬러그에 대해 저장된 기록을 검사합니다. 그런 다음 해당 알림만 활성화합니다.

curl "https://api.telemetry.sh/alert?page=1&pageSize=100" \
  -H "Authorization: $API_KEY"

curl -X PATCH https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "alertSlug": "production-api-error-rate",
    "enabled": true
  }'

안정적인 슬러그가 이미 존재하는 경우 동일한 PATCH /alert 모양을 사용하여 검토된 필드만 변경합니다. 알림 전달을 일시 중지해야 하는 경우 쿼리 또는 수신자 변경 중에 enabled: false를 유지하세요.

슬러그 정규화

생성 및 편집 요청의 경우 Telemetry는 slug를 자르고 소문자로 만들고, ASCII 문자, 숫자, 공백 및 - 이외의 문자를 제거하고, 공백을 -로 변환하고, 반복되는 -를 축소하고, 선행 또는 후행을 자릅니다. -.

create에서 slug를 생략하면 API는 name를 정규화합니다. 예를 들어, "API Errors!!!""api-errors"가 됩니다. 정규화된 슬러그는 하나 이상의 문자 또는 숫자를 포함해야 하며 팀 내에서 고유해야 합니다. 중복은 409 Conflict를 반환합니다.

알림 편집

PATCH /alert는 부분 업데이트입니다. alertId 또는 alertSlug로 알림을 식별합니다. 생략된 다른 모든 필드는 변경되지 않습니다.

curl -X PATCH https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "alertSlug": "api-error-rate",
    "threshold": 0.08,
    "last_n_data_points": 5
  }'

두 식별자가 모두 제공되면 동일한 알림로 해결되어야 합니다. queryexplorer 간에 변경할 때 payloadalert_type와 함께 보냅니다.

쿼리, 조건, 일정 또는 수신자를 업데이트하면 last_valuelast_evaluated_at가 지워지고 statusinactive로 반환되며 evaluation_version가 증가합니다. 이름 바꾸기, 설명 또는 슬러그 변경, enabled 전환은 평가 상태를 지우지 않습니다.

응답은 생성과 동일한 { "status": "success", "alert": { ... } } 모양을 가진 200 OK입니다.

알림 삭제

DELETE /alertalertId, alertSlug 또는 둘 다를 허용합니다. 알림을 삭제하면 해당 평가 기록도 삭제됩니다.

curl -X DELETE https://api.telemetry.sh/alert \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "alertSlug": "api-error-rate" }'

성공적인 응답:

{
  "status": "success",
  "deleted_alert": {
    "id": "d7463946-8c6a-4a54-8a47-74cc98247c54",
    "name": "API error rate",
    "slug": "api-error-rate",
    "description": "Notify the API on-call rotation",
    "url": "/team/acme/alert/api-error-rate"
  }
}

일반적인 오류

  • 잘못된 JSON, 잘못된 알림 필드, 호환되지 않는 페이로드, 지원되지 않는 페이지 매김 또는 변형에 사용되는 읽기 범위 키에 대한 400 Bad Request
  • API 키가 없거나 유효하지 않은 경우 401 Unauthorized
  • 알림 식별자가 API 키 팀에 속하지 않는 경우 404 Not Found
  • 팀에 정규화된 슬러그가 이미 존재하는 경우 409 Conflict
  • API 키가 게이트웨이 속도 제한을 초과하는 경우 429 Too Many Requests
  • 유효한 지속성 작업이 실패하는 경우 500 Internal Server Error

알림 정의는 이메일을 생성할 수 있습니다. 테스트하는 동안 임시 수신자를 사용하고, 합성 데이터로 조건을 확인하고, 검증 후 테스트 알림을 비활성화하거나 삭제합니다. 평가 의미 체계는 알림를 참조하고 전달 지침은 알림 전달 및 문제 해결을 참조하세요.

관련 기능

검토된 SQL을 자체 임계값 및 응답 워크플로로 승격합니다.

페이지 작성자 및 참고 자료

이 설명은 Telemetry 편집팀의 소유입니다. 제품 팀은 동작, 예시, 경계를 검토합니다.

문서 검토 방법