How to add parallel Trivy and Grype container scanning to GitLab merge requests using a shared CI template, so every Renovate-raised image update gets scanned for CVEs and supply chain issues before it merges.
How to set up Renovate on a self-hosted GitLab CE instance to automatically discover all repos in a group, raise dependency update MRs, and hold them for 7 days before opening.
Not sure where to start? Here’s everything on StatefulOps — three series covering Kubernetes fundamentals, GitOps with ArgoCD, and Kubernetes observability. 27 posts, written for engineers who’d rather read something…
Everything in this series has been building to this. You have Prometheus scraping metrics, Loki collecting logs, Tempo storing traces, and Grafana connecting them. You have dashboards, alerts, and runbooks. Now let’s…
The last six posts have covered the three pillars individually — Prometheus for metrics, Loki for logs, Tempo for traces. Each one is useful on its own. But the real leverage comes from using them together, connected…
Here’s the scenario that distributed tracing exists to solve. A user reports that checkout is slow — sometimes five seconds, sometimes twelve. Your error rate is fine. Your metrics look normal. CPU is healthy. Memory…
Metrics tell you something is wrong. Alerts wake you up about it. Then you need to understand what actually happened — and for that, you almost always end up in logs. Logs are the detailed record of what your…
There’s a reliable way to tell if a team’s alerting is working well. Ask them how they feel about their on-call rotation. If the answer involves words like “exhausting,” “constant noise,” or “I stopped looking at…
A common failure mode in Kubernetes observability goes like this. The team installs kube-prometheus-stack. They get Grafana. They open the pre-built dashboards and see hundreds of panels showing CPU, memory, network,…
Prometheus without PromQL is a database you can’t read. The metrics are there, the time series are accumulating, but until you can query them meaningfully you’re just storing numbers. PromQL is what turns those…