chore: readme collectResponseTimes example

This commit is contained in:
Adam Janis 2020-11-22 15:40:28 +01:00
parent c5eb49cf01
commit 3ed15409b5
5 changed files with 20 additions and 8 deletions

View File

@ -38,6 +38,7 @@ jobs:
SECRET_TELEGRAM_CHAT_ID
environment: production
env:
NODE_ENV: production
CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}
SECRET_SLACK_WEBHOOK_URL: ${{secrets.SECRET_SLACK_WEBHOOK_URL}}
SECRET_TELEGRAM_API_TOKEN: ${{secrets.SECRET_TELEGRAM_API_TOKEN}}

View File

@ -49,6 +49,7 @@ You can either deploy with **Cloudflare Deploy Button** using GitHub Actions or
url: 'https://status-page.eidam.dev' # used for Slack 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'

View File

@ -39,7 +39,8 @@ export default function MonitorHistogram({ monitorId, kvMonitor }) {
<span className="font-semibold text-sm">
{dayInHistogramLabel}
</span>
{kvMonitor && kvMonitor.checks.hasOwnProperty(dayInHistogram) &&
{kvMonitor &&
kvMonitor.checks.hasOwnProperty(dayInHistogram) &&
Object.keys(kvMonitor.checks[dayInHistogram].res).map((key) => {
return (
<>

View File

@ -79,9 +79,11 @@ export async function processCronTrigger(event) {
// Send Telegram message on monitor change
if (
monitorStatusChanged
&& typeof SECRET_TELEGRAM_API_TOKEN !== 'undefined' && SECRET_TELEGRAM_API_TOKEN !== 'default-gh-action-secret'
&& typeof SECRET_TELEGRAM_CHAT_ID !== 'undefined' && SECRET_TELEGRAM_CHAT_ID !== 'default-gh-action-secret'
monitorStatusChanged &&
typeof SECRET_TELEGRAM_API_TOKEN !== 'undefined' &&
SECRET_TELEGRAM_API_TOKEN !== 'default-gh-action-secret' &&
typeof SECRET_TELEGRAM_CHAT_ID !== 'undefined' &&
SECRET_TELEGRAM_CHAT_ID !== 'default-gh-action-secret'
) {
event.waitUntil(notifyTelegram(monitor, monitorOperational))
}

View File

@ -13,7 +13,7 @@ export async function setKVMonitors(data) {
return setKV(kvDataKey, JSON.stringify(data))
}
const getOperationalLabel = operational => {
const getOperationalLabel = (operational) => {
return operational
? config.settings.monitorLabelOperational
: config.settings.monitorLabelNotOperational
@ -33,7 +33,9 @@ export async function notifySlack(monitor, operational) {
type: 'section',
text: {
type: 'mrkdwn',
text: `Monitor *${monitor.name}* changed status to *${getOperationalLabel(operational)}*`,
text: `Monitor *${
monitor.name
}* changed status to *${getOperationalLabel(operational)}*`,
},
},
{
@ -61,8 +63,13 @@ export async function notifySlack(monitor, operational) {
}
export async function notifyTelegram(monitor, operational) {
const text = `Monitor *${monitor.name.replace('-', '\\-')}* changed status to *${getOperationalLabel(operational)}*
${operational ? '✅' : '❌'} \`${monitor.method ? monitor.method : "GET"} ${monitor.url}\` \\- 👀 [Status Page](${config.settings.url})`
const text = `Monitor *${monitor.name.replace(
'-',
'\\-',
)}* changed status to *${getOperationalLabel(operational)}*
${operational ? '✅' : '❌'} \`${monitor.method ? monitor.method : 'GET'} ${
monitor.url
}\` \\- 👀 [Status Page](${config.settings.url})`
const payload = new FormData()
payload.append('chat_id', SECRET_TELEGRAM_CHAT_ID)