项目作者: huynhsamha

项目描述 :
Prometheus Exporter for RocksJava. Monitor Java RocksDB by using Prometheus and Grafana.
高级语言: Java
项目地址: git://github.com/huynhsamha/java-rocksdb-prometheus-exporter.git


Java RocksDB Prometheus Exporter

Prometheus Exporter for RocksJava. Monitor Java RocksDB by using Prometheus and Grafana.

Quick start

Maven

In development

Gradle

In development

Jar Dependencies

In development

Usage

Exposing metrics from Java

This is a simple example how we can expose RocksDB metrics. Your RocksDB metrics will be exposed at http://localhost:9098/rocksdb_stats.

  1. public class Example {
  2. public static void main(String[] args) {
  3. // HTTP server port
  4. int port = 9098;
  5. // RocksDB instance from your application
  6. RocksDB db = null; // db instance
  7. Statistics stats = null; // stats your RocksDB instance
  8. List<ColumnFamilyHandle> cfHandles = null; // stats your Column Families
  9. try {
  10. // wrap RocksDB instance to jRocksDB
  11. JRocksDB jRocksDB = new JRocksDB(db, stats, cfHandles);
  12. // init an exporter instance for your RocksDB
  13. JRocksDBExporter exporter = new JRocksDBExporter(port, jRocksDB);
  14. // start HTTP server on port for exposing RocksDB metrics
  15. exporter.start();
  16. System.out.println("Server is running on port " + port);
  17. System.out.println(">>> RocksDB metrics is exposed at http://localhost:" + port + "/rocksdb_stats");
  18. } catch (Exception ex) {
  19. System.err.println(ex);
  20. }
  21. }
  22. }

RocksDB Metrics

There are 2 metric types exported from http://localhost:9098/rocksdb_stats

  • rocksdb_props: stats for Column Families (CF), including default, All_CFs and your custom CFs.
  • rocksdb_stats: stats for RocksDB from TickerType of RocksDB Statistics.

rocksdb_props

  • Format: rocksdb_props{cf = "[CF_NAME]", prop = "[CF_PROPERTIY]"}
  • cf: Column Family name, including default, All_CFs and your custom CFs.
  • prop: Column Family property, from rocksdb/include/rocksdb/db.h

rocksdb_stats

  • Format: rocksdb_stats{ticker = "[TICKER_TYPE_NAME]"}
  • ticker: TickerType of RocksDB Statistics, Java Doc

Prometheus Configure

Add a job rocksdb_stats to your prometheus.yml

  1. scrape_configs:
  2. - job_name: rocksdb_stats
  3. scrape_interval: 5s
  4. scrape_timeout: 5s
  5. metrics_path: "/rocksdb_stats"
  6. static_configs:
  7. - targets: # list your RocksDB instances
  8. - localhost:9098

Grafana Dashboard

In development

Java Doc

In development