Every source behind this page, graded. The mix is unusual: almost all of it
is tier-10 repository evidence, because that is the only layer this session could reach.
ADR
Cortex maintainers2020-11
Blocks storage bucket index (design proposal)
The one document in this corpus that argues a design rather than recording it. It
states the goal as "The querier should be up and running without having to scan the
bucket at all (zero startup time)" and gives the tenant arithmetic that makes bucket
listing untenable.
Carry forwardAny object-storage-backed store needs a catalogue object before it needs a cache; listing is a cost you pay even at zero queries.
cortexproject/cortex docs/proposals/blocks-storage-bucket-index.md
Source
Grafana Labs2020-07
Loki: the index moves into the bucket
The boltdb-shipper commits, the first generation of index-as-files. The replacement for
four database backends arrives here, and everything in the 2026 deletion wave is downstream
of it.
Carry forwardDate the replacement, not the deprecation: the support window starts the day the better option works.
grafana/loki commit e59adccf
Source
Grafana Labs2026-04
Loki deletes Cassandra, DynamoDB, BigTable and BoltDB
Six breaking removals in nine weeks, each a chore! commit that deletes a
storage client package, its configuration and its dashboards.
Carry forwardRemovals arrive in waves because they are gated on one release boundary; plan the wave, not the individual deletion.
grafana/loki #21574 and #21502, #21601, #21637, #21638, #21678
Source
Grafana Labs2026-06
The removal reverted eight days later
/api/prom endpoints removed on 11 June 2026, revert merged on 19 June
2026. No issue text is reachable from here, so the reason is unstated; the revert itself
is the evidence.
Carry forwardIf you cannot count calls per tenant, your deprecation date is a guess and your revert is a matter of time.
grafana/loki #22466
Source
Cortex maintainers2022-08
"Remove support for chunks storage entirely: Take 2"
The upstream project deprecated its original storage engine in June 2021 and needed a
second attempt to finish deleting it 13.7 months later.
Carry forwardA removal that needs a second attempt is normal; leave room in the release plan for it.
cortexproject/cortex #4812
Source
Grafana Labs2022-03
Mimir 2.0 changelog: one line, eighteen pull requests
"Remove chunks storage engine" with eighteen PR numbers after it, followed by pages of
removed flags. The cheapest available estimate of what deleting a storage engine costs.
Carry forwardBudget removal in pull requests, not in a ticket. Configuration surface is most of the work.
grafana/mimir CHANGELOG at mimir-2.0.0
Source
Grafana Labs2021-08
Cortex renamed to Mimir, in private, seven months early
The licence commit lands 5 August 2021 and the rename 11 August 2021; the first public
Mimir tag is 28 March 2022. The fork existed for 7.6 months before anyone outside could
plan for it.
Carry forwardWhen you depend on an open-source project, the fork you will have to react to may already exist and be invisible.
grafana/mimir commit fa86354b
Source
Grafana Labs2026-09
Mimir's go.mod: six forks, with reasons
Prometheus itself is replaced by grafana/mimir-prometheus. The memberlist
comment says the changes "haven't been merged upstream yet for years and we don't expect
to change anytime soon"; the OTLP translator fork exists so Mimir can move slower than
upstream, not faster.
Carry forwardRead a project's replace directives before adopting it: they tell you which dependencies its maintainers no longer trust to move at the right speed.
grafana/mimir go.mod
Source
Grafana Labs2026-09
Loki's go.mod: the fork that outlived the feature
The Cassandra driver fork, kept "to have gokit logs and Prometheus metrics", is still a
replace directive five months after the Cassandra backend was deleted. The Thanos
object-storage library is also forked.
Carry forwardRemoving a feature does not remove its dependencies; put the fork on the same deletion checklist as the code.
grafana/loki go.mod
Vendor
Grafana Labs2026-09
Mimir's versioning guarantees
"We will keep deprecated features in place for two minor releases." Reading old data is
guaranteed for two years. Experimental features carry no compatibility guarantee at all,
which matters because the Kafka ingest path shipped as experimental.
Carry forwardCompare the stated window against the observed one before you build a migration plan on the policy.
grafana/mimir about-versioning.md
Source
Grafana Labs2023-12
Mimir puts Kafka in the write path
The first commit under pkg/storage/ingest, "Add experimental support to
write incoming data to a Kafka-compatible backend". Loki and Tempo follow at nine and
twenty months.
Carry forwardWhen one product in a portfolio adopts a pattern, read it as a preview of the others; the convergence here is ordered and roughly annual.
grafana/mimir #6888
Source
Grafana Labs2026-08
Four data-loss fixes in the Kafka path
Split fetches with partial errors, incorrect offset commits, partitions fully consumed
at startup, and single-record jobs. The most recent, "fix silent data loss for
single-record jobs", is in no tagged release as of 25 September 2026.
Carry forwardA durable log in front of ingest moves the correctness problem to offset management; test it by killing processes, not by load.
grafana/mimir #16493
Source
Grafana Labs2026-03
The rewritten Loki engine dropped OR
"fix(query-engine): Fix OR operations being silently dropped". The companion class in
Mimir is a run of correctness fixes in optimisation passes, several after the new engine
became the default.
Carry forwardShadow the new engine against the old one and diff results; a wrong answer does not page anyone.
grafana/loki #21204
Source
Grafana Labs2025-10
Mimir 3.0 removes the alternatives
Redis as a cache backend, the read-write deployment mode, the embedded query-scheduler
and several HA-tracker backends all go in one release, and the project's own query engine
becomes the default.
Carry forwardMajor versions are where optionality is withdrawn. Audit which of your deployment choices are the ones being deleted.
grafana/mimir CHANGELOG at mimir-3.0.0
Source
Grafana Labs2022-06
Tempo adopts Parquet, then keeps re-adopting it
vParquet in June 2022, then v2, v3, v4 and v5 by August 2025, with defaults flipping in
November 2023, June 2024 and August 2026 and conversion commands added for each step.
Carry forwardA general columnar format buys query flexibility and sells you a migration every fifteen months.
grafana/tempo #1479
Source
Grafana Labs2026-05
Tempo 3.0 chooses failing over answering
"Recent data queries guarantee complete results by failing when an instance is lagging",
with a 30 second cutoff and fail_on_high_lag defaulted to true.
Carry forwardState explicitly whether a query over recent data may return partial results; make it a configuration flag with a default you can defend.
grafana/tempo CHANGELOG at v3.0.0
Source
Grafana Labs2025-11
Grafana Agent's end of life, stated in its own README
"Grafana Agent has reached End-of-Life (EOL) on November 1, 2025." The repository shares
its initial commit with Alloy, so the successor is the same codebase renamed on 25 March
2024.
Carry forwardA rename with history preserved is a migration you can diff; a rewrite is not. Check which one you are being offered.
grafana/agent README
Source
Grafana Labs2026-03
Promtail deleted from Loki
Deprecation banners in the docs on 12 February 2025, "feat: Remove Promtail support" on
25 March 2026, and the mixin, issue templates and lambda variant removed over the
following months.
Carry forwardThe code is the first thing to go and the dashboards are the last; a deprecation is done when the operational furniture is gone too.
grafana/loki #21245
Source
Grafana Labs2023-08
Phlare archived, its engine renamed to Pyroscope
The archived README states the acquisition date of 15 March 2023. Five months later
phlaredb became pyroscopedb, and the acquired codebase still sits
at HEAD in pkg/og.
Carry forwardAfter an acquisition, look at which engine's package names survive; that tells you which team's architecture won.
grafana/phlare README
Source
Grafana Labs2026-09
Beyla donated to OpenTelemetry
"Beyla has been donated to the CNCF OpenTelemetry Project, under the project name
OpenTelemetry eBPF Instrumentation… All Beyla current maintainers work full time on the
upstream repository."
Carry forwardComponents whose value is ecosystem reach get donated; components that differentiate the product do not. Use that test on your own estate.
grafana/beyla README
Source
Grafana Labs2025-04
Grafana removes Angular, twelve years in
"Frontend: Remove Angular" deletes the support toggle, the deprecation UI and the
framework itself, 146 months after the repository's initial commit.
Carry forwardFramework choices in a plugin ecosystem outlive every other decision in the system, because your users' code is written against them.
grafana/grafana #99760
Vendor
Grafana Labs2026-09
Mimir's README scale claim
"Internal testing shows that Grafana Mimir handles up to 1 billion active time series."
No methodology, hardware or cost accompanies it in the repository.
Carry forwardTreat a headline scale number with no methodology as a ceiling claim, not a capacity plan.
grafana/mimir README
Postmortem
DFDS2024-06
Kube state metrics exposing wrong labels
A collector migration towards Grafana Cloud changed exposed labels, alerts fired, and
the fix was blocked by an unrelated unstable infrastructure change, so alarms were
silenced overnight.
Carry forwardTreat a collector swap as a change to your alerting contract, and never start one while your rollback path is blocked.
dfds/postmortems PM2024-003
Postmortem
DFDS2022-01
Prometheus is down with connection refused errors
Three nodes NotReady in one day, each running the single Prometheus pod, with the OOM
killer in the kernel log and no resource requests or limits in the chart.
Carry forwardThe monitoring system fails when you need it; give it limits, and a second place to look.
dfds/postmortems PM2022-001
Postmortem
DFDS2022-07
Kafka metrics stopped being exported
A deleted personal account took the exporter's API key with it; the replacement key was
missing access control entries, so metrics were partially missing for three and a half
hours after the incident was closed.
Carry forwardClose a telemetry incident on a metric-set comparison, not on the exporter being up.
dfds/postmortems PM2022-007
Postmortem
Zalando2019-01
Total DNS outage in a Kubernetes cluster
Included as the pattern this guide depends on rather than for its content: an operator
keeping incident reviews as markdown in the repository that configures the platform, where
anyone can read them years later.
Carry forwardIncident reviews kept in the repository outlive status pages, and they are searchable by the people who inherit the system.
zalando-incubator/kubernetes-on-aws postmortems