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.
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
2. Inicializar Telemetry
Después de instalar SDK, importe e inicialice Telemetry en su proyecto. Reemplace YOUR_API_KEY con su llave Telemetry API real.
import telemetry from "telemetry-sh";
telemetry.init("YOUR_API_KEY");
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 = Date.now();
try {
const response = await axios.get(url);
telemetry.log("website_uptime", {
url: url,
status_code: response.status,
status: "success",
is_online: true,
latency_ms: Date.now() - startedAt
});
} catch (error) {
telemetry.log("website_uptime", {
url: url,
status_code: error.response ? error.response.status : 0,
status: "error",
is_online: false,
error_type: error.code ?? "request_failed",
latency_ms: Date.now() - startedAt
});
}
};
4. Programe los latidos del corazón
Para monitorear continuamente el tiempo de actividad, querrás enviar latidos a intervalos regulares. Puede lograr esto utilizando setInterval para ejecutar la función sendHeartbeat periódicamente. Aquí hay un ejemplo que revisa el sitio web cada 5 minutos:
const urlToMonitor = "https://example.com"; // Replace with your website URL
const interval = 5 * 60 * 1000; // 5 minutes in milliseconds
setInterval(() => {
sendHeartbeat(urlToMonitor);
}, interval);
5. Consultar tiempo de actividad
Una vez que haya registrado suficientes datos, puede consultarlos utilizando la consulta API de Telemetry para analizar el tiempo de actividad de su sitio web. Por ejemplo, puedes calcular el porcentaje de tiempo que tu sitio web estuvo en línea:
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 uptime_percentage
FROM
website_uptime
WHERE
timestamp_utc >= now() - INTERVAL '30 days'
GROUP BY
url
`);
console.log(results);
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.