Контролируйте свои веб-сайты, демонстрируйте статус, включая ежедневную историю, и получайте уведомления Slack при каждом изменении статуса вашего веб-сайта. Использование Cloudflare Workers , CRON Triggers и KV-хранилища . Проверьте мою страницу статуса!
Вам понадобится учетная запись Cloudflare Workers с
Также подготовьте следующие секреты
Edit Cloudflare Workers
Вы можете выполнить развертывание с помощью кнопки Cloudflare Deploy Button с помощью действий GitHub или выполнить развертывание самостоятельно.
Нажмите кнопку и следуйте инструкциям. В итоге у вас должен получиться клон этого репозитория.
Перейдите в новый репозиторий 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, чтобы настроить конфигурацию и перечислить все ваши веб-сайты/API, которые вы хотите отслеживать.
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/*
(убедитесь, что вы включили /*
, так как Worker также обслуживает статические файлы)(необязательно) Отредактируйте wrangler.toml, чтобы настроить параметры Worker или расписание триггеров CRON, особенно если вы используете план Workers Free.
Чтобы включить уведомления Telegram, вам необходимо выполнить несколько дополнительных шагов.
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
План Workers Free включает ограниченное использование KV, но квота достаточна только для 2-минутных проверок.
crons = ["*/2 * * * *"]
) в wrangler.toml. Максимум 25 мониторов для просмотра, если вы используете уведомления Slack , из-за ограничения количества подзапросов, которые может выполнить Cloudflare Worker (50).
Планируется поддерживать до 49, отправляя только одно уведомление Slack за каждый запланированный запуск.
Задержка репликации KV . Вы можете получить уведомление Slack мгновенно, однако для того, чтобы увидеть изменение на странице состояния, может потребоваться еще несколько секунд, поскольку триггеры Cron обычно работают на малоиспользуемых машинах в тихие часы.
Начальная задержка (нет данных) . Для планирования и первого запуска триггеров CRON требуется несколько минут.
WIP — Поддержка устойчивых объектов — продукт Cloudflare для координации с малой задержкой и согласованного хранения данных для платформы Workers. Рабочий прототип есть, однако ждем хотя бы открытого бета-тестирования.
Существует также управляемая версия этого проекта, которая в настоящее время находится в стадии бета-тестирования. Не стесняйтесь проверить это https://statusflare.com (https://twitter.com/statusflare_com).
Требования
npm i -g yarn
)Установить вранглер
npm i -g wrangler
Войдите в Cloudflare с помощью Wrangler
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