Saltar al contenido
Telemetry
Explorar documentación

GuíasActualizado el 2 de octubre de 20264 min de lectura

Usa esta documentación con tu agente de programación

Abra un paquete de mensajes enfocados para Claude Code, Codex, Cursor u otro agente de codificación, luego adáptelo al flujo de trabajo que se describe aquí.

En esta página
  1. Requisitos previos
  2. 1. Instale el Telemetry SDK
  3. 2. Inicializar Telemetry
  4. 3. Crea una comprobación de los latidos del corazón
  5. 4. Programe los latidos del corazón
  6. 5. Consultar tiempo de actividad
  7. 6. Explore el tiempo de actividad en Telemetry
  8. Próximos pasos

Monitoreo del tiempo de actividad del sitio web

Un latido registra tanto las comprobaciones exitosas como las fallidas. Esto hace visible una interrupción, pero también revela cuándo el trabajo de monitoreo deja de enviar datos.

Cronología de latidos del sitio web con comprobaciones exitosas, dos fallas del HTTP 503 y un incidente de diez minutos

Las comprobaciones periódicas convierten el tiempo de inactividad (y el silencio inesperado) en eventos cuestionables.

Use el SDK de Telemetry para enviar un latido por cada comprobación del sitio web. Después, consulte las comprobaciones fallidas y los intervalos sin datos.

Requisitos previos

  • Una clave API válida para Telemetry
  • Comprensión básica de JavaScript y Node.js

1. Instale el Telemetry SDK

Primero, debe instalar Telemetry SDK en su proyecto. Si aún no lo ha hecho, ejecute el siguiente comando:

npm install telemetry-sh axios

2. Inicializar Telemetry

Usa Node.js 18 o posterior. Configura TELEMETRY_API_KEY en el entorno del servidor antes de ejecutar el script; nunca pongas la clave en código del navegador.

import telemetry from "telemetry-sh";
import axios from "axios";

const apiKey = process.env.TELEMETRY_API_KEY;
if (!apiKey) throw new Error("Set TELEMETRY_API_KEY in server-side configuration");
telemetry.init(apiKey);

3. Crea una comprobación de los latidos del corazón

Para monitorear el tiempo de actividad, puede configurar una función de latido que enviará periódicamente un ping al servicio Telemetry. El latido registrará el estado de su sitio web, permitiéndole monitorear su disponibilidad.

A continuación se muestra un ejemplo básico de una función de latido:

const sendHeartbeat = async (url) => {
  const startedAt = performance.now();
  let heartbeat;

  try {
    const response = await axios.get(url, {
      timeout: 10_000,
      validateStatus: () => true,
    });
    const isOnline = response.status >= 200 && response.status < 400;
    heartbeat = {
      url,
      timestamp: new Date().toISOString(),
      status_code: response.status,
      status: isOnline ? "check_passed" : "http_error",
      is_online: isOnline,
      latency_ms: performance.now() - startedAt,
    };
  } catch {
    heartbeat = {
      url,
      timestamp: new Date().toISOString(),
      status_code: 0,
      status: "probe_error",
      is_online: false,
      error_type: "request_failed",
      latency_ms: performance.now() - startedAt,
    };
  }

  try {
    await telemetry.log("website_uptime", heartbeat);
  } catch {
    try { console.warn("Heartbeat export failed"); } catch {}
  }
  return heartbeat;
};

Esta es una comprobación básica desde un solo host, no una garantía de disponibilidad en producción. Usa solo URLs públicas sin credenciales ni tokens. Los códigos HTTP 2xx/3xx cumplen el criterio del ejemplo; un tiempo de espera agotado o un fallo de transporte es una comprobación fallida, no prueba de que el sitio esté caído para todos. El tiempo de espera de diez segundos de Axios no es un límite total estricto.

La exportación se espera por separado y su fallo no cambia el resultado HTTP. Aquí el SDK no tiene un tiempo de espera de envío configurable: una exportación bloqueada puede retrasar comprobaciones posteriores. En producción, separa la exportación mediante una cola acotada o un cliente HTTP propio y supervisa también el monitor.

4. Programe los latidos del corazón

Ejecuta una comprobación de inmediato y programa la siguiente cuando terminen la comprobación actual y su envío:

const urlToMonitor = "https://example.com"; // Replace with a public URL.
const interval = 5 * 60 * 1000;

async function runHeartbeat() {
  try {
    await sendHeartbeat(urlToMonitor);
  } catch {
    try { console.warn("Heartbeat check failed"); } catch {}
  } finally {
    setTimeout(runHeartbeat, interval);
  }
}

void runHeartbeat();

Este programador empieza inmediatamente, espera a que terminen una comprobación y su exportación, y después espera cinco minutos antes de la siguiente ejecución. Evita comprobaciones simultáneas, pero deriva; no es un horario fijo de cinco minutos ni un programador duradero.

5. Consultar tiempo de actividad

Consulta el porcentaje de comprobaciones registradas que cumplieron el criterio HTTP:

const results = await telemetry.query(`
  SELECT
    url,
    COUNT(*) AS total_pings,
    SUM(CASE WHEN is_online THEN 1 ELSE 0 END) AS online_pings,
    (SUM(CASE WHEN is_online THEN 1 ELSE 0 END) * 100.0 / COUNT(*)) AS observed_check_success_percentage
  FROM
    website_uptime
  WHERE
    timestamp_utc >= now() - INTERVAL '30 days'
  GROUP BY
    url
`);

console.log(results);

La consulta mide el porcentaje de comprobaciones observadas que cumplieron el criterio. Las comprobaciones programadas que faltan no aparecen en el denominador, por lo que no mide disponibilidad por tiempo transcurrido ni un SLA. Usa un registro de comprobaciones esperadas y un monitor independiente para distinguir falta de cobertura de fallos observados.

6. Explore el tiempo de actividad en Telemetry

La interfaz de usuario de Telemetry le permite visualizar y explorar sus datos de tiempo de actividad de forma interactiva. Visite Tablero Telemetry e inicie sesión con sus credenciales para crear paneles, gráficos y más en función de sus datos de monitoreo de tiempo de actividad.

Próximos pasos

Un porcentaje de tiempo de actividad no puede detectar un monitor que dejó de funcionar. Agregue el receta de latidos faltantes y avise cuando la última verificación sea anterior al cronograma esperado más un pequeño período de gracia.

Función relacionada

Promocionar el SQL revisado en un umbral propio y un flujo de trabajo de respuesta.

Autores de la página y referencias

El equipo editorial de Telemetry es responsable de esta explicación; el equipo de producto revisa el comportamiento, los ejemplos y las limitaciones.

Cómo revisamos nuestra documentación