Gimlet is an opinionated Kubernetes deployment platform built around GitOps. It uses Flux under the hood and adds a developer-friendly CLI and dashboard to manage environments, rollouts, and configuration. Gimlet takes care of the deploy workflow — but it doesn't monitor whether your deployed services are actually up. That's where Vigilmon comes in. Pair Gimlet's deployment automation with Vigilmon's external uptime monitoring so you catch outages the moment they happen, not when a user reports them.
What You'll Set Up
- HTTP monitor for each Gimlet-deployed service endpoint
- Heartbeat monitor to confirm automated Gimlet deploys are completing on schedule
- TCP monitor for backend dependencies
- Alert channel to notify your team on failure
Prerequisites
- Gimlet installed on a Kubernetes cluster and at least one app deployed (
gimlet deploy) - A free Vigilmon account
- Shell access or
kubectlaccess to retrieve service URLs
Step 1: Get Your Gimlet App Endpoints
After a Gimlet deploy, your application runs as a Kubernetes Deployment and is exposed via an Ingress or Service. Get the endpoint:
# List all environments and services managed by Gimlet
gimlet env list
# Check deployment status for a specific app
gimlet status --app my-app --env staging
Retrieve the ingress hostname from Kubernetes:
kubectl get ingress -n my-app
# NAME CLASS HOSTS ADDRESS PORTS AGE
# my-app nginx staging.example.com 203.0.113.50 80,443 3m
Make sure your app exposes a /health endpoint:
# FastAPI example
@app.get("/health")
def health():
return {"status": "ok", "env": os.getenv("ENVIRONMENT", "unknown")}
// Go example
http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
fmt.Fprintln(w, `{"status":"ok"}`)
})
Step 2: Add HTTP Monitors for Each Deployed Service
- Log in to vigilmon.online and click Add Monitor.
- Select HTTP / HTTPS.
- Enter your service URL:
https://staging.example.com/health. - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
Repeat for each environment Gimlet manages:
| App | Environment | URL |
|---|---|---|
| my-app | production | https://app.example.com/health |
| my-app | staging | https://staging.example.com/health |
| api | production | https://api.example.com/health |
Vigilmon checks from multiple geographic regions. When Gimlet's Flux-managed sync installs a bad Helm chart or misconfigured manifest, Vigilmon catches the resulting 500 or unreachability immediately — even if kubectl get pods still shows pods Running.
Step 3: Heartbeat Monitor for Gimlet CI Deployments
Gimlet deployments often run from CI — GitHub Actions, GitLab CI, or Buildkite. A heartbeat monitor confirms the deploy pipeline is completing regularly.
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the expected interval to match your deploy cadence — e.g.,
60minutes for hourly deploys. - Copy the heartbeat URL:
https://vigilmon.online/heartbeat/abc123.
Add the ping after a successful Gimlet deploy in your CI workflow:
# GitHub Actions
- name: Deploy with Gimlet
run: gimlet deploy --app my-app --env production --wait
env:
GIMLET_SERVER: https://gimlet.example.com
GIMLET_TOKEN: ${{ secrets.GIMLET_TOKEN }}
- name: Notify Vigilmon heartbeat
if: success()
run: curl -s https://vigilmon.online/heartbeat/abc123
Or in a shell script used by a scheduled Kubernetes CronJob:
#!/bin/bash
set -e
gimlet deploy --app my-app --env production --wait
curl -s "https://vigilmon.online/heartbeat/abc123"
If the deploy fails or the pipeline never completes, Vigilmon alerts after the configured interval. You'll know before the next deploy window that your automation is broken.
Step 4: Monitor Backend Services via TCP
Gimlet apps often depend on databases, caches, or queues provisioned separately. Monitor their TCP ports to catch infrastructure failures before your app surfaces them as errors:
- In Vigilmon, click Add Monitor → TCP.
- Enter the host and port for your dependency:
postgres.internal.example.com:5432. - Set Check interval to
1 minute. - Click Save.
Common backend monitors to add alongside Gimlet deployments:
| Component | Port | Why | |---|---|---| | PostgreSQL | 5432 | App DB — unreachable = total failure | | Redis | 6379 | Cache/sessions — silent failures possible | | RabbitMQ | 5672 | Queue — jobs pile up invisibly | | Elasticsearch | 9200 | Search — returns 500 when unreachable |
Step 5: Monitor the Gimlet Dashboard HTTP
If your team uses the Gimlet web UI for deployment management, add an HTTP monitor for it:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Enter the URL:
https://gimlet.example.com. - Set Expected HTTP status to
200. - Set Check interval to
2 minutes. - Click Save.
A downed Gimlet server means your team can't deploy or roll back during an incident — monitoring it ensures you know when the control plane itself is unavailable.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon.
- Add your Slack webhook, email list, or PagerDuty integration.
- Assign alert channels to all monitors.
For production monitors, set Consecutive failures before alert to 1 — a single probe failure in production is worth an immediate ping. For staging, 2 is a sensible default to avoid noise from rolling restarts.
Create a maintenance window during planned Gimlet upgrades or Flux migrations:
curl -X POST https://vigilmon.online/api/maintenance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"monitor_id": "abc123", "duration_minutes": 15}'
Step 7: Publish a Status Page
- Go to Status Pages → New Status Page in Vigilmon.
- Name it "Deployment Platform Status".
- Add monitors grouped by environment: Production, Staging, Infrastructure.
- Share the URL with your team and stakeholders.
During a Gimlet rollout incident, a shared status page reduces Slack noise — people check the page instead of asking "is the deploy broken?"
Summary
| Monitor | Target | What It Catches | |---|---|---| | HTTP health | Production app endpoint | App down after a bad deploy | | HTTP health | Staging app endpoint | Broken environment before it reaches prod | | Cron heartbeat | CI deploy pipeline | Silent deploy failures | | TCP | Database/queue | Infrastructure dependency outage | | HTTP | Gimlet dashboard | Control plane unavailable |
Gimlet automates how you deploy to Kubernetes — Vigilmon tells you whether what you deployed is actually running.
Get started free at vigilmon.online — no credit card, monitors running in under a minute.