INNER CODE UNIT · Python
render_exposition
VersusControl/versus-incident · scripts/generate_fake_metrics.py:148
def render_exposition(series: Series, service: str) -> str:
"""Render the current state in Prometheus text exposition format."""
lines: list[str] = []
lines.append("# HELP %s Total demo HTTP requests." % COUNTER_NAME)
lines.append("# TYPE %s counter" % COUNTER_NAME)
if not series.requests:
# Always emit a zero series so the metric exists before the first tick.
lines.append('%s{service="%s",code="200"} 0' % (COUNTER_NAME, service))
for code, count in sorted(series.requests.items()):
lines.append(
'%s{service="%s",code="%s"} %d' % (COUNTER_NAME, service, code, count)
)
lines.append("# HELP %s Request latency in seconds." % HISTOGRAM_NAME)
lines.append("# TYPE %s histogram" % HISTOGRAM_NAME)
for i, ub in enumerate(BUCKETS):
lines.append(
'%s_bucket{service="%s",le="%s"} %d'