← All reportsPublic report

prometheus/prometheus

The Prometheus monitoring system and time series database.

66k stars Go View on GitHubprofiled 14d ago
Try GitZoid
269PRs this week
55Contributors
0Deps scanned
0Issues found
01 · Repo overview

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

GoTypeScriptJavaScript

Frameworks

ReactMantine UIRedux ToolkitCodeMirror (@codemirror-promql)Vitekingpin/v2 (CLI)gogo/protobuf + grpcOpenTelemetry SDK

Datastores

TSDB (embedded on-disk time-series database with WAL, head/blocks)Exemplars storage

Infrastructure

Docker (Dockerfile, Dockerfile.distroless; images on Docker Hub and Quay.io)GitHub Actions CI (ci.yml, govulncheck workflow)OSS-Fuzz continuous fuzzingOpenSSF Scorecard / CLOMonitor compliancecrossbuild via promu (.promu.yml)

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.

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.

03 · Security check

Dependencies and code review

0 dependencies scanned

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