Skip to content

Commit 88770a1

Browse files
authored
fix: request apiCalleeNameCount only for API_TRACE (#739)
1 parent e40cae9 commit 88770a1

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

projects/distributed-tracing/src/shared/dashboard/widgets/trace-detail/data/api-trace-detail-data-source.model.test.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ModelApi } from '@hypertrace/hyperdash';
2+
import { ObservabilityTraceType } from '@hypertrace/observability';
23
import { spanIdKey } from '../../../../graphql/model/schema/span';
34
import { traceIdKey, traceTypeKey, TRACE_SCOPE } from '../../../../graphql/model/schema/trace';
45
import {
@@ -8,7 +9,7 @@ import {
89
import { ObservedGraphQlRequest } from '../../../data/graphql/graphql-query-event.service';
910
import { ApiTraceDetailDataSourceModel } from './api-trace-detail-data-source.model';
1011

11-
describe('Trace detail data source model', () => {
12+
describe('API Trace detail data source model', () => {
1213
const testTimeRange = { startTime: new Date(1568907645141), endTime: new Date(1568911245141) };
1314
let model!: ApiTraceDetailDataSourceModel;
1415
let emittedQueries: unknown;
@@ -66,7 +67,11 @@ describe('Trace detail data source model', () => {
6667
});
6768
});
6869

69-
test('builds expected request', () => {
70+
test('builds expected request for API_TRACE', () => {
71+
model.trace = {
72+
[traceIdKey]: 'test',
73+
[traceTypeKey]: ObservabilityTraceType.Api
74+
};
7075
const data$ = model.getData();
7176
data$.subscribe();
7277

@@ -86,6 +91,25 @@ describe('Trace detail data source model', () => {
8691
);
8792
});
8893

94+
test('builds expected request', () => {
95+
const data$ = model.getData();
96+
data$.subscribe();
97+
98+
expect(emittedQueries).toEqual(
99+
expect.objectContaining({
100+
requestType: TRACE_GQL_REQUEST,
101+
traceId: 'test',
102+
spanLimit: 0,
103+
timestamp: undefined,
104+
traceProperties: expect.arrayContaining([
105+
expect.objectContaining({ name: 'tags' }),
106+
expect.objectContaining({ name: 'traceId' }),
107+
expect.objectContaining({ name: 'statusCode' })
108+
])
109+
})
110+
);
111+
});
112+
89113
test('builds expected request with start time', () => {
90114
model.startTime = 1568907645141;
91115
const data$ = model.getData();
@@ -100,8 +124,7 @@ describe('Trace detail data source model', () => {
100124
traceProperties: expect.arrayContaining([
101125
expect.objectContaining({ name: 'tags' }),
102126
expect.objectContaining({ name: 'traceId' }),
103-
expect.objectContaining({ name: 'statusCode' }),
104-
expect.objectContaining({ name: 'apiCalleeNameCount' })
127+
expect.objectContaining({ name: 'statusCode' })
105128
])
106129
})
107130
);

projects/distributed-tracing/src/shared/dashboard/widgets/trace-detail/data/api-trace-detail-data-source.model.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
import { Model } from '@hypertrace/hyperdash';
2-
import { Trace, traceIdKey } from '../../../../graphql/model/schema/trace';
2+
import { Trace, traceIdKey, traceTypeKey } from '../../../../graphql/model/schema/trace';
33

44
import { Dictionary } from '@hypertrace/common';
5+
import { ObservabilityTraceType } from '@hypertrace/observability';
56
import { TraceDetailData, TraceDetailDataSourceModel } from './trace-detail-data-source.model';
67

78
@Model({
89
type: 'api-trace-detail-data-source'
910
})
1011
export class ApiTraceDetailDataSourceModel extends TraceDetailDataSourceModel {
1112
protected getTraceAttributes(): string[] {
12-
return [...super.getTraceAttributes(), 'traceId', 'apiCalleeNameCount'];
13+
const attributes: string[] = [...super.getTraceAttributes(), 'traceId'];
14+
if (this.trace[traceTypeKey] === ObservabilityTraceType.Api) {
15+
attributes.push('apiCalleeNameCount');
16+
}
17+
18+
return attributes;
1319
}
1420

1521
protected constructTraceDetailData(trace: Trace): ApiTraceDetailData {

0 commit comments

Comments
 (0)