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