@keptn/pitometer v1.1.0
Pitometer
Pitometer is a Node.js module that helps you to qualify the overall performance or quality of applications using a well defined specification format.
The specification is done using the Perfspec format which is a declarative way to define which metrics you want to pay attention to, the sources to collect them from and how to grade/interpret the results.
Pitometer is pluggable and accepts different sources and grading mechanisms. Right now, source plugins for Dynatrace and Prometheus and a grader for thresholds are available but it's easy to write new sources and graders.
Quickstart
Run
npm install -S @keptn/pitometer
Install the graders and sources that are used in your Perfspec file:
npm install -S @keptn/pitometer-grader-threshold npm install -S @keptn/pitometer-source-prometheus npm install -S @keptn/pitometer-source-dynatrace
Require, configure and register all components and run the Perfspec file.
const Pitometer = require('@keptn/pitometer').Pitometer; const DynatraceSource = require('@keptn/pitometer-source-dynatrace').Source; const PrometheusSource = require('@keptn/pitometer-source-prometheus').Source; const ThresholdGrader = require('@keptn/pitometer-grader-threshold').Grader; const pitometer = new Pitometer(); // Register a Prometheus source that will be used if the source ID in your // Perfspec matches 'Prometheus' pitometer.addSource('Prometheus', new PrometheusSource({ queryUrl: '<PROMETHEUS_PROMQL_ENDPOINT>', })); // Register a source that will be used if the source ID in your Perfspec matches // 'Dynatrace' pitometer.addSource('Dynatrace', new DynatraceSource({ baseUrl: '<DYNATRACE_ENVIRONMENT_URL>', apiToken: '<DYNATRACE_API_TOKEN>', // Optional: A logger to be used for debugging API requests // log: console.log, })); // Register a grader for thresholds that will be used if the grader type // matches 'Threshold' pitometer.addGrader('Threshold', new ThresholdGrader()); // Load a Perfspec - see the samples directory const perfspec = require('./samples/perfspec-sample.json'); // Run the Perfspec, passing in an optional context parameter 'prod' // and log the result out to the console pitometer.run(perfspec, { context: 'Optional context that is passed to all sources and graders', timeStart: START_TIME_IN_SECONDS, timeEnd: END_TIME_IN_SECONDS, }) .then((results) => console.log(JSON.stringify(results))) .catch((err) => console.error(err));
API Documentation
The API documentation can be found here.