웹사이트 가동 시간 모니터링
하트비트는 성공 및 실패 확인을 모두 기록합니다. 이렇게 하면 중단이 표시되지만 모니터링 작업 자체가 데이터 전송을 중지하는 시기도 표시됩니다.
정기적인 확인을 통해 가동 중지 시간과 예상치 못한 침묵을 쿼리 가능한 이벤트로 전환합니다.
Telemetry SDK로 웹사이트를 확인할 때마다 하트비트를 보내세요. 그런 다음 실패한 확인과 데이터가 끊긴 구간을 조회하세요.
전제 조건
- Telemetry에 대한 유효한 API 키
- JavaScript 및 Node.js에 대한 기본 이해
1. Telemetry SDK를 설치합니다.
먼저 프로젝트에 Telemetry SDK를 설치해야 합니다. 아직 실행하지 않았다면 다음 명령을 실행하세요.
npm install telemetry-sh
2. Telemetry 초기화
SDK를 설치한 후 프로젝트에서 Telemetry를 가져와 초기화합니다. YOUR_API_KEY를 실제 Telemetry API 키로 교체하세요.
import telemetry from "telemetry-sh";
telemetry.init("YOUR_API_KEY");
3. 하트비트 확인 만들기
가동 시간을 모니터링하려면 Telemetry 서비스에 주기적으로 핑을 보내는 하트비트 기능을 설정할 수 있습니다. 하트비트는 웹사이트의 상태를 기록하므로 웹사이트의 가용성을 모니터링할 수 있습니다.
다음은 하트비트 기능의 기본 예입니다.
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. 하트비트 예약
가동 시간을 지속적으로 모니터링하려면 정기적인 간격으로 하트비트를 보내는 것이 좋습니다. setInterval를 사용하여 sendHeartbeat 기능을 주기적으로 실행하면 이를 달성할 수 있습니다. 다음은 5분마다 웹사이트를 확인하는 예입니다.
const urlToMonitor = "https://example.com"; // Replace with your website URL
const interval = 5 * 60 * 1000; // 5 minutes in milliseconds
setInterval(() => {
sendHeartbeat(urlToMonitor);
}, interval);
5. 쿼리 가동 시간
충분한 데이터를 기록한 후에는 Telemetry의 쿼리 API를 사용하여 쿼리하여 웹사이트의 가동 시간을 분석할 수 있습니다. 예를 들어 웹사이트가 온라인에 있었던 시간의 비율을 계산할 수 있습니다.
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. Telemetry의 가동 시간 살펴보기
Telemetry의 UI를 사용하면 가동 시간 데이터를 대화형으로 시각화하고 탐색할 수 있습니다. Telemetry 대시보드를 방문하여 자격 증명으로 로그인하여 가동 시간 모니터링 데이터를 기반으로 대시보드, 차트 등을 만드세요.
다음 단계
가동 시간 비율은 실행이 중지된 모니터를 감지할 수 없습니다. 누락된 하트비트 레시피를 추가하고 최신 검사가 예상 일정보다 오래되고 약간의 유예 기간이 더해진 경우 알림합니다.