mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
Metrics Publishing (#1234)
Included the following with core changes to allow labeled metrics for Prometheus exposition format publishing. * javadoc updates * remove extra types * use NBLabeledElement instead of NBNamedElement * contextualize NBLabeledElement for graphite/metrics * externalize labeled ScriptContext to API * add labels to NicerTimer * remove partial packaging * more progress on formatting for prom exposition format * added metrics diagram * resolve build issues with label params * resolve build issues with label params * prometheus export services * added PromExpoFormat Tests for NBMetricMeter(Counting+Sampling) and NBMetricTimer(Counting) * added test for Gauge Formatting * added Gauge Formatting as well as Sampling values (count, stdev ...) * added sketch for metrics labeling contexts * add NBLabeledElement in all the places, retool calling paths to use it * synchronize antlr versions after partial snyk change * unbreak static initializer block after IntelliJ "fixed" it. * engine-api - adapt to NBLabeledElement * adapters-api - adapt to NBLabeledElement * nb-api - adapt to NBLabeledElement * engine-core - adapt to NBLabeledElement * misc-adapters - adapt to NBLabeledElement * streaming-adapters - adapt to NBLabeledElement * add missing test * initial implementation of a prom push reporter * Resolve build issue with parseGlobalOptions * replaced with PromPushReporter * cleanup unused deps * dependency removal for micrometer * allow empty labels for tests * change space.getName to space.getSpaceName * cleanup poms * graphite linearization now includes space element * http adapter should only depend on adapters API * http space does not create its own metric names * import cleanups * improved javadocs * introduce component concepts --------- Co-authored-by: Jonathan Shook <jshook@gmail.com> Co-authored-by: Mike Yaacoub <mike.yaacoub@datastax.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022 nosqlbench
|
||||
* Copyright (c) 2022-2023 nosqlbench
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,7 +17,7 @@
|
||||
package io.nosqlbench.engine.core.script;
|
||||
|
||||
import com.codahale.metrics.Histogram;
|
||||
import io.nosqlbench.api.engine.activityimpl.ActivityDef;
|
||||
import io.nosqlbench.api.config.NBLabeledElement;
|
||||
import io.nosqlbench.api.engine.metrics.ActivityMetrics;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -29,12 +29,12 @@ public class MetricsIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void testHistogramLogger() {
|
||||
ActivityDef ad = ActivityDef.parseActivityDef("alias=foo;driver=diag;op=noop");
|
||||
Histogram testhistogram = ActivityMetrics.histogram(ad, "testhistogram", 3);
|
||||
final NBLabeledElement labeled = NBLabeledElement.forKV("alias","foo","driver","diag","op","noop");
|
||||
final Histogram testhistogram = ActivityMetrics.histogram(labeled, "testhistogram", 3);
|
||||
ActivityMetrics.addHistoLogger("testsession", ".*","testhisto.log","1s");
|
||||
testhistogram.update(400);
|
||||
testhistogram.getSnapshot();
|
||||
File logfile = new File("testhisto.log");
|
||||
final File logfile = new File("testhisto.log");
|
||||
assertThat(logfile).exists();
|
||||
assertThat(logfile.lastModified()).isGreaterThan(System.currentTimeMillis()-10000);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user