Skip to content

prometheus/client_model

Deprecation note

This repository used to contain the protocol buffer code that defined both the data model and the exposition format of Prometheus metrics. client_model was originally created because robust protobuf import tooling was non-existent at the time. Since then, tooling has improved (see Buf).

The generated Go code is still used in the public, stable API of client_golang until v2.

The source of truth for the exposition format has moved to prometheus/prometheus and is also available in the Buf registry.

History

Starting with v2.0.0, the Prometheus server stopped ingesting the protobuf-based exposition format. However, in v3.0.0 this restriction was lifted, and new features like native histograms were first introduced in the protobuf format. As of now, the PrometheusProto exposition format is an officially supported protocol that allows the community to experiment with new features.

Recommended Usage & Buf Tooling

Formerly existing support for languages other than Go (namely C++, Java, Python, and Ruby) has been removed from this repository.

For new consumers and SDKs in other languages (such as Rust, C++, Java, Python, and Ruby), we do not recommend manually copying proto files or depending on client_model. Instead, the modern preferred solution is to use Buf tooling to generate bindings directly on the SDK side with specific language options, maintaining a clean dependency chain.

The centralized Prometheus protobuf definitions are available in the Buf registry, sourced directly from the main Prometheus repository: buf.build/prometheus/prometheus (io.prometheus.client)

About

Data model artifacts for Prometheus.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors