Überwachen Sie Ihre Websites, zeigen Sie den Status einschließlich des täglichen Verlaufs an und erhalten Sie Slack-Benachrichtigungen, wenn sich der Status Ihrer Website ändert. Verwendung von Cloudflare Workers , CRON-Triggern und KV-Speicher . Schauen Sie sich meine Statusseite an!
Sie benötigen ein Cloudflare Workers-Konto bei
Bereiten Sie außerdem die folgenden Geheimnisse vor
Edit Cloudflare Workers
Sie können die Bereitstellung entweder mit dem Cloudflare Deploy Button mithilfe von GitHub Actions oder selbst durchführen.
Klicken Sie auf die Schaltfläche und befolgen Sie die Anweisungen. Sie sollten am Ende einen Klon dieses Repositorys erhalten
Navigieren Sie zu Ihrem neuen GitHub-Repository > Einstellungen > Secrets und fügen Sie die folgenden Secrets hinzu:
- Name : CF_API_TOKEN (should be added automatically)
- Name : CF_ACCOUNT_ID (should be added automatically)
- Name : SECRET_SLACK_WEBHOOK_URL (optional)
- Value : your-slack-webhook-url
- Name : SECRET_DISCORD_WEBHOOK_URL (optional)
- Value : your-discord-webhook-url
Navigieren Sie zu den Aktionseinstellungen in Ihrem Repository und aktivieren Sie sie
Bearbeiten Sie config.yaml, um die Konfiguration anzupassen und alle Ihre Websites/APIs aufzulisten, die Sie überwachen möchten
settings :
title : ' Status Page '
url : ' https://status-page.eidam.dev ' # used for Slack & Discord messages
logo : logo-192x192.png # image in ./public/ folder
daysInHistogram : 90 # number of days you want to display in histogram
collectResponseTimes : false # experimental feature, enable only for <5 monitors or on paid plans
# configurable texts across the status page
allmonitorsOperational : ' All Systems Operational '
notAllmonitorsOperational : ' Not All Systems Operational '
monitorLabelOperational : ' Operational '
monitorLabelNotOperational : ' Not Operational '
monitorLabelNoData : ' No data '
dayInHistogramNoData : ' No data '
dayInHistogramOperational : ' All good '
dayInHistogramNotOperational : ' Some checks failed '
# list of monitors
monitors :
- id : workers-cloudflare-com # unique identifier
name : workers.cloudflare.com
description : ' You write code. They handle the rest. ' # default=empty
url : ' https://workers.cloudflare.com/ ' # URL to fetch
method : GET # default=GET
expectStatus : 200 # operational status, default=200
followRedirect : false # should fetch follow redirects, default=false
linkable : false # should the titles be links to the service, default=true
Push zum main
, um die Bereitstellung auszulösen
?
(optional) Gehen Sie zu den Cloudflare Workers-Einstellungen und weisen Sie eine benutzerdefinierte Domäne/Route zu
status-page.eidam.dev/*
(stellen Sie sicher, dass Sie /*
einschließen, da der Worker auch statische Dateien bereitstellt)(optional) Bearbeiten Sie wrangler.toml, um die Worker-Einstellungen oder den CRON-Trigger-Zeitplan anzupassen, insbesondere wenn Sie den Workers Free-Plan nutzen
Um Telegrammbenachrichtigungen zu aktivieren, müssen Sie einige zusätzliche Schritte ausführen.
SECRET_TELEGRAM_API_TOKEN
in Ihrem Github-Repository fest./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
festSie können das Repository selbst klonen und die Wrangler-CLI zum Entwickeln/Bereitstellen verwenden. Eine zusätzliche Liste von Dingen, um die Sie sich kümmern müssen:
KV_STATUS_PAGE
-Bindung zu wrangler.toml hinzuSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
Der Workers Free-Plan beinhaltet eine begrenzte KV-Nutzung, das Kontingent reicht jedoch nur für 2-Minuten-Prüfungen
crons = ["*/2 * * * *"]
). Maximal 25 Monitore zum Überwachen, falls Sie Slack-Benachrichtigungen verwenden , aufgrund der Begrenzung der Unteranfragen, die Cloudflare Worker stellen kann (50).
Der Plan sieht vor, bis zu 49 zu unterstützen, indem nur eine Slack-Benachrichtigung pro geplanter Ausführung gesendet wird.
KV-Replikationsverzögerung – Möglicherweise erhalten Sie sofort eine Slack-Benachrichtigung, es kann jedoch einige Sekunden länger dauern, bis die Änderung auf Ihrer Statusseite angezeigt wird, da Cron-Trigger normalerweise auf nicht ausgelasteten Rechnern mit geringer Auslastung ausgeführt werden.
Anfängliche Verzögerung (keine Daten) – Es dauert einige Minuten, CRON-Trigger zum ersten Mal zu planen und auszuführen
WIP – Unterstützung für langlebige Objekte – Cloudflares Produkt für Koordination mit geringer Latenz und konsistenten Speicher für die Workers-Plattform. Es gibt einen funktionierenden Prototyp, wir warten jedoch zumindest auf die offene Beta.
Es gibt auch eine verwaltete Version dieses Projekts, derzeit in der Betaphase. Schauen Sie sich gerne https://statusflare.com (https://twitter.com/statusflare_com) an.
Anforderungen
npm i -g yarn
)Wrangler installieren
npm i -g wrangler
Melden Sie sich mit Wrangler bei Cloudflare an
wrangler login
Erstellen Sie Ihren KV-Namespace in Cloudflare
On the workers page navigate to KV, and create a namespace
Aktualisieren Sie Ihre wrangler.toml mit
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
Hinweis: Möglicherweise müssen Sie kv-namespaces
in kv_namespaces
ändern
Pakete installieren
yarn install
Erstellen Sie CSS
yarn run css
Laufen
yarn run dev
Hinweis: Wenn die Stile nicht durchkommen, versuchen Sie es mit localhost:8787
anstelle von localhost:8080