Monitore seus sites, mostre o status, incluindo o histórico diário, e receba notificações do Slack sempre que o status do seu site mudar. Usando Cloudflare Workers , CRON Triggers e armazenamento KV . Verifique minha página de status!
Você precisará de uma conta Cloudflare Workers com
Além disso, prepare os seguintes segredos
Edit Cloudflare Workers
Você pode implantar com o Cloudflare Deploy Button usando GitHub Actions ou implantar por conta própria.
Clique no botão e siga as instruções, você deverá obter um clone deste repositório
Navegue até seu novo repositório GitHub > Configurações > Segredos e adicione os seguintes segredos:
- 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
Navegue até as configurações de Ações em seu repositório e habilite-as
Edite config.yaml para ajustar a configuração e listar todos os seus sites/APIs que você deseja monitorar
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
Envie para o branch main
para acionar a implantação
?
(opcional) Acesse as configurações do Cloudflare Workers e atribua um domínio/rota personalizado
status-page.eidam.dev/*
(certifique-se de incluir /*
, pois o Worker também fornece arquivos estáticos)(opcional) Edite wrangler.toml para ajustar as configurações do Worker ou a programação do CRON Trigger, especialmente se você estiver no plano Workers Free
Para ativar as notificações de telegrama, você precisará realizar algumas etapas adicionais.
SECRET_TELEGRAM_API_TOKEN
em seu repositório github./start
)curl https://api.telegram.org/bot/getUpdates | jq '.result[0] .message .chat .id'
SECRET_TELEGRAM_CHAT_ID
Você mesmo pode clonar o repositório e usar o Wrangler CLI para desenvolver/implantar uma lista extra de coisas que você precisa cuidar:
KV_STATUS_PAGE
ao wrangler.tomlSECRET_SLACK_WEBHOOK_URL
SECRET_DISCORD_WEBHOOK_URL
O plano Workers Free inclui uso limitado de KV, mas a cota é suficiente apenas para verificações de 2 minutos
crons = ["*/2 * * * *"]
) em wrangler.toml Máximo de 25 monitores para monitorar caso você esteja usando notificações do Slack , devido ao limite de subsolicitações que o Cloudflare Worker pode fazer (50).
O plano é oferecer suporte a até 49 enviando apenas uma notificação do Slack por execução agendada.
Atraso de replicação KV - Você pode receber uma notificação do Slack instantaneamente, no entanto, pode levar mais alguns segundos para ver a mudança em sua página de status, já que os Cron Triggers geralmente estão sendo executados em máquinas subutilizadas em horários silenciosos.
Atraso inicial (sem dados) - Demora alguns minutos para agendar e executar CRON Triggers pela primeira vez
WIP – Suporte para objetos duráveis – produto da Cloudflare para coordenação de baixa latência e armazenamento consistente para a plataforma Workers. Existe um protótipo funcional, porém, estamos aguardando pelo menos um beta aberto.
Existe também uma versão gerenciada deste projeto, atualmente em beta. Sinta-se à vontade para conferir https://statusflare.com (https://twitter.com/statusflare_com).
Requisitos
npm i -g yarn
)Instalar o wrangler
npm i -g wrangler
Faça login com Wrangler no Cloudflare
wrangler login
Crie seu namespace KV no cloudflare
On the workers page navigate to KV, and create a namespace
Atualize seu wrangler.toml com
kv-namespaces = [{binding="KV_STATUS_PAGE", id="", preview_id=""}]
Nota: pode ser necessário alterar kv-namespaces
para kv_namespaces
Instalar pacotes
yarn install
Criar CSS
yarn run css
Correr
yarn run dev
Nota: Se os estilos não aparecerem, tente usar localhost:8787
em vez de localhost:8080