1.1.0 • Published 6 years ago

@keptn/pitometer v1.1.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 years ago

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

  1. Run npm install -S @keptn/pitometer

  2. 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
  3. 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.

1.1.0

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago