CloudGrains logo
Open Sourcev1.1.0MIT LicenseFree ForeverKubernetes 1.25+

Monitoring PackKubernetes Website & SSL Monitoring — Self-Hosted

A production-ready Helm chart that deploys Prometheus, Grafana, Alertmanager, and Blackbox Exporter in one command. SLO/error budget alerting, HA StatefulSets, maintenance windows, 14 alert rules, 8 notification channels — zero SaaS fees.

Deploy in one command

$helm install website-monitor . --namespace monitoring \
--create-namespace --set grafana.adminPassword=<pw>
Helm 3.8+Kubernetes 1.25+

All data stays inside your cluster. No cloud account or API keys needed.

  1. 1Clone from GitHub
  2. 2Edit values.yaml — add your website URLs, webhooks, and SLO targets
  3. 3Run helm install — Grafana dashboard is live in under 2 minutes

Built by CloudGrains · Kolhapur, India

Grafana — Website Monitoring Dashboard
● Live
12 / 12
Sites Up
47 days
SSL Expiry
142 ms
Avg Latency
🎯 SLO & Error Budget
example.com99.97%82.1% budget
api.example.com99.91%63.4% budget
Alert Rules (0 firing / 14 total)
WebsiteDowninactive
SSLCertExpiringSoonpending
ErrorBudgetBurnFastinactive
14
Pre-built alert rules
8
Notification channels
10
Grafana dashboard sections
Free
MIT license, self-hosted
What you get

Production monitoring, pre-configured and ready to deploy

No manual Prometheus scrape configs, no Grafana JSON imports, no alert YAML — everything is bundled and wired up out of the box.

SLO & Error Budget Alerting

Multi-window multi-burn-rate alerts (Google SRE workbook-style). ErrorBudgetBurnFast catches fast burns within 2 min; ErrorBudgetBurnSlow catches slow steady burns. Dashboard shows remaining budget per target.

SSL Certificate Monitoring

Alerts at 30 days and 7 days before expiry. Dashboard shows SSL expiry countdown, TLS version per target, and full probe timing — DNS, TCP, TLS handshake, server response, transfer.

8 Notification Channels

Slack, Email, Discord, Teams, Telegram, PagerDuty, Opsgenie, and generic webhook — all configured in values.yaml. Critical alerts auto-escalate after N minutes if unresolved.

High Availability

Prometheus and Alertmanager run as StatefulSets. Set replicaCount: 2 for HA — Alertmanager replicas gossip-cluster so you get deduplication, not duplicate pages.

Maintenance Windows

Configure recurring silence windows in values.yaml using Alertmanager's native time_intervals. No Alertmanager UI clicks needed — weekly, monthly, or date-range windows all supported.

Self-Hosted — Zero SaaS

All metrics, dashboards, and alerts stay inside your Kubernetes cluster. No external vendor, no per-site pricing. Public status page mode included — expose Grafana anonymously for your users.

Alert rules

14 pre-built alert rules — all thresholds configurable

All thresholds are set in values.yaml. Inhibition rules automatically suppress noise when WebsiteDown fires.

GroupAlertFires whenSeverity
AvailabilityWebsiteDownUnreachable for 1 minCritical
AvailabilitySlowResponseTimeWarningResponse > 2s for 3 minWarning
AvailabilitySlowResponseTimeCriticalResponse > 5s for 1 minCritical
AvailabilityUnexpectedHTTPStatusHTTP ≥ 400 for 2 minWarning
SSLSSLCertExpiringSoonExpires in < 30 daysWarning
SSLSSLCertExpiringCriticalExpires in < 7 daysCritical
SSLSSLCertExpiredCertificate has expiredCritical
SSLSSLProbeFailedNo TLS connection for 5 minCritical
TCP/DNS/ICMPTCPConnectionFailedCannot connect for 2 minCritical
TCP/DNS/ICMPDNSResolutionFailedDNS lookup fails for 2 minCritical
TCP/DNS/ICMPICMPProbeFailedPing fails for 5 minWarning
HealthBlackboxExporterDownExporter unreachable for 2 minCritical
SLOErrorBudgetBurnFast>14.4x burn rate (1h + 5m windows)Critical
SLOErrorBudgetBurnSlow>6x burn rate (6h + 30m windows)Warning
The stack

Built on proven open-source monitoring tools

Monitoring Pack bundles four components and wires them together — StatefulSets for HA, gossip clustering for Alertmanager, PVCs that survive upgrades.

Prometheus

Metrics storage & SLO evaluation

StatefulSet with one PVC per replica. Scrapes Blackbox every 60s, evaluates 14 alert rules every 30s, keeps up to 30 days of history.

Grafana

10-section monitoring dashboard

Pre-built dashboard auto-provisioned on start. Includes SLO & Error Budget row, latency percentiles, SSL expiry gauges, and uptime state timeline.

Alertmanager

Routing, inhibition & escalation

StatefulSet with gossip clustering for HA deduplication. Routes 8 channels, applies inhibition rules, handles maintenance windows and escalation.

Blackbox Exporter

HTTP, SSL, TCP, DNS, ICMP probes

Makes real HTTP/HTTPS requests to your sites every 60s. Reports probe success, full phase timing, SSL certificate validity and expiry days.

FAQ

Frequently asked questions about Monitoring Pack

How do I install Monitoring Pack?

Create a namespace, then run: helm install website-monitor . --namespace monitoring --create-namespace --set grafana.adminPassword=your-password. All four components — Prometheus, Grafana, Alertmanager, and Blackbox Exporter — come up within 60–90 seconds. Access Grafana via kubectl port-forward.

What are the Kubernetes and Helm version requirements?

Monitoring Pack requires Kubernetes 1.25 or higher and Helm 3.8 or higher. It is tested on EKS, GKE, AKS, k3s, and local clusters created with Kind or Minikube.

Does Monitoring Pack support SLO and error budget alerting?

Yes. Enable slo.enabled: true in values.yaml and set your availability target (e.g. objectivePercent: 99.9). Monitoring Pack adds Google SRE workbook-style multi-window multi-burn-rate alerts: ErrorBudgetBurnFast fires when burning the budget >14.4x the sustainable rate, and ErrorBudgetBurnSlow fires at >6x. The Grafana dashboard includes a dedicated SLO & Error Budget row showing remaining budget and a compliance table sorted worst-first.

Does Monitoring Pack support high availability?

Yes. Prometheus and Alertmanager run as StatefulSets with one PVC per replica. Set prometheus.replicaCount: 2 and alertmanager.replicaCount: 2 (or 3) in values.yaml. Alertmanager replicas form a real gossip cluster so duplicate notifications are deduplicated across replicas.

What notification channels does Monitoring Pack support?

Monitoring Pack supports 8 notification channels: Slack, Email (any SMTP provider), Discord, Microsoft Teams, Telegram, PagerDuty, Opsgenie, and a generic webhook for tools like Jira Service Management or ServiceNow. All channels are configured in values.yaml — no manual Alertmanager config files needed.

How do I set up maintenance windows to suppress alerts?

Configure maintenanceWindows in values.yaml. Each entry uses Alertmanager's native time_intervals — specify weekdays, times, months, or specific day ranges. Alerts still evaluate during the window and remain visible in the Prometheus/Alertmanager UIs; only notification delivery is muted. For one-off windows, use an Alertmanager silence instead.

Does Monitoring Pack work with an existing kube-prometheus-stack?

Yes. Disable the standalone Prometheus, Grafana, and Alertmanager (set each enabled: false), then enable serviceMonitor.enabled: true and prometheusRule.enabled: true with labels matching your Prometheus CR's serviceMonitorSelector. Alternatively, use probe.enabled: true for the Probe CRD approach available in prometheus-operator v0.47+.

Can Monitoring Pack monitor authenticated endpoints?

Yes. Set headers, bearerToken, or basicAuth on any target in values.yaml. Monitoring Pack generates a dedicated Blackbox Exporter module per authenticated target automatically — no manual ConfigMap editing needed.

Can I create a public status page with Monitoring Pack?

Yes. Set grafana.statusPage.enabled: true and configure grafana.ingress to expose Grafana publicly. Visitors land on the Website Monitoring Dashboard with no login. Note: anonymous access is org-wide in Grafana — only enable this on a dedicated Grafana instance with nothing else sensitive in it.

Deploy Monitoring Pack in minutes

SLO alerting, HA StatefulSets, 8 notification channels. One Helm chart, zero SaaS.

helm install website-monitor . --namespace monitoring --create-namespace