This is the Go client library for Prometheus. It has two separate parts, one for instrumenting application code, and one for creating clients that talk to the Prometheus HTTP API.
This library requires Go1.7 or later.
While our goal is to follow Semantic Versioning, this repository is still pre-1.0.0. To quote the Semantic Versioning spec: “Anything may change at any time. The public API should not be considered stable.” We know that this is at odds with the widespread use of this library. However, just declaring something 1.0.0 doesn't make it 1.0.0. Instead, we are working towards a 1.0.0 release that actually deserves its major version number.
Having said that, we aim for always keeping the tip of master in a workable state and for only introducing ”mildly” breaking changes up to and including v0.9.0. After that, a number of ”hard” breaking changes are planned, see the v0.10.0 milestone, which should get the library much closer to 1.0.0 state.
Dependency management in Go projects is still in flux, and there are many tools floating around. While dep might develop into the de-facto standard tool, it is still officially experimental. The roadmap for this library has been laid out with a lot of sometimes painful experience in mind. We really cannot adjust it every other month to the needs of the currently most popular or most promising Go dependency management tool. The recommended course of action with dependency management tools is the following:
The
prometheus directory
contains the instrumentation library. See the
best practices section of the
Prometheus documentation to learn more about instrumenting applications.
The
examples directory
contains simple examples of instrumented code.
The
api/prometheus directory
contains the client for the
Prometheus HTTP API. It allows you
to write Go applications that query time series data from a Prometheus
server. It is still in alpha stage.
model, extraction, and text?The model packages has been moved to
prometheus/common/model.
The extraction and text packages are now contained in
prometheus/common/expfmt.
See the contributing guidelines and the Community section of the homepage.