Prometheus HTTP API — Metric Metadata with a HELP Conflict (json)
The metadata endpoint's response, where each metric name maps to a list because different targets can disagree. http_requests_total here has two conflicting HELP strings — the real-world state that a metric catalogue or documentation generator has to resolve rather than assume away.
{
"status": "success",
"data": {
"http_request_duration_seconds": [
{
"type": "histogram",
"unit": "seconds",
"help": "End-to-end request latency in seconds."
}
],
"http_requests_total": [
{
"type": "counter",
"unit": "",
"help": "Total HTTP requests handled."
},
{
"type": "counter",
"unit": "",
"help": "Total HTTP requests handled, by route and status."
}
],
"up": [
{
"type": "gauge",
"unit": "",
"help": "1 if the target is reachable, 0 otherwise."
}
]
}
}
Specifications
- Families
- 3
- Conflicting Help Texts
- 1
- Types
- histogram, counter, gauge
- Shape
- /api/v1/metadata
Testing contract
Expected to pass- Scenario
- Build a metric catalogue from the metadata endpoint.
- Expected result
- Three families are catalogued and http_requests_total surfaces both HELP strings as a conflict rather than silently keeping whichever arrived last.
What is a .json file?
JSON (JavaScript Object Notation) is a lightweight, text-based data-interchange format representing objects, arrays, strings, numbers, booleans, and null. It is language-independent, human-readable, and the dominant format for web APIs and configuration. It requires a single well-formed root value.
How to use this file
Use an example JSON file to test parsers and serializers, schema validation, Unicode and number-precision handling, and API request or response processing.
How to use this file for testing
“Prometheus HTTP API — Metric Metadata with a HELP Conflict (json)” is a deterministic Novus Examples fixture for Observability, Metadata testing, JSON parsing. Structured and plain-text telemetry with known timestamps, levels, request identifiers, and error states for testing log ingestion, correlation, dashboards, and alert pipelines.
Documented properties for this file: JSON · 636 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Telemetry fixtures use fixed trace IDs, span IDs, and timestamps so ingestion is reproducible run to run. Point your collector, parser, or query layer at the file and assert the documented span tree, metric families, or severity mix; service and host names are invented.
Code examples
import json
with open("prometheus-api-series-metadata.json") as f:
data = json.load(f)
print(type(data), len(data))Related files
- promOpenMetrics — Histogram Exemplars Linking to the Trace Fixtures (prom)Histogram buckets carrying exemplars whose trace_id and span_id resolve against the OTLP trace fixtures in this category — the exact-to-example link that turns a latency spike on a graph into a specific request. Five exemplars, each with its own observed value and timestamp.

- jsonOTLP Metrics — Base-2 Exponential Histogram (json)An exponential histogram at scale 3 — eight buckets per power of two — with a negative offset, a zero bucket and its threshold. Bucket i covers (base^(offset+i), base^(offset+i+1)], and getting that indexing wrong silently shifts every percentile, which is what this fixture is for.

- jsonOTLP Metrics — Exemplars with Trace and Span IDs (json)An OTLP histogram carrying two exemplars, each with the trace and span ID of a request that landed in that bucket — including the 2.0031-second outlier that corresponds to the failed payment in the error-trace fixture. The metrics-to-traces jump, with a resolvable target.

- jsonOTLP Metrics — Explicit-Bucket Histogram (json)An OTLP explicit-bucket histogram over the same latency distribution as the Prometheus fixture — but with per-bucket counts rather than cumulative ones, and one more bucket count than bounds. Converting between the two is where most OTLP-to-Prometheus bridges get the arithmetic wrong.

- jsonOTLP Metrics — Monotonic Sum and Gauge Data Points (json)An OTLP metrics export with a monotonic cumulative sum and two gauges, showing the parts of the wire format that trip parsers: int data points serialised as JSON strings, UCUM unit annotations like {request} and By, and the start timestamp that makes a counter reset detectable.

- jsonOTLP Metrics — Summary with Client-Side Quantiles (json)The OTLP summary type — quantiles computed on the client, kept only for translating legacy Prometheus summaries. It carries the same four quantiles as the Prometheus summary fixture, and like that one it cannot be re-aggregated across instances without producing a wrong number.

Generated by generation/observability.py. Free for any use, no attribution required — license.