Client libraries
Before you can monitor your services, you need to add instrumentation to their code via one of the Prometheus client libraries. These implement the Prometheus metric types.
Choose a Prometheus client library that matches the language in which your application is written. This lets you define and expose internal metrics via an HTTP endpoint on your application’s instance:
Unofficial third-party client libraries:
- Bash
- C
- C++
- Common Lisp
- Dart
- Elixir
- Erlang
- Haskell
- Lua for Nginx
- Lua for Tarantool
- .NET / C#
- Node.js
- OCaml
- Perl
- PHP
- R
- Rust
When Prometheus scrapes your instance's HTTP endpoint, the client library sends the current state of all tracked metrics to the server.
If no client library is available for your language, or you want to avoid dependencies, you may also implement one of the supported exposition formats yourself to expose metrics.
When implementing a new Prometheus client library, please follow the guidelines on writing client libraries. Note that this document is still a work in progress. Please also consider consulting the development mailing list. We are happy to give advice on how to make your library as useful and consistent as possible.
This documentation is open-source. Please help improve it by filing issues or pull requests.