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:
Jeff Banks
2023-05-09 09:52:42 -05:00
committed by GitHub
parent bca2d8a2ee
commit 02ff160b3c
149 changed files with 5713 additions and 4551 deletions

View File

@@ -2,20 +2,30 @@ mappings:
#- match: 'nosqlbench\\.workloads\\.(.+?)_(.+?)?_(.+?)\\.(.+?)\\.(.+?)_rate'
# nosqlbench_workloads_ cqliot_default_schema_tries_stddev{instance="172.17.0.2:9108",job="graphite_import"}
# meter avg rate (named scenarios)
- match: 'nosqlbench\.workloads\.([0-9a-zA-Z]+)_([0-9a-zA-Z]+)?_([^.]+)\.(.+?)\.m(1|5|15).rate'
match_type: regex
name: $4
labels:
workload: $1
scenario: $2
step: $3
alias: "${1}_${2}_${3}"
appname: "nosqlbench"
usermode: "named_scenario"
property: "m${5}_rate"
type: avg_rate
avg_of: "${5}m"
# meter avg rate (named scenarios)
- match: 'nosqlbench\.workloads\.([0-9a-zA-Z]+)_([0-9a-zA-Z]+)?_([^.]+)\.(.+?)\.m(1|5|15).rate'
match_type: regex
name: $4
labels:
# taken from the base file of named scenarios when invoked as
# nb5 <workload> <scenario> ...
workload: $1
# taken from the named scenario when invoked as above
scenario: $2
# taken from the step name when invoked as above
step: $3
# The alias (name) of the owning activity
alias: "${1}_${2}_${3}"
appname: "nosqlbench"
# when the user is invoking a named scenario, this should be set
usermode: "named_scenario"
property: "m${5}_rate"
# this should be added to any avg rate metrics
type: avg_rate
# this should be added to any avg rate metrics
avg_of: "${5}m"
# meter avg rate (ad hoc alias)
- match: 'nosqlbench\.workloads\.([0-9a-zA-Z]+)\.(.+?)\.m(1|5|15).rate'