prometheus/prometheus
The Prometheus monitoring system and time series database.
How prometheus is put together
prometheus/prometheus implements the Prometheus monitoring system: a single autonomous Go server that scrapes metrics from targets discovered via service discovery, stores them in an embedded TSDB (with WAL, blocks, exemplars, and out-of-order support), evaluates PromQL queries and alerting/recording rules, and sends alerts to Alertmanager. Data flows from discovery -> scrape manager -> storage fanout (local TSDB plus optional remote read/write), while the rules engine queries storage through the PromQL engine and pushes alerts through the notifier. The repository also ships a React/TypeScript web UI built as a pnpm workspace monorepo under web/ui and compiled into the binary, plus auxiliary modules (compliance suite, internal tooling) managed via go.work.
Languages
Frameworks
Datastores
Infrastructure
Major components
config
Parses and strictly validates the YAML configuration (global, scrape, remote write/read, OTLP, TSDB, alerting sections), expands env vars in external labels, and computes checksums over referenced rule/scrape-config files for auto-reload.
discovery
Manages service-discovery providers (file, DNS, Kubernetes, Consul, and ~25 cloud/IaaS plugins under plugins/) that emit target groups to the scrape manager.
scrape
Runs scrape pools against discovered targets, negotiates exposition protocols, applies relabeling/limits, and appends samples into storage.
tsdb
The embedded time-series database: WAL/head ingestion, out-of-order samples, isolation, compaction of blocks, exemplars, and mmap-backed reads.
storage
Defines the Appendable/Queryable interfaces and provides fanout, merge, buffered, secondary, and remote-storage adapters bridging local TSDB with remote read/write backends.
promql
The PromQL engine: parses and evaluates queries, functions, quantiles, and native-histogram statistics, with optional query logging.
rules
Evaluates recording rules and alerting rule groups on their intervals and feeds resulting alerts into the notifier.
notifier
Queues alerts, relabels them, and dispatches them to Alertmanager instances via send loops.
A quieter week centered on finishing the Go 1.27 upgrade and polishing recent features with follow-up fixes and refactors.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quieter week centered on finishing the Go 1.27 upgrade and polishing recent features with follow-up fixes and refactors.
Week of 2026-08-17
A busy week dominated by crash-proofing AWS service discovery, stabilizing the new XOR2 float encoding, and completing the Go 1.27 move.
Week of 2026-08-10
The largest week of the month, with broad panic fixes across cloud discovery providers, UI improvements for scrape configs, and many PromQL refinements.
Week of 2026-08-03
A release-prep week with a security-driven dependency bump wave, histogram correctness fixes, and support for scraping over Unix sockets.
Week of 2026-07-27
The 3.13.2 patch release shipped with two security fixes, alongside parallel scrape-pool shutdown and a histogram corruption fix.
Over the past month, the Prometheus team focused heavily on hardening service discovery against crashes when cloud providers return incomplete data (AWS, IONOS, Docker, Kubernetes), while also shipping performance improvements to remote storage and AWS discovery. The query language and TSDB internals saw meaningful fixes too, including a new stable XOR2 chunk encoding, subquery alignment fixes, and native histogram corrections. Housekeeping was prominent throughout, with a Go 1.27 upgrade, dependency bumps for two security vulnerabilities, and a patch release (3.13.2) cut mid-month.
Week by week
2026-08-24A quieter week centered on finishing the Go 1.27 upgrade and polishing recent features with follow-up fixes and refactors.latest6 changes
Chore
Go upgraded to 1.27 across the project
The build tooling now targets Go 1.27, including regenerated protobuf code and CI checks that verify compatibility with the oldest supported version.
Feature
Log level can be changed without restarting
Prometheus can now reload its logging verbosity at runtime through config reloads, without noisy deprecation warnings.
Fix
EC2 discovery no longer crashes on missing fields
Amazon EC2 instances that lack optional metadata no longer cause Prometheus to panic during service discovery.
Refactor
Faster remote-write label handling
Sending metrics to remote storage avoids unnecessary copying of labels when no extra labels are configured.
Fix
In-order chunk ID overflow fixed
The storage engine now wraps around cleanly instead of breaking when internal chunk identifiers reach their maximum value.
Refactor
AWS RDS discovery cleaned up
Cloud database discovery code was simplified by building cluster labels once per cluster and handling concurrent instance lookups more neatly.
2026-08-17A busy week dominated by crash-proofing AWS service discovery, stabilizing the new XOR2 float encoding, and completing the Go 1.27 move.6 changes
Fix
AWS discovery made panic-free
EC2 instances and ElastiCache resources with missing optional fields no longer crash Prometheus during discovery.
Refactor
AWS RDS discovery sped up
Database instances are now queried concurrently instead of one-by-one, cutting refresh time significantly on large setups.
Feature
XOR2 float encoding stabilized
The experimental compressed format for storing floating-point time series was finalized so results are consistent over time.
Fix
Log level reloadable via config
Changes to logging verbosity in the configuration file now take effect on reload rather than requiring a restart.
Fix
Subquery timestamps aligned
Subqueries now align their evaluation boundaries correctly, avoiding subtly wrong results at range edges.
Fix
Scrape staleness tracking corrected
When a monitored series changes identity mid-scrape, staleness markers are kept in sync so gaps aren't misreported.
2026-08-10The largest week of the month, with broad panic fixes across cloud discovery providers, UI improvements for scrape configs, and many PromQL refinements.6 changes
Fix
IONOS and ElastiCache discovery hardened
Cloud providers returning empty or partial responses no longer trigger panics in service discovery.
Feature
UI shows effective scrape configuration
The web interface now displays the actual resolved settings for each scrape pool, making misconfigurations easier to spot.
Feature
Kubernetes load balancer IPs exposed
Discovered services now pick up their external load balancer IP addresses from Kubernetes status information.
Fix
PromQL syntax rules tightened
Invalid queries combining offsets or timestamp modifiers incorrectly are now rejected up front, and parentheses around durations are preserved.
Fix
File-based discovery waits for complete updates
Discovery from files no longer acts on half-finished updates, preventing targets from flickering in and out.
Refactor
OTLP ingestion pooled scratch memory
Receiving OpenTelemetry metrics reuses internal buffers, reducing allocation overhead under load.
2026-08-03A release-prep week with a security-driven dependency bump wave, histogram correctness fixes, and support for scraping over Unix sockets.6 changes
Fix
Histogram counter resets detected correctly
Empty buckets could hide evidence of a metric restarting from zero; detection now looks past them.
Feature
Unix domain socket scraping
Prometheus can now collect metrics from local services exposing them over Unix sockets instead of TCP ports.
Fix
ECS task groups and truncated ARNs handled safely
AWS discovery tolerates custom ECS task group names and malformed resource identifiers without crashing.
Docs
OpenAPI spec documents native histograms
The API documentation now includes examples of native histogram responses.
Chore
CI and tooling dependencies refreshed
GitHub Actions, Node.js, and lint tooling were all bumped to current versions.
Fix
Windows test failures resolved
Several tests that always failed on Windows were made platform-aware or fixed outright.
2026-07-27The 3.13.2 patch release shipped with two security fixes, alongside parallel scrape-pool shutdown and a histogram corruption fix.6 changes
Fix
Security vulnerabilities patched in release 3.13.2
The gRPC and text-handling libraries were upgraded to close known security issues (GHSA-hrxh-6v49-42gf and CVE-2026-56852).
Fix
Histogram merges no longer corrupt data
Combining histograms multiple times could scramble their bucket layout; compaction now preserves it.
Refactor
Scrape pools shut down in parallel
Stopping monitoring jobs now happens concurrently, speeding up shutdown of large configurations.
Fix
AWS ECS discovery handles custom task groups
Task definitions with non-default group names no longer cause discovery to fail.
Fix
Data race in dropped-target counts fixed
A concurrency bug that could corrupt counts of dropped scrape targets was eliminated.
Docs
Storage interface documented
The parameters controlling which time ranges queries read from are now explained in the developer documentation.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required