Label With Care

A Prometheus counter http_requests_total currently carries labels for endpoint (40 values) and status code (6 values). An engineer adds a user_id label so per-user traffic can be sliced, and the service has about 300,000 active users. What happens?

A

Ingestion absorbs the new label without trouble, and queries slow down only for the ones that name a specific user id somewhere in the selector

B

Active series jump from a few hundred to tens of millions, since every distinct label combination is its own series, and memory and index size blow up

C

The counter keeps one series per endpoint and status pair and overwrites its value on each new user id, so the most recent users mask earlier ones

D

Scrape payload size is unchanged, because label names and values travel once in the metric metadata rather than being repeated on every single sample sent