Ultimate

X_METRIC_NAME_INVALID

Means

metric name is malformed, or redeclared with a different kind, bounds or observer

Typical cause

a name that is not lowercase snake_case — dotted OTel names survive OTLP but not a Prometheus scrape, and the autoscaler reads the scrape — or one name declared as both a counter and a gauge, or a second histogram('x', { bounds }) / gauge('x', { observe }) whose stated option differs from the first. An omitted option is still a handle-fetch, so gauge(name) keeps working

Fix

rename the instrument: counter('http_requests_total'), one metric name to one kind; or make the second declaration state the same bounds/observe as the first

Listed under Metrics

This page as markdown