mirror of
https://github.com/grafana/grafana.git
synced 2026-07-30 00:08:10 -05:00
Prometheus: Update heatmap unit tests (#72404)
introduce tests for new potential heatmap response type, revert prior changes to tests
This commit is contained in:
@@ -360,7 +360,8 @@ describe('Prometheus Result Transformer', () => {
|
||||
expect(series.data[1].meta?.preferredVisualisationType).toEqual('rawPrometheus' as PreferredVisualisationType);
|
||||
});
|
||||
|
||||
it('results with deprecated heatmap format should be correctly transformed', () => {
|
||||
// Heatmap frames can either have a name of the metric, or if there is no metric, a name of "Value"
|
||||
it('results with heatmap format (no metric name) should be correctly transformed', () => {
|
||||
const options = {
|
||||
targets: [
|
||||
{
|
||||
@@ -420,7 +421,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
expect(series.data[0].fields[2].name).toEqual('2');
|
||||
expect(series.data[0].fields[3].name).toEqual('+Inf');
|
||||
});
|
||||
it('results with heatmap format should be correctly transformed', () => {
|
||||
it('results with heatmap format (with metric name) should be correctly transformed', () => {
|
||||
const options = {
|
||||
targets: [
|
||||
{
|
||||
@@ -437,9 +438,10 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1' },
|
||||
labels: { le: '1', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
@@ -448,9 +450,10 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf' },
|
||||
labels: { le: '+Inf', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
@@ -459,9 +462,10 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2' },
|
||||
labels: { le: '2', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
@@ -478,7 +482,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
expect(series.data[0].fields[3].name).toEqual('+Inf');
|
||||
});
|
||||
|
||||
it('results with heatmap format from multiple queries should be correctly transformed', () => {
|
||||
it('results with heatmap format (no metric name) from multiple queries should be correctly transformed', () => {
|
||||
const options = {
|
||||
targets: [
|
||||
{
|
||||
@@ -499,6 +503,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1' },
|
||||
@@ -510,6 +515,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2' },
|
||||
@@ -521,6 +527,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf' },
|
||||
@@ -532,6 +539,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1' },
|
||||
@@ -543,6 +551,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2' },
|
||||
@@ -554,6 +563,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf' },
|
||||
@@ -569,6 +579,103 @@ describe('Prometheus Result Transformer', () => {
|
||||
expect(series.data[0].fields[2].values).toEqual([10, 0, 30]);
|
||||
expect(series.data[0].fields[3].values).toEqual([10, 0, 10]);
|
||||
});
|
||||
it('results with heatmap format (with metric name) from multiple queries should be correctly transformed', () => {
|
||||
const options = {
|
||||
targets: [
|
||||
{
|
||||
format: 'heatmap',
|
||||
refId: 'A',
|
||||
},
|
||||
{
|
||||
format: 'heatmap',
|
||||
refId: 'B',
|
||||
},
|
||||
],
|
||||
} as unknown as DataQueryRequest<PromQuery>;
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'metric_name',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf', __name__: 'metric_name' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
} as unknown as DataQueryResponse;
|
||||
|
||||
const series = transformV2(response, options, {});
|
||||
expect(series.data[0].fields.length).toEqual(4);
|
||||
expect(series.data[0].fields[1].values).toEqual([10, 10, 0]);
|
||||
expect(series.data[0].fields[2].values).toEqual([10, 0, 30]);
|
||||
expect(series.data[0].fields[3].values).toEqual([10, 0, 10]);
|
||||
});
|
||||
|
||||
it('results with heatmap format and multiple histograms should be grouped and de-accumulated by non-le labels', () => {
|
||||
const options = {
|
||||
@@ -588,6 +695,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1', additionalProperty: '10' },
|
||||
@@ -599,6 +707,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 30],
|
||||
labels: { le: '2', additionalProperty: '10' },
|
||||
@@ -610,6 +719,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40],
|
||||
labels: { le: '+Inf', additionalProperty: '10' },
|
||||
@@ -622,6 +732,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [0, 10, 10],
|
||||
labels: { le: '1', additionalProperty: '20' },
|
||||
@@ -633,6 +744,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [20, 10, 40],
|
||||
labels: { le: '2', additionalProperty: '20' },
|
||||
@@ -644,6 +756,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 60],
|
||||
labels: { le: '+Inf', additionalProperty: '20' },
|
||||
@@ -656,6 +769,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 30, 60],
|
||||
labels: { le: '1', additionalProperty: '30' },
|
||||
@@ -667,6 +781,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 40, 60],
|
||||
labels: { le: '2', additionalProperty: '30' },
|
||||
@@ -678,6 +793,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [40, 40, 60],
|
||||
labels: { le: '+Inf', additionalProperty: '30' },
|
||||
@@ -719,6 +835,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1' },
|
||||
@@ -736,6 +853,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4, 3, 2, 1] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40, 90, 14, 21],
|
||||
labels: { le: '6' },
|
||||
@@ -767,6 +885,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [10, 10, 0],
|
||||
labels: { le: '1' },
|
||||
@@ -784,6 +903,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4, 3, 2, 1] },
|
||||
{
|
||||
name: 'Value',
|
||||
type: FieldType.number,
|
||||
values: [30, 10, 40, 90, 14, 21],
|
||||
labels: { le: '6' },
|
||||
|
||||
Reference in New Issue
Block a user