Skip to main content

Monitoring Overview

AlertifyPro monitors services — HTTP endpoints, databases, mail servers, raw TCP ports, DNS, and more. Each service is checked on a configurable schedule from the scheduler and results are stored as check logs.

Check statuses

StatusMeaning
🟢 GREENCheck passed within normal response time
🟡 YELLOWCheck passed but response time exceeded 1000ms (degraded)
🔴 REDCheck failed — connection refused, timeout, wrong response

How checking works

The AlertifyPro scheduler polls active services every 10 seconds and dispatches checks concurrently. Each check:

  1. Opens a connection to the service endpoint
  2. Performs the protocol-specific probe
  3. Records the result (status + response time ms + HTTP status code where applicable)
  4. Evaluates configured alert rules against the result

The check_interval_seconds field on each service controls how often it's actually checked (default: 60 seconds, minimum: 10 seconds from the scheduler poll rate).


Supported check types

check_typeWhat it checksEndpoint format
HTTP / HTTPSGET the URL, check responsehttps://api.example.com/health
TCP / TELNETTCP port reachable?host:port
PING / ICMPICMP pinghostname or IP
DNSHostname resolves?hostname
WEBSOCKET / WSWebSocket upgrade succeeds?wss://ws.example.com/feed
SMTPSMTP server responds with 220 greetingsmtp.example.com:587
IMAPIMAP server responds with * OKmail.example.com:993
FTPFTP server responds with 220 greetingftp.example.com:21
SSHSSH server responds with SSH bannerhost.example.com:22
REDISRedis responds to PING with +PONGredis.example.com:6379
MYSQL / MARIADBTCP port reachabledb.example.com:3306
MONGODB / MONGOTCP port reachablemongo.example.com:27017
POSTGRES / POSTGRESQLTCP port reachabledb.example.com:5432
GRPCTCP port reachablegrpc.example.com:50051

YELLOW threshold

A check returns YELLOW (degraded) if:

  • TCP checks: connection succeeds but takes > 1000ms
  • Redis check: ping succeeds but takes > 500ms
  • HTTP checks: response received but takes > 1000ms

Creating services (monitoring endpoints)

POST /api/v1/services
Authorization: Bearer <token>
Content-Type: application/json

{
"name": "Production Database",
"endpoint": "db.yourapp.com:5432",
"check_type": "POSTGRES",
"check_interval_seconds": 120,
"timeout_seconds": 10,
"environment": "production"
}

See the Services API → for the full reference.


Service configuration reference

FieldDefaultNotes
check_interval_seconds60How often to run a check
timeout_seconds10Max time allowed before RED
environmentLabel: production, staging, etc.
tags[]JSON array of string tags

Specialized monitor types


Scheduler details

The scheduler is a separate binary (cmd/scheduler) that:

  • Polls the database every 10 seconds for services due for a check
  • Runs checks concurrently (controlled by CONCURRENCY env var, default: 100)
  • Writes check results back to PostgreSQL
  • Evaluates alert rules and creates alert incidents as needed