UNPKG

kibana-123

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

55 lines (50 loc) 1.59 kB
var _ = require('lodash'); var fetch = require('node-fetch'); var moment = require('moment'); var Datasource = require('../lib/classes/datasource'); var Promise = require('bluebird'); module.exports = new Datasource ('static', { aliases: ['value'], args: [ { name: 'value', // _test-data.users.*.data types: ['number', 'string'], help: 'The single value to to display, you can also pass several values and I will interpolate them evenly ' + 'across your time range.' }, { name: 'label', types: ['string', 'null'], help: 'A quick way to set the label for the series. You could also use the .label() function' } ], help: 'Draws a single value across the chart', fn: function staticFn(args, tlConfig) { var data; var target = tlConfig.getTargetSeries(); if (typeof args.byName.value === 'string') { var points = args.byName.value.split(':'); var begin = _.first(target)[0]; var end = _.last(target)[0]; var step = (end - begin) / (points.length - 1); data = _.map(points, function (point, i) { return [begin + (i * step), parseFloat(point)]; }); } else { data = _.map(target, function (bucket) { return [bucket[0], args.byName.value]; }); } return Promise.resolve({ type: 'seriesList', list: [ { data: data, type: 'series', label: args.byName.label == null ? String(args.byName.value) : args.byName.label, fit: args.byName.fit || 'average' } ] }); } });