راقب مواقع الويب الخاصة بك واعرض الحالة بما في ذلك السجل اليومي واحصل على إشعار Slack كلما تغيرت حالة موقع الويب الخاص بك. استخدام عمال Cloudflare ومشغلات CRON وتخزين KV . تحقق من صفحة الحالة الخاصة بي!
ستحتاج إلى حساب Cloudflare Workers مع
قم أيضًا بإعداد الأسرار التالية
Edit Cloudflare Workers
يمكنك إما النشر باستخدام زر Cloudflare Deploy باستخدام GitHub Actions أو النشر بنفسك.
انقر فوق الزر واتبع التعليمات، ومن المفترض أن ينتهي بك الأمر بنسخة من هذا المستودع
انتقل إلى مستودع GitHub الجديد > الإعدادات > الأسرار وأضف الأسرار التالية:
- 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
انتقل إلى إعدادات الإجراءات في المستودع الخاص بك وقم بتمكينها
قم بتحرير config.yaml لضبط التكوين وإدراج جميع مواقع الويب/واجهات برمجة التطبيقات التي تريد مراقبتها
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
ادفع إلى الفرع main
لبدء النشر
؟
(اختياري) انتقل إلى إعدادات Cloudflare Workers وقم بتعيين المجال/المسار المخصص
status-page.eidam.dev/*
(تأكد من تضمين /*
لأن العامل يخدم أيضًا الملفات الثابتة)(اختياري) قم بتحرير wrangler.toml لضبط إعدادات العامل أو جدول CRON Trigger، خاصة إذا كنت مشتركًا في خطة Workers Free
لتمكين إشعارات البرقية، ستحتاج إلى اتخاذ بعض الخطوات الإضافية.
SECRET_TELEGRAM_API_TOKEN
في مستودع github الخاص بك./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
يمكنك استنساخ المستودع بنفسك واستخدام Wrangler CLI لتطوير/نشر قائمة إضافية بالأشياء التي تحتاج إلى الاهتمام بها:
KV_STATUS_PAGE
إلى wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
تتضمن خطة العمال المجانية استخدامًا محدودًا لـ KV، لكن الحصة تكفي لعمليات فحص مدتها دقيقتين فقط
crons = ["*/2 * * * *"]
) في wrangler.toml 25 شاشة بحد أقصى يمكنك مشاهدتها في حالة استخدام إشعارات Slack ، نظرًا للحد الأقصى للطلبات الفرعية التي يمكن لعامل Cloudflare إجراؤها (50).
تتمثل الخطة في دعم ما يصل إلى 49 عن طريق إرسال إشعار Slack واحد فقط لكل عملية تشغيل مجدولة.
تأخر النسخ المتماثل KV - قد تحصل على إشعار Slack على الفور، ومع ذلك قد يستغرق الأمر بضع ثوانٍ إضافية لرؤية التغيير على صفحة الحالة الخاصة بك حيث يتم تشغيل Cron Triggers عادةً على أجهزة ساعات هادئة غير مستغلة بشكل كافٍ.
التأخير الأولي (لا توجد بيانات) - يستغرق الأمر بضع دقائق لجدولة مشغلات CRON وتشغيلها لأول مرة
WIP - دعم الكائنات المعمرة - منتج Cloudflare للتنسيق منخفض زمن الوصول والتخزين المتسق لمنصة العمال. يوجد نموذج أولي صالح للعمل، لكننا في انتظار النسخة التجريبية المفتوحة على الأقل.
هناك أيضًا نسخة مُدارة من هذا المشروع، حاليًا في مرحلة تجريبية. لا تتردد في التحقق من ذلك https://statusflare.com (https://twitter.com/statusflare_com).
متطلبات
npm i -g yarn
)قم بتثبيت رانجلر
npm i -g wrangler
قم بتسجيل الدخول باستخدام Wrangler إلى Cloudflare
wrangler login
قم بإنشاء مساحة اسم KV الخاصة بك في cloudflare
On the workers page navigate to KV, and create a namespace
قم بتحديث ملف wrangler.toml الخاص بك باستخدام
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
ملاحظة: قد تحتاج إلى تغيير kv-namespaces
إلى kv_namespaces
تثبيت الحزم
yarn install
إنشاء CSS
yarn run css
يجري
yarn run dev
ملاحظة: إذا لم تظهر الأنماط، فحاول استخدام localhost:8787
بدلاً من localhost:8080