The DevOps Dashboard: Uptime, CI/CD, and Incident Monitoring


Infrastructure engineers live in dashboards — Grafana, Datadog, PagerDuty, AWS Console. But you still open a new tab dozens of times a day and see nothing useful. This guide turns your Chrome new tab into a DevOps command center: service uptime at a glance, CI/CD pipeline health, server metrics, and incident alerts — all without opening a single extra tab or leaving your current context.

In this guide

  1. The recommended layout
  2. Uptime Monitor — your services at a glance
  3. CI/CD pipeline status from GitHub Actions
  4. Server health metrics via custom plugin
  5. Incident alerts from PagerDuty or Opsgenie
  6. Dependency releases — stay ahead of CVEs
  7. Command palette shortcuts for DevOps
  8. Automations for incident response

The recommended layout

For a DevOps/SRE workflow, a three-column approach works best: the left column shows real-time status (things that are broken or about to break), the center shows pipeline and deployment health, and the right column shows context and reference feeds.

Left — statusCenter — pipelinesRight — context
Uptime Monitor (production)GitHub Actions (main repo)GitHub Releases
Uptime Monitor (staging)GitHub Actions (infra repo)Hacker News
PagerDuty incidentsServer health (custom)Pomodoro

Create a new dashboard (the + button in the dashboard tab bar), name it "Ops", then add each widget from the widget picker. Drag to position and resize by pulling the bottom-right corner of each widget card.

Pro tip: Create a second dashboard called "Dev" for your coding workflow. Use Ctrl+Alt+] to cycle between your Ops and Dev dashboards instantly — no mouse needed.

Uptime Monitor — your services at a glance

The Uptime Monitor widget sends HEAD requests to a list of URLs you configure and shows a colour-coded status indicator with response time for each endpoint:

  • 🟢 Green — 2xx status within 8 seconds
  • 🟡 Amber — response time above 1000ms (slow but alive)
  • 🔴 Red — error, timeout, or non-2xx status

For DevOps, split your monitoring into two separate Uptime widgets — one for production, one for staging/internal:

Production widgetStaging / internal widget
https://yourapp.comhttps://staging.yourapp.com
https://api.yourapp.com/healthhttp://internal.corp:8080/ping
https://cdn.yourapp.comhttp://localhost:3000
https://auth.yourapp.com/.well-known/openid-configurationhttps://grafana.internal.corp

Because requests come from your browser, private staging servers behind your VPN, internal services on private IPs, and even localhost ports all work — no firewall exceptions or external monitoring agents needed.

CI/CD pipeline status from GitHub Actions

Use a custom plugin widget to pull the latest GitHub Actions workflow runs. Point it at:

https://api.github.com/repos/your-org/your-repo/actions/runs?per_page=5

In the field mapping, extract these values:

JSON pathDisplay labelNotes
workflow_runs[0].nameWorkflowThe workflow name (e.g., "CI", "Deploy")
workflow_runs[0].statusStatuscompleted, in_progress, queued
workflow_runs[0].conclusionResultsuccess, failure, cancelled
workflow_runs[0].head_branchBranchWhich branch triggered the run
workflow_runs[0].created_atStartedISO timestamp of the run

Set threshold colors so failure turns the value red and success turns it green. Now every new tab shows you whether the last deploy succeeded or failed — no need to open the Actions tab on GitHub.

Multiple repos: Add a second custom plugin widget for your infrastructure/Terraform repo. Having both your application CI and your infra CI visible side by side catches drift between what's deployed and what's declared.

Server health metrics via custom plugin

If you expose a health or metrics endpoint from your servers (most production services do), you can surface key numbers directly on your new tab. Create a custom plugin pointed at your health endpoint:

https://api.yourapp.com/internal/health

Map fields like:

MetricJSON pathThreshold
CPU usagecpu_percentAmber > 70%, Red > 90%
Memory usagememory_percentAmber > 75%, Red > 90%
Active connectionsactive_connectionsRed > 500
Queue depthqueue_depthAmber > 100, Red > 500
Disk usagedisk_percentRed > 85%

Enable sparklines in the widget settings to see trends over time. A slowly climbing memory percentage is instantly visible as a creeping sparkline — much easier to spot than a single number.

Incident alerts from PagerDuty or Opsgenie

Create a custom plugin widget for your incident management platform. For PagerDuty, point the widget at:

https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged

Add your API key as a header (Authorization: Token token=YOUR_KEY) in the widget's advanced settings. Map the fields:

JSON pathDisplay
incidents[0].titleIncident title
incidents[0].urgencySeverity (high/low)
incidents[0].statusStatus (triggered/acknowledged)
incidents[0].created_atWhen it fired
incidents.lengthTotal open incidents

Set high urgency to render in red. When the widget shows zero incidents, you know you're clear — visible at a glance every time you open a tab, without checking your phone.

Dependency releases — stay ahead of CVEs

The GitHub Releases widget tracks the latest release tags for repositories you depend on. For infrastructure engineers, the relevant repos are different from application developers:

  • hashicorp/terraform
  • kubernetes/kubernetes
  • docker/compose
  • grafana/grafana
  • prometheus/prometheus
  • argoproj/argo-cd
  • aws/aws-cli

When a new version ships, the widget shows the tag and release date. Click to open the release notes directly. Staying on top of infrastructure tool releases is critical for security patches — this widget makes it passive instead of active.

Command palette shortcuts for DevOps

Beyond the widgets, the command palette has commands that DevOps engineers reach for constantly:

CommandWhat it does
/jwt <token>Decode a JWT — check expiry, issuer, and claims without jwt.io
/hash <text>SHA-256 hash — verify checksums for downloaded binaries
/uuidGenerate a UUID v4 and copy to clipboard
/json <json>Pretty-print and validate JSON — paste API responses directly
/encode <text>Base64 encode — useful for Kubernetes secrets
/decode <text>Base64 decode — inspect encoded config values
/ipShow your current public IP address
/timestampCurrent Unix timestamp — copy to clipboard

All commands run locally in the browser. The JWT decoder and base64 tools are especially useful when debugging Kubernetes secrets or API gateway tokens — paste the value straight from kubectl output and decode it instantly.

Automations for incident response

Pinodock's automation engine can wire up URL aliases as incident response shortcuts. Set up aliases in Settings → Shortcuts:

AliasURLUse case
pdhttps://your-org.pagerduty.com/incidentsJump to PagerDuty incidents
grafhttps://grafana.internal.corpOpen Grafana dashboards
logshttps://app.datadoghq.com/logsOpen Datadog log explorer
awshttps://console.aws.amazon.comOpen AWS Console
k8shttps://your-cluster.k8s.internal/dashboardOpen Kubernetes dashboard

During an incident, type the alias into the command palette and you're there in one keystroke. No bookmarking, no searching, no muscle-memory URLs. This shaves seconds off every context switch during a high-pressure incident response.


The DevOps dashboard turns your new tab from dead space into a situational awareness tool. When everything is green, you see it instantly and move on. When something is red, you know before Slack tells you. Set it up once and it runs passively — the best kind of monitoring.

Build a custom widget for your own API metrics

Threshold colors and sparklines for live data

The Developer Dashboard — GitHub, Uptime, and HN

The complete Pinodock guide