Live Demo

20 Hours of SRE Work
in 5 Minutes

Define your service once. NthLayer generates SLOs, alerts, dashboards,
recording rules, and runbooksβ€”with technology-specific best practices built in.

⚑ 99.6% Time Savings
🧠 Tech-Aware (PostgreSQL, Redis, Kafka)
🎯 One Command for Everything
πŸ“Š Real-Time Error Budget Tracking

The Impact

What you get from one YAML file

20 hrs β†’ 5 min
Time Savings
99.6% reduction in setup time
28+
Alerts Generated
Technology-specific, best practices
12+
Dashboard Panels
SLO tracking, health, dependencies
7 β†’ 1
Commands
Unified Terraform-style workflow

See It In Action

Watch NthLayer transform a service definition into complete observability

1

Define Your Service

Simple YAML file describing your service and dependencies:

service:
  name: payment-api
  tier: critical
  description: Payment processing service
  
  dependencies:
    databases:
      - type: postgresql
        name: payments-db
      - type: redis
        name: session-cache
    
    external:
      - name: stripe-api
        critical: true
2

Run One Command

Generate everything with a single unified command:

$ nthlayer apply payment-api.yaml

πŸš€ Analyzing service: payment-api

βœ… [1/5] SLOs          β†’ 3 created
  β€’ availability (99.9%)
  β€’ latency-p95 (500ms)
  β€’ latency-p99 (1000ms)

βœ… [2/5] Alerts        β†’ 28 created
  β€’ 8 SLO burn rate alerts
  β€’ 6 service health alerts
  β€’ 14 dependency alerts

βœ… [3/5] Dashboard     β†’ 1 created
  β€’ 12 panels (health, SLOs, dependencies)
  β€’ Auto-configured for Grafana

βœ… [4/5] Recording     β†’ 21 created
  β€’ 10x faster dashboard queries

βœ… [5/5] PagerDuty     β†’ configured
  β€’ Team, schedules, escalation policy
  β€’ Tier-based timing (5/15/30min for critical)

✨ Done in 2.3s
3

View Live Dashboard

Real dashboard running in Grafana Cloud, powered by live metrics from our demo app:

Click any service to view its auto-generated Grafana dashboard

🚨 Auto-Generated Prometheus Alerts

118 production-ready alerts across 6 services, sourced from awesome-prometheus-alerts

Click any service to view its generated Prometheus alert rules on GitHub

πŸš€ Deploy Your Alerts

Generated alerts are standard Prometheus format β€” deploy anywhere

Using Prometheus Operator? Apply as a PrometheusRule CRD:

# Wrap in PrometheusRule CRD
cat <<EOF | kubectl apply -f -
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: payment-api-alerts
  labels:
    release: prometheus
spec:
$(cat generated/payment-api/alerts.yaml | sed 's/^/  /')
EOF

Push directly to Grafana Mimir or Cortex ruler:

# Using mimirtool
mimirtool rules load \
  --address=https://mimir.example.com \
  --id=your-tenant \
  generated/payment-api/alerts.yaml

# Or via API
curl -X POST https://mimir.example.com/prometheus/config/v1/rules/payment-api \
  -H "X-Scope-OrgID: your-tenant" \
  --data-binary @generated/payment-api/alerts.yaml

Commit to your GitOps repo β€” ArgoCD or Flux handles the rest:

# Add to your GitOps repository
cp generated/payment-api/alerts.yaml \
   k8s/monitoring/rules/payment-api.yaml

git add k8s/monitoring/rules/
git commit -m "Add payment-api alerting rules"
git push

# ArgoCD/Flux automatically syncs to cluster
# No manual kubectl required!

Traditional Prometheus? Copy to rules directory and reload:

# Copy to Prometheus rules directory
cp generated/payment-api/alerts.yaml \
   /etc/prometheus/rules/payment-api.yaml

# Validate syntax
promtool check rules /etc/prometheus/rules/*.yaml

# Reload Prometheus config
curl -X POST http://localhost:9090/-/reload

πŸ“Ÿ PagerDuty Integration

Complete incident response setup with tier-based escalation policies

πŸ‘₯
Team Management

Auto-creates teams with manager roles assigned to API key owner

πŸ“…
On-Call Schedules

Primary, secondary, and manager schedules with weekly rotation

⏱️
Tier-Based Timing

Critical: 5β†’15β†’30min | High: 15β†’30β†’60min | Low: 60min only

πŸ”—
Service Linking

Services linked to escalation policies with urgency settings

PagerDuty Team with Manager Role

Team with manager role

Tier-Based Escalation Policy

Tier-based escalation (5/15/30min)

PagerDuty Service Configuration

Service linked to policy

Support Models
self Team handles all alerts 24/7
shared Team (day) + SRE (off-hours)
sre SRE handles all alerts
business_hours Team (9-5) + low-priority queue
🎯 Unified Workflow Benefits:
  • Everything generated from the same source (guaranteed consistency)
  • Alerts automatically match SLO thresholds
  • Dashboard panels linked to relevant alerts
  • Recording rules optimize dashboard performance
  • One command updates everything when service changes
4

Explore What Was Generated

πŸ“Š

Dashboard

22 panels covering health, SLOs, latency, errors, and dependencies

View JSON β†’
🎯

SLOs

3 SLOs with 30-day error budgets and burn rate calculations

View YAML β†’
🚨

Alerts

15 PostgreSQL alerts with service labels and severity routing

View YAML β†’
⚑

Recording Rules

21 pre-aggregated metrics for 10x faster dashboard queries

View YAML β†’

Get Started

Install NthLayer and generate your first reliability stack in minutes:

1
pipx install nthlayer
Alpha
2
nthlayer init my-service --template api
3
nthlayer apply my-service.yaml

Or install with pip: pip install nthlayer