tsqtsq - v1.2.0
    Preparing search index...

    Getting Started

    npm install tsqtsq
    

    Import the promql query builder and the Expression class:

    import { promql, Expression, MatchingOperator } from 'tsqtsq';
    

    Use Expression to create metric selectors with label matching:

    const expr = new Expression({
    metric: 'http_requests_total',
    values: { job: 'api-server', handler: '/api/v1/query' },
    defaultOperator: MatchingOperator.equal,
    });

    String(expr);
    // => http_requests_total{job="api-server", handler="/api/v1/query"}

    Pass expressions into promql functions to build full PromQL queries:

    const expr = new Expression({
    metric: 'http_requests_total',
    values: { job: 'api-server' },
    defaultOperator: MatchingOperator.equal,
    });

    promql.rate({ expr: String(expr) });
    // => rate(http_requests_total{job="api-server"}[$__rate_interval])

    promql.sum({ expr: promql.rate({ expr: String(expr) }), by: ['handler'] });
    // => sum by (handler) (rate(http_requests_total{job="api-server"}[$__rate_interval]))

    All functions return plain strings, so they compose naturally.