Skip to main content
Day 02 of Prove It. By the end you’ll have connected a read-only agent to your own Kubernetes cluster, held at least two explanations for a live incident, run the query that rules one out, and handed in one incident report per team. The live session ran on Sep 12, 2026. You can repeat the lab on your own on any cluster you control. Day 01 asked what exists in an account. Day 02 asks what caused this, right now. Access doesn’t change: credentials stay with the owner, and the agent still can’t change anything.
Use this page with CloudThinker. Paste this page’s URL into a chat and try:
  • “Explain the noise reduction section of this page like I’m new to on-call.”
  • “Quiz me on the difference between a trigger, a root cause and a contributing factor.”
  • “Help me outline my Day 02 incident report using the five blocks on this page.”

Rules of the room

  • Four blocks. Learn 35 minutes, a keynote 25, Practice 30 with no break, Share 20.
  • Your Kubernetes cluster is connected read-only. Use a staging cluster if you can. The agent can inspect. It can’t restart, scale, deploy or edit anything, and it can’t read secrets.
  • Credentials stay with the owner. The cluster owner connects it on their own screen with a read-only kubeconfig (get, list, watch).
  • The agent recommends. People decide. No fix is applied today.
  • Redact. Account IDs, ARNs, endpoints, hostnames and customer data come out of the report before it’s shared or shown on screen.
  • One report file per team, submitted before Share starts.

Learn: 35 minutes

Day 01 gave the agent a boundary. Day 02 starts one step earlier, with the boundary most teams never set: which signals deserve attention at all. Ideas 1 to 4 are background on alert noise. Ideas 5 to 8 are the ones you use in the lab.

1. You can’t investigate what you can’t rank

A bad night doesn’t hand you one incident. It hands you a stream: an access alert on a production role, a burst of AccessDenied lines in the audit log in the same minute, three near-identical alerts from three services, and five pages open for one problem. The investigation isn’t the hard part at that hour. Choosing what to investigate is. Every team already has an answer to alert volume, and each one costs something: Each is a decision about what you agree to lose, usually made once, informally, and never written down. That’s the Day 01 governance gap again, pointed at the signal instead of the agent.

2. Noise dies in ordered layers

Noise reduction is a pipeline: ingest, suppress, group, then classify and route. Suppression isn’t one filter. It’s a series of checks run in a fixed order, and the first one that matches wins, so the order is the policy. Common layers, whatever tool you use: Cascade suppression removes the most, and it will hide a real outage if the root signal it collapsed onto was wrong. Severity is a guess too: the severity a tool stamps on an event is its opinion, and you’re allowed to re-grade it. In CloudThinker, this pipeline is Pulse. Pulse runs four checks in order (dedup, rate limit, snooze, verdict), then classifies what survives and drops signals it judges not actionable. The verdict check is the one that learns: when CloudThinker confirms a pattern is noise while investigating, repeats of that pattern are suppressed. Details: Noise suppression.

3. Every suppression rule needs an escape hatch

Silence has to expire and has to be overridable, or it turns into a blind spot. Pulse’s verdict check shows both properties:
A rule with no bypass will eventually hide the outage it was written for. An expiring window forces the system to re-confirm that a pattern is still noise. A permanent mute is a decision nobody revisits.

4. Reduction is what makes the agent affordable

An investigator agent is the expensive step. Picture one alarm that flaps all morning, where every fire opens its own root cause analysis: many investigations of one problem, many answers to the same question, and a bill for each. Point an agent at a raw alert stream and that’s what you buy. Three gates to apply before a group of signals is worth an investigation, with or without an agent: In CloudThinker, related alerts that share a likely cause are grouped under one parent incident with a single investigation. See Investigation and RCA.

5. Split the question, not the work

A good investigation gathers context, then splits into hypotheses: explanations stated precisely enough that a query could contradict them. Each one is tested against the same evidence, and one verdict is written at the end. The skill to take home is the question each split is looking for: the query whose result differs depending on which hypothesis is true. That’s the query that rules one out. Every other query confirms what you already believe. In CloudThinker, the investigation can hand focused checks to temporary subagents (short-lived helper agents), and the incident’s Investigation timeline records each explanation tested and whether it was confirmed or ruled out. To see it, go to Resolve → Investigation, select an incident, and scroll to Investigation timeline. Read-only also means the agent can’t test an idea by changing something. It has to reason, and you have to be able to check the reasoning, which is why the timeline matters more than the answer.

6. Order in time isn’t proof of cause

Three ways a confident timeline proves nothing: If you can’t draw the path, you have a coincidence, not a cause. The third shape is the one nobody believes until they’ve seen it: The retries are the load now. Timeouts cause retries, retries cause load, load causes timeouts. Name the three parts separately:
  • Trigger: the failover. It’s over, and there’s nothing to roll back.
  • Root cause: the retry policy with no cap and no backoff, shipped in last week’s client release. It’s the resource you can date a change on, and it’s still wrong right now.
  • Contributing factor: the missing circuit breaker. It would have stopped this, but you can’t show it ever changed.

7. The root cause is the resource that changed

A causal graph has five kinds of node, and only one is the answer. Divergence is a claim about time, so settle it by dating each candidate: creation timestamp, revision history, last-applied configuration. Never by which resource looks most abnormal now. The resource with the worst symptoms is usually a victim, and fixing a victim is a workaround. Contributing factor is the honest label for anything you suspect but can’t date. It isn’t a weaker root cause. It’s a different kind of claim.

8. A system that grades itself proves nothing

Hold every claim, the agent’s and your own, to what backs it: CloudThinker applies the same idea. Every verdict carries an evidence label: Verified (confirmed against data from your systems), Inferred (reasoned, not confirmed) or Cause unproven (rests on an assumption). In your report, Assumed matches Cause unproven, and Blocked has no product label. Any change goes through a runbook and your Approvals settings. And with Resolve’s On duty paused, Pulse still detects and groups alerts and still files incidents as Open, but no investigation starts on its own until someone clicks Investigate. An incident a person logs still investigates right away. See What starts an investigation.

Keynote: 25 minutes

The Integration Problem Was a Context Problem: why an agent investigates well only when it can reach the data.

Practice: 30 minutes

The task: one live incident on a Kubernetes cluster. One team, one read-only agent, one report. Thirty minutes, no break. At the event, every team worked the incident below. On your own cluster, pick a real symptom from staging, such as a slow endpoint or a recent alert, and run the same steps.
Hotel Search Degradation After Traffic Recovery
That’s the title the on-call would get. The dashboards won’t agree with the users, so start from what the customer lost. The permissions are real. If your team hits a wall, that wall is part of the exercise. Label it blocked, as on Day 01. Draft blocks 01 and 02 as you go from T+05. Five minutes is enough to finish a report, not to start one. The rail is a pace, not a rule. Two hypotheses is the floor, not the target. A team that reaches T+18 with one hypothesis has skipped the part that matters.

Connect your Kubernetes cluster

Use your own cluster, ideally staging, through a read-only kubeconfig. The cluster owner connects it on their own screen, and adding a connection needs the workspace Admin role. The full reference is Connect Kubernetes.
1

Create a read-only kubeconfig

Follow Connect Kubernetes: apply the cloudthinker-reader manifest, then build cloudthinker-kubeconfig.yaml for that service account. The ClusterRole grants only get, list and watch, and leaves out Secrets.Success state: kubectl --kubeconfig cloudthinker-kubeconfig.yaml get nodes lists your nodes.
2

Upload it in Connections

Sign in at app.cloudthinker.io. In the sidebar, click More → Workspace settings and select Connections. Select Kubernetes, upload the file in the KUBECONFIG field, and click Connect.Success state: Kubernetes shows a Connected status.
3

Open a chat

Start a new chat and send “Give me an overview of this Kubernetes cluster.”Success state: the agent answers with the namespaces and workloads it can see.
Can’t add the connection? Adding a connection needs connector edit permission, which only the workspace Admin role has. Ask a workspace Admin to connect the cluster, or to change your role. See Workspace roles.
Nobody types credentials into a slide, a chat or a shared document. The cluster owner connects it on their own screen.

What to ask the agent

Most teams ask what’s wrong and accept the first answer. Push past it. Start with these, in order:
A useful answer describes the user’s experience (slow or failed searches), not pod health. The “could not read” list goes straight into your scope.
A useful answer gives explanations that predict different things. If both would show the same data, ask again.
This is the T+18 step. Paste the raw output into your report as the evidence that ruled one explanation out.
The resource with a dated change is your root cause candidate. Everything without a date is a contributing factor. Keep the raw output. You need it for every claim in the report.

Stuck?

Your output: one report

PDF, doc or markdown. There’s no template. These five blocks are the minimum.

Sample output

Working alone, check your report against this sample. It’s an illustration of the format, not a real result: your cluster, times and cause will differ.
Check three things: each hypothesis has its own evidence, the losing one names the query that ruled it out, and the root cause has a date. A report that says “insufficient evidence” and shows the log is complete. A confident answer with no path is worth less. No fix proposal is required. Submit one file per team before Share starts. Redact account IDs, ARNs, endpoints, hostnames and customer data first. When you’re done, the connection stays in your workspace until a workspace Admin removes it: More → Workspace settings → Connections, select Kubernetes, then Disconnect.

Share: 20 minutes

Volunteers present, 5 minutes each, so about four teams fit. Every team that presents gets a prize. No scoring, ranking or vote. Then the room compares: same cluster, same access, different answers. That comparison is why the log and the evidence fields matter more than the verdict.

Glossary

Further reading

Next step

Day 03: Prove It Arena. An unfamiliar environment, an unexpected incident, and judges. Bring today’s vocabulary: trigger, root cause, contributing factor, and the gap you can’t close.

Day 03: Prove It Arena

The rounds, how reports are judged, and how to join your team in the Arena.

Investigation and RCA

See how CloudThinker runs and records a real investigation.