mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 19:00:54 -06:00
Conditionally select a field to return in ResponseParser for InfluxDB
This patch also fixes "value[1] || value[0]" to not ignore zeros.
This commit is contained in:
parent
0573545d5a
commit
a101177b55
@ -11,14 +11,23 @@ export default class ResponseParser {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
var influxdb11format = query.toLowerCase().indexOf('show tag values') >= 0;
|
|
||||||
|
|
||||||
var res = {};
|
var res = {};
|
||||||
_.each(influxResults.series, serie => {
|
_.each(influxResults.series, serie => {
|
||||||
_.each(serie.values, value => {
|
_.each(serie.values, value => {
|
||||||
if (_.isArray(value)) {
|
if (_.isArray(value)) {
|
||||||
if (influxdb11format) {
|
// In general, there are 2 possible shapes for the returned value.
|
||||||
addUnique(res, value[1] || value[0]);
|
// The first one is a two-element array,
|
||||||
|
// where the first element is somewhat a metadata value:
|
||||||
|
// the tag name for SHOW TAG VALUES queries,
|
||||||
|
// the time field for SELECT queries, etc.
|
||||||
|
// The second shape is an one-element array,
|
||||||
|
// that is containing an immediate value.
|
||||||
|
// For example, SHOW FIELD KEYS queries return such shape.
|
||||||
|
// Note, pre-0.11 versions return
|
||||||
|
// the second shape for SHOW TAG VALUES queries
|
||||||
|
// (while the newer versions—first).
|
||||||
|
if (value[1] !== undefined) {
|
||||||
|
addUnique(res, value[1]);
|
||||||
} else {
|
} else {
|
||||||
addUnique(res, value[0]);
|
addUnique(res, value[0]);
|
||||||
}
|
}
|
||||||
|
@ -85,6 +85,32 @@ describe('influxdb response parser', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('SELECT response', () => {
|
||||||
|
var query = 'SELECT "usage_iowait" FROM "cpu" LIMIT 10';
|
||||||
|
var response = {
|
||||||
|
results: [
|
||||||
|
{
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: 'cpu',
|
||||||
|
columns: ['time', 'usage_iowait'],
|
||||||
|
values: [[1488465190006040638, 0.0], [1488465190006040638, 15.0], [1488465190006040638, 20.2]],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
var result = parser.parse(query, response);
|
||||||
|
|
||||||
|
it('should return second column', () => {
|
||||||
|
expect(_.size(result)).toBe(3);
|
||||||
|
expect(result[0].text).toBe(0.0);
|
||||||
|
expect(result[1].text).toBe(15.0);
|
||||||
|
expect(result[2].text).toBe(20.2);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('SHOW FIELD response', () => {
|
describe('SHOW FIELD response', () => {
|
||||||
var query = 'SHOW FIELD KEYS FROM "cpu"';
|
var query = 'SHOW FIELD KEYS FROM "cpu"';
|
||||||
describe('response from 0.10.0', () => {
|
describe('response from 0.10.0', () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user