Получение метрик cassandra cql из приложения весенней загрузки - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу получить метрики запроса базы данных из приложения springboot cassandra и открыть его для конечной точки prometheus.

Уже есть реализация для springboot + postgres и его работа с r2db c -proxy. Поскольку r2db c не обеспечивает поддержку Кассандры. ищу любой пример реализации.

После редактирования кода для комментария ниже:

    String contactPoint = System.getProperty("contactPoint", "127.0.0.1");
    // init default prometheus stuff
    DefaultExports.initialize();
    // setup Prometheus HTTP server
    Optional<HTTPServer> prometheusServer = Optional.empty();
    try {
        prometheusServer = Optional.of(new HTTPServer(Integer.getInteger("prometheusPort", 9095)));
    } catch (IOException e) {
        System.out.println("Exception when creating HTTP server for Prometheus: " + e.getMessage());
    }
    Cluster cluster = Cluster.builder()
            .addContactPointsWithPorts(new InetSocketAddress(contactPoint, 9042))
            .withoutJMXReporting()
            .build();

    try (Session session = cluster.connect()) {
        MetricRegistry myRegistry = new MetricRegistry();
        myRegistry.registerAll(cluster.getMetrics().getRegistry());
        CollectorRegistry.defaultRegistry.register(new DropwizardExports(myRegistry));

        session.execute("create keyspace if not exists test with replication = {'class': 'SimpleStrategy', 'replication_factor': 1};");
        session.execute("create table if not exists test.abc (id int, t1 text, t2 text, primary key (id, t1));");
        session.execute("truncate test.abc;");

    }
    catch(IllegalStateException ex){
        System.out.println("metric registry fails to configure!!!!!");
        throw ex;
    }

}

}

1 Ответ

0 голосов
/ 23 апреля 2020
Драйвер

DataStax Java предоставляет метрики через библиотеку метрик Dropwizard ( версия драйвера 3.x , версия драйвера 4.x ), которые можно использовать в качестве конечной точки Prometheus при использовании стандартного Prometheus библиотеки, например io.prometheus.simpleclient_dropwizard, являющиеся частью Prometheus Java клиентская библиотека .

Вот пример для версии драйвера 4.x , но с небольшими изменениями это могло бы работать с 3.x также. Основная часть выглядит следующим образом:

MetricRegistry registry = session.getMetrics()
        .orElseThrow(() -> new IllegalStateException("Metrics are disabled"))
        .getRegistry();
CollectorRegistry.defaultRegistry.register(new DropwizardExports(registry));

остальное - просто создание сеанса, предоставление метрик через HTTP и т. Д. c.

...