Web サイトの稼働時間を監視する
ハートビートは、成功したチェックと失敗したチェックの両方を記録します。これにより、停止が可視化されるだけでなく、監視ジョブ自体がいつデータ送信を停止するかも明らかになります。
定期的なチェックにより、ダウンタイムと予期せぬ沈黙がクエリ可能なイベントに変わります。
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 サービスに定期的に ping を送信するハートビート機能を設定できます。ハートビートは Web サイトのステータスを記録し、Web サイトの可用性を監視できるようにします。
ハートビート関数の基本的な例を次に示します。
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 定期的に機能します。 Web サイトを 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 を使用してデータをクエリし、Web サイトの稼働時間を分析できます。たとえば、Web サイトがオンラインだった時間の割合を計算できます。
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 ダッシュボード 資格情報を使用してログインし、稼働時間監視データに基づいてダッシュボードやグラフなどを作成します。
次のステップ
稼働時間のパーセンテージでは、実行が停止したモニターを検出できません。を追加します。 失われたハートビートのレシピ 最新のチェックが予想されるスケジュールに少しの猶予期間を加えたものよりも古い場合に警告します。