nosqlbench/devdocs/devguide
Jeff Banks 02ff160b3c
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>
2023-05-09 09:52:42 -05:00
..
_tosort Metrics Publishing (#1234) 2023-05-09 09:52:42 -05:00
apis update wip devguide 2021-02-04 17:47:13 -06:00
drivers naming: use ParsedOp instead of ParsedCommand 2021-09-13 09:43:19 -05:00
nbui update wip devguide 2021-02-04 17:47:13 -06:00
adding_scenarios.md update wip devguide 2021-02-04 17:47:13 -06:00
design_principles.md update wip devguide 2021-02-04 17:47:13 -06:00
hybrid_ratelimiter.md docs updates 2020-12-02 14:18:39 -06:00
hybrid_ratelimiter.png update docs for hybrid ratelimiter 2020-12-04 10:24:37 -06:00
hybrid_ratelimiter.svg reorg stale docs 2021-02-04 17:46:58 -06:00
java_versions.md update wip devguide 2021-02-04 17:47:13 -06:00
nb_docs.md update wip devguide 2021-02-04 17:47:13 -06:00
nbio_api.md update wip devguide 2021-02-04 17:47:13 -06:00
project_structure.md update wip devguide 2021-02-04 17:47:13 -06:00
README.md update wip devguide 2021-02-04 17:47:13 -06:00
scripting_extensions.md update wip devguide 2021-02-04 17:47:13 -06:00

Developing with NoSQLBench

This is an overview of how to develop within the NoSQLBench ecosystem. This guide

Welcome All

The NoSQLBench project welcomes all contributors, so long as you are willing to abide by the code of CODE OF CONDUCT. Further, you must be willing to license your contributions under the APLv2.

Basics

Herein, and in other docs, you may see NoSQLBench abbreviated as NB (the project) or nb (the command).

This dev guide covers detailed topics which can help you get bootstrapped as a contributor. It does not try to cover all the topics which are included in the main documentation. What you see in this guide wil assume you have some familiarity with NoSQLBench as a user.

Topics

  • Design Principles - This is a short treatise that explains the architectural principles behind NoSQLBench.
  • Project Structure - An explanation of the module naming and dependency structure.
  • Dynamic Endpoints - An introduction to the appserver mode and how to write new webservices for it.
  • Driver How-To - An introduction for new driver designers, including API guides and driver standards.
  • NBUI Development - An introduction to the UI subsystem (NBUI), and tricks for effective development.
  • Java versions - A map of where java versions are configured in the project.
  • Scripting Extensions - A guide on what scripting extensions are, how they are used, and how to build one.
  • Documentation Sources - Where docs are located
  • Adding Scenarios - How to add built-in scenarios

API Naming

In general, internal APIs which are suggested for use throughout NoSQLBench will start with the NB prefix, such as NBIO, or NBErrors. This makes these APIs easier to find and reference when building new drivers or core functionality.

New contributors should familiarize themselves with these APIs so that they can employ them when appropriate. These APIs should also have sufficient documenation here and in Javadoc to explain their usage.

API Guides