RADZOR
ComponentsRecipesDocsContributeGitHub
Get Started
RADZOR

The universal component registry for LLM-driven development. Empowering developers to build better apps, faster.

Product
  • Components
  • Standard
Resources
  • Documentation
  • API Reference
  • AI Agent Integration
  • Pipeline Guide
  • MCP Server
Community
  • GitHub
  • X / Twitter
  • Discord

© 2026 Radzor Registry. All rights reserved.

Cookbook
Advancedmonitoringmessagingdevops

Monitoring & AlertsAI Workflow

Production monitoring stack: health checks on dependencies, uptime monitoring on public endpoints, centralized error tracking — all funneled through a notification hub that fans out to Slack, email, and push.

Prerequisites

Environment variables

SENTRY_DSNSLACK_BOT_TOKENRESEND_KEY

Install

$npx radzor@latest recipe add monitoring-alerts

AI Prompt

“Run `npx radzor@latest add health-check uptime-monitor error-tracker notification-hub` to install 4 Radzor components. Then read components/radzor/health-check/radzor.manifest.json, components/radzor/uptime-monitor/radzor.manifest.json, components/radzor/error-tracker/radzor.manifest.json, components/radzor/notification-hub/radzor.manifest.json and each component's llm/integration.md. Wire them together to production monitoring stack: health checks on dependencies, uptime monitoring on public endpoints, centralized error tracking — all funneled through a notification hub that fans out to Slack, email, and push. Use the manifest's inputs (check envVar for required environment variables), outputs (check fields for object shapes), composability (check mapField for field extraction), and actions — don't invent custom interfaces.”

Paste this into Claude Code, Cursor, Windsurf, or any AI coding agent.

Pipeline

HealthChecker

Checks internal service health

→
↓
health status

UptimeMonitor

Monitors public endpoint availability

→
↓
down / recovered

ErrorTracker

Captures and reports exceptions

→
↓
error report

NotificationHub

Fans out alerts to Slack, email, and push

Scaffolded Code

monitoring-alerts-recipe.ts
// npx radzor@latest add health-check uptime-monitor error-tracker notification-hub
import { HealthChecker }    from "./components/radzor/health-check"
import { UptimeMonitor }    from "./components/radzor/uptime-monitor"
import { ErrorTracker }     from "./components/radzor/error-tracker"
import { NotificationHub }  from "./components/radzor/notification-hub"

const health = new HealthChecker({ intervalMs: 30_000, timeout: 5000 })
const uptime = new UptimeMonitor({ intervalMs: 60_000, timeout: 10_000, latencyThresholdMs: 2000 })
const errors = new ErrorTracker({ endpoint: process.env.SENTRY_DSN!, environment: "production" })
const alerts = new NotificationHub({ retryAttempts: 2 })

// Register notification channels
alerts.registerChannel("slack", "slack", { webhookUrl: process.env.SLACK_BOT_TOKEN! })
alerts.registerChannel("email", "email", { apiKey: process.env.RESEND_KEY!, from: "alerts@myapp.com" })

// Register health dependencies
health.registerDependency("postgres", async () => {
  const res = await fetch("http://localhost:5432")
  return res.ok
}, true)

health.registerDependency("redis", async () => {
  const res = await fetch("http://localhost:6379/ping")
  return res.ok
})

// Monitor public endpoints
uptime.addTarget("https://myapp.com", "homepage")
uptime.addTarget("https://api.myapp.com/health", "api")

// Wire events to notification hub
health.on("onUnhealthy", async (report) => {
  await alerts.send({
    title: "Health check failed",
    body: `Service unhealthy: ${report.status}. ${report.failedDeps?.join(", ") ?? ""}`,
    recipient: "oncall@myapp.com",
  })
})

uptime.on("onDown", async (event) => {
  await errors.captureMessage(`Endpoint down: ${event.url}`, "error")
  await alerts.send({
    title: `Endpoint down: ${event.name}`,
    body: `${event.url} returned ${event.statusCode ?? "no response"} — was up for ${event.uptimeHours}h`,
    recipient: "oncall@myapp.com",
  })
})

uptime.on("onRecovered", async (event) => {
  await alerts.send({
    title: `Recovered: ${event.name}`,
    body: `${event.url} is back up after ${event.downtimeMinutes}m downtime`,
    recipient: "oncall@myapp.com",
  })
})

errors.on("onErrorCaptured", async (report) => {
  await alerts.send({
    title: "Exception captured",
    body: `[${report.level}] ${report.message}`,
    recipient: "oncall@myapp.com",
  })
})

Components used

HealthCheckerChecks internal service health
View
UptimeMonitorMonitors public endpoint availability
View
ErrorTrackerCaptures and reports exceptions
View
NotificationHubFans out alerts to Slack, email, and push
View

LLM tip

Pass all 4 radzor.manifest.json files to your agent at once. It will read the outputs of each step and match them against the inputs of the next — wiring the full pipeline without any extra instructions.

health-check/manifest.jsonuptime-monitor/manifest.jsonerror-tracker/manifest.jsonnotification-hub/manifest.json