|
|
|
import { queryByConfig, QueryConfig } from '..';
|
|
|
|
|
|
|
|
import { DatasourceType, QueryType } from '../connectors';
|
|
|
|
|
|
|
|
import { ArgumentParser } from 'argparse';
|
|
|
|
import * as _ from 'lodash';
|
|
|
|
|
|
|
|
const parser = new ArgumentParser();
|
|
|
|
|
|
|
|
// TODO: parse version from package.json
|
|
|
|
parser.add_argument('-v', '--version', { action: 'version', version: '0.1.1' });
|
|
|
|
parser.add_argument('-u', '--url', { help: 'Datasource URL', required: true });
|
|
|
|
parser.add_argument('-q', '--query', { help: 'Query Template', required: true });
|
|
|
|
parser.add_argument('-f', '--from', { help: 'From timestamp (ms), e.g. 1660670020000. If not specified, `now-5m` is used' });
|
|
|
|
parser.add_argument('-t', '--to', { help: 'To timestamp (ms), e.g. 1660670026000. If not specified, `now` is used' });
|
|
|
|
|
|
|
|
const args = parser.parse_args();
|
|
|
|
|
|
|
|
const timeNowInMs = new Date().getTime();
|
|
|
|
|
|
|
|
const PROMETHEUS_URL = args.url;
|
|
|
|
const QUERY = args.query;
|
|
|
|
const FROM = args.from || timeNowInMs - 5 * 60 * 1000;
|
|
|
|
const TO = args.to || timeNowInMs;
|
|
|
|
|
|
|
|
const datasource = {
|
|
|
|
type: DatasourceType.PROMETHEUS,
|
|
|
|
// TODO: remove PROMETHEUS_URL from here
|
|
|
|
url: `${PROMETHEUS_URL}/api/v1/query_range?query=${QUERY}&start=1543411320&end=1543432950&step=30`
|
|
|
|
}
|
|
|
|
const targets = [];
|
|
|
|
const queryConfig = new QueryConfig(QueryType.DIRECT, datasource, targets);
|
|
|
|
queryByConfig(queryConfig, PROMETHEUS_URL, FROM, TO)
|
|
|
|
.then(res => {
|
|
|
|
console.log(res);
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
console.error('Query error: ', err);
|
|
|
|
});
|
|
|
|
|