Tempo: Handle empty responses in ServiceGraph (#77539)

pull/77547/head
Fabrizio 2 years ago committed by GitHub
parent d62170e4ce
commit b13395afbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      public/app/plugins/datasource/tempo/graphTransform.test.ts
  2. 2
      public/app/plugins/datasource/tempo/graphTransform.ts

@ -80,6 +80,27 @@ it('assigns correct field type even if values are numbers', async () => {
]);
});
it('do not fail on response with empty list', async () => {
const range = {
from: dateTime('2000-01-01T00:00:00'),
to: dateTime('2000-01-01T00:01:00'),
};
const { nodes } = mapPromMetricsToServiceMap([], {
...range,
raw: range,
});
expect(nodes.fields).toMatchObject([
{ name: 'id', values: [], type: FieldType.string },
{ name: 'title', values: [], type: FieldType.string },
{ name: 'subtitle', type: FieldType.string, values: [] },
{ name: 'mainstat', values: [], type: FieldType.number },
{ name: 'secondarystat', values: [], type: FieldType.number },
{ name: 'arc__success', values: [], type: FieldType.number },
{ name: 'arc__failed', values: [], type: FieldType.number },
]);
});
describe('mapPromMetricsToServiceMap', () => {
it('transforms prom metrics to service graph', async () => {
const range = {

@ -249,7 +249,7 @@ function createServiceMapDataFrames() {
* @param responses
*/
function getMetricFrames(responses: DataQueryResponse[]): Record<string, DataFrameView> {
return responses[0].data.reduce<Record<string, DataFrameView>>((acc, frameDTO) => {
return (responses[0]?.data || []).reduce<Record<string, DataFrameView>>((acc, frameDTO) => {
const frame = toDataFrame(frameDTO);
acc[frame.refId ?? 'A'] = new DataFrameView(frame);
return acc;

Loading…
Cancel
Save