Saltar al contenido
Fiabilidad de la API receta SQL

Medir la disponibilidad de API frente a un SLO

Calcular la disponibilidad diaria y mostrar si un servicio cumplió con su objetivo explícito.

Intermedioapi_requestsRevisado 2026-07-27Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Revisamos la sintaxis SQL, los campos necesarios, los resultados de ejemplo y las limitaciones de la consulta. Quién revisa esta página

Pregunta respondida

¿Cada servicio cumplió con su objetivo de disponibilidad diaria?

Un SLO define el objetivo de fiabilidad. Muestra juntos los eventos que cumplieron el objetivo, el total de eventos incluidos y el objetivo para que se pueda comprobar el resultado.

Esquema del evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampSolicitar tiempo de finalización.
serviceUtf8Nombre de servicio estable.
slo_eligibleBooleanSi la solicitud pertenece al denominador SLO.
slo_goodBooleanSi la solicitud cumplió con el SLO.
DataFusionSQL

Copiar la consulta

sql
SELECT
  date_trunc('day', timestamp_utc) AS day,
  service,
  SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END) AS eligible_requests,
  SUM(CASE WHEN slo_eligible AND slo_good THEN 1 ELSE 0 END)
    AS good_requests,
  100.0 * SUM(CASE WHEN slo_eligible AND slo_good THEN 1 ELSE 0 END)
    / NULLIF(SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END), 0)
    AS availability_pct,
  99.9 AS objective_pct
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '30 days'
GROUP BY date_trunc('day', timestamp_utc), service
HAVING SUM(CASE WHEN slo_eligible THEN 1 ELSE 0 END) > 0
ORDER BY day, service;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Disponibilidad de servicio diario

Query API no alcanzó el objetivo del 99,9% el 26 de julio.

dayserviceeligible_requestsgood_requestsavailability_pctobjective_pct
2026-07-25query_api182.400182.27499,9399,9
2026-07-26query_api176.820176.50199,8299,9
2026-07-27ingestion_api248.100247.97699,9599,9

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Daily service availability: gráfico estático de valores sintéticos de availability_pct del resultado del ejemplo Measure API availability against an SLO
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descarga los datos de ejemplo

El paquete JSON incluye el contrato de evento escrito, illustrative filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1La elegibilidad explícita protege al denominador de controles de salud o tráfico no admitido.
  2. 2slo_good puede codificar tanto la corrección como la latencia cuando el objetivo requiere ambas.
  3. 3El objetivo se devuelve junto al valor observado para que los gráficos y las revisiones preserven el límite de decisión.

Casos límite que debes comprobar

  • Utilice períodos de tiempo completos para informes de paginación y cumplimiento.
  • Documente el tráfico excluido para que el SLO no pueda mejorar mediante cambios silenciosos del denominador.
  • Una vista diaria es útil para revisar; Las alertas rápidas de presupuesto de errores normalmente necesitan períodos más cortos.

Panel recomendado

  • Tendencia: availability_pct con línea objetiva
  • Estadística: días de cumplimiento en el período seleccionado
  • Tabla: malos eventos por días de servicio perdidos

Guía de alerta

Utilice alertas de quema de presupuesto de errores de múltiples ventanas para paginación y esta vista diaria para revisión de cumplimiento.

Leer configuración de alerta

Configura los eventos que necesita esta consulta

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecútalo con tus eventos

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API