Skip to content

PATTERN Cited by 1 source

Deploy-marker overlay on time-series

Problem. A metric changes shape — latency drops, throughput spikes, error rate flips. The operator needs to know "did a recent deploy cause this?" — but the deploy history and the metric graph live in different tools, and correlating timestamps by eye is error-prone.

Solution. Overlay the deploy events on the metric graph itself as vertical annotations keyed on a stable, operator-visible change identifier. Clicking the annotation navigates to the change's approval / execution metadata.

(Source: sources/2026-04-21-planetscale-query-performance-analysis-with-insights.)

Canonical instance: PlanetScale Insights

Rafer Hazen, 2023-04-20: on the post-index-add latency graph "we see a deploy marker on the query latency graph, labeled #505 — our 505th deploy request to this database." The marker is the deploy-request number (concepts/deploy-request) rendered as a vertical annotation on the per-pattern latency graph at the moment the deploy took effect.

Structural properties

  • Keyed on a monotonic integer, not a free-form tag. Deploy-request numbers are unique per database, auto- generated by the deploy-request lifecycle, operator- visible in the dashboard.
  • Auto-emitted at deploy time — the marker is a side-effect of the deploy execution, not something the developer has to remember to emit via CI or annotation API.
  • Navigable — clicking the marker goes to the deploy request (DDL, approver, state, revert history).
  • Per-metric scoped — markers show on the per-pattern latency graph because the pattern's execution is what the deploy affected.

Sister-patterns in non-database change systems

Any numbered-change substrate can produce the same overlay:

Substrate Marker key
PlanetScale deploy-requests Deploy-request #N
GitHub pull-requests PR #N
CI build pipelines Build ID
Kubernetes deployments Deployment generation
Terraform runs Plan ID
Cloudflare Workers Release UUID

The load-bearing constraint is the stable integer identifier backed by a durable change record. Free-form tags (release:prod-2023-04-20) drift and collide.

Signal-quality consequences

  • Step-down after deploy → the deploy helped. If you shipped an index fix like PlanetScale's example, you see the pattern latency drop to near-zero after #505.
  • Step-up after deploy → the deploy regressed the pattern. First suspect for a p95 spike.
  • No step → the deploy didn't touch this pattern.
  • Multiple markers in a window → which one caused the change? The deploy-request metadata (diff, affected tables) narrows the candidates.

Release-markers turn a change-causation question into a one-glance visual answer.

Seen in

  • sources/2026-04-21-planetscale-query-performance-analysis-with-insights — canonical wiki disclosure. Hazen's worked example fixes a DELETE-LIMIT antipattern with an index, then points at the #505 deploy marker on the latency graph as the one-glance confirmation that the fix landed and took effect. Earliest wiki instance of the deploy-marker pattern surfaced on a per-query-pattern time-series rather than a cluster-wide / service-wide metric.
Last updated · 470 distilled / 1,213 read