metrics: don't add units and scope tags to prometheus metrics (#5749)

## Summary

With metrics now going via OTEL -> Prometheus exporter, there were
couple issues:

- some newer metrics had non-standard units that ended up in metric
names like `pomerium_storage_global_cache_hits__hit__total`
- we had three additional tags (`otel_scope_name`,
`otel_scope_schema_url`, `otel_scope_version`) added to each metric,
which do not really carry much meaningful information for us and expand
metric cardinality.

This PR reverts those two changes and updates the prometheus exporter.

## Related issues

Related: https://github.com/open-telemetry/opentelemetry-go/issues/7039

## User Explanation

<!-- How would you explain this change to the user? If this
change doesn't create any user-facing changes, you can leave
this blank. If filled out, add the `docs` label -->

## Checklist

- [x] reference any related issues
- [ ] updated unit tests
- [x] add appropriate label (`enhancement`, `bug`, `breaking`,
`dependencies`, `ci`)
- [x] ready for review
This commit is contained in:
Denis Mishin 2025-07-24 14:34:11 -04:00 committed by GitHub
parent 8e7914482f
commit d9412f957a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 7 deletions

View file

@ -11,7 +11,11 @@ import (
var Meter metric.Meter
func init() {
e, err := prometheus.New(prometheus.WithNamespace("pomerium"))
e, err := prometheus.New(
prometheus.WithNamespace("pomerium"),
prometheus.WithoutUnits(),
prometheus.WithoutScopeInfo(),
)
if err != nil {
panic(err)
}