1# OpenCensus Prometheus Stats Exporter
2
3The *OpenCensus Prometheus Stats Exporter* is a stats exporter that exports data to
4Prometheus. [Prometheus](https://prometheus.io/) is an open-source systems monitoring and alerting
5toolkit originally built at [SoundCloud](https://soundcloud.com/).
6
7## Quickstart
8
9### Prerequisites
10
11To use this exporter, you need to install, configure and start Prometheus first. Follow the
12instructions [here](https://prometheus.io/docs/introduction/first_steps/).
13
14### Hello "Prometheus Stats"
15
16#### Add the dependencies to your project
17
18For Maven add to your `pom.xml`:
19```xml
20<dependencies>
21  <dependency>
22    <groupId>io.opencensus</groupId>
23    <artifactId>opencensus-api</artifactId>
24    <version>0.16.1</version>
25  </dependency>
26  <dependency>
27    <groupId>io.opencensus</groupId>
28    <artifactId>opencensus-exporter-stats-prometheus</artifactId>
29    <version>0.16.1</version>
30  </dependency>
31  <dependency>
32    <groupId>io.opencensus</groupId>
33    <artifactId>opencensus-impl</artifactId>
34    <version>0.16.1</version>
35    <scope>runtime</scope>
36  </dependency>
37</dependencies>
38```
39
40For Gradle add to your dependencies:
41```groovy
42compile 'io.opencensus:opencensus-api:0.16.1'
43compile 'io.opencensus:opencensus-exporter-stats-prometheus:0.16.1'
44runtime 'io.opencensus:opencensus-impl:0.16.1'
45```
46
47#### Register the exporter
48
49```java
50public class MyMainClass {
51  public static void main(String[] args) {
52    // Creates a PrometheusStatsCollector and registers it to the default Prometheus registry.
53    PrometheusStatsCollector.createAndRegister();
54
55    // Uses a simple Prometheus HTTPServer to export metrics.
56    // You can use a Prometheus PushGateway instead, though that's discouraged by Prometheus:
57    // https://prometheus.io/docs/practices/pushing/#should-i-be-using-the-pushgateway.
58    io.prometheus.client.exporter.HTTPServer server =
59      new HTTPServer(/*host*/ "localhost", /*port*/  9091, /*daemon*/ true);
60
61    // Your code here.
62    // ...
63  }
64}
65```
66
67In this example, you should be able to see all the OpenCensus Prometheus metrics by visiting
68localhost:9091/metrics. Every time when you visit localhost:9091/metrics, the metrics will be
69collected from OpenCensus library and refreshed.
70
71#### Exporting
72
73After collecting stats from OpenCensus, there are multiple options for exporting them.
74See [Exporting via HTTP](https://github.com/prometheus/client_java#http), [Exporting to a Pushgateway](https://github.com/prometheus/client_java#exporting-to-a-pushgateway)
75and [Bridges](https://github.com/prometheus/client_java#bridges).
76
77#### Java Versions
78
79Java 7 or above is required for using this exporter.
80
81## FAQ
82