Skip to content

Commit a7ddd2d

Browse files
authored
chore: do not send field context as tag for deprecated fields (#8902)
1 parent 4d72f47 commit a7ddd2d

File tree

1 file changed

+60
-10
lines changed

1 file changed

+60
-10
lines changed

frontend/src/api/v5/queryRange/prepareQueryRangePayloadV5.ts

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,46 @@ function getSignalType(dataSource: string): 'traces' | 'logs' | 'metrics' {
6666
return 'metrics';
6767
}
6868

69-
/**
70-
* Creates base spec for builder queries
71-
*/
69+
function isDeprecatedField(fieldName: string): boolean {
70+
const deprecatedIntrinsicFields = [
71+
'traceID',
72+
'spanID',
73+
'parentSpanID',
74+
'spanKind',
75+
'durationNano',
76+
'statusCode',
77+
'statusMessage',
78+
'statusCodeString',
79+
];
80+
81+
const deprecatedCalculatedFields = [
82+
'responseStatusCode',
83+
'externalHttpUrl',
84+
'httpUrl',
85+
'externalHttpMethod',
86+
'httpMethod',
87+
'httpHost',
88+
'dbName',
89+
'dbOperation',
90+
'hasError',
91+
'isRemote',
92+
'serviceName',
93+
'httpRoute',
94+
'msgSystem',
95+
'msgOperation',
96+
'dbSystem',
97+
'rpcSystem',
98+
'rpcService',
99+
'rpcMethod',
100+
'peerService',
101+
];
102+
103+
return (
104+
deprecatedIntrinsicFields.includes(fieldName) ||
105+
deprecatedCalculatedFields.includes(fieldName)
106+
);
107+
}
108+
72109
function createBaseSpec(
73110
queryData: IBuilderQuery,
74111
requestType: RequestType,
@@ -140,16 +177,29 @@ function createBaseSpec(
140177
selectFields: isEmpty(nonEmptySelectColumns)
141178
? undefined
142179
: nonEmptySelectColumns?.map(
143-
(column: any): TelemetryFieldKey => ({
144-
name: column.name ?? column.key,
145-
fieldDataType:
146-
column?.fieldDataType ?? (column?.dataType as FieldDataType),
147-
fieldContext: column?.fieldContext ?? (column?.type as FieldContext),
148-
signal: column?.signal ?? undefined,
149-
}),
180+
(column: any): TelemetryFieldKey => {
181+
const fieldName = column.name ?? column.key;
182+
const isDeprecated = isDeprecatedField(fieldName);
183+
184+
const fieldObj: TelemetryFieldKey = {
185+
name: fieldName,
186+
fieldDataType:
187+
column?.fieldDataType ?? (column?.dataType as FieldDataType),
188+
signal: column?.signal ?? undefined,
189+
};
190+
191+
// Only add fieldContext if the field is NOT deprecated
192+
if (!isDeprecated && fieldName !== 'name') {
193+
fieldObj.fieldContext =
194+
column?.fieldContext ?? (column?.type as FieldContext);
195+
}
196+
197+
return fieldObj;
198+
},
150199
),
151200
};
152201
}
202+
153203
// Utility to parse aggregation expressions with optional alias
154204
export function parseAggregations(
155205
expression: string,

0 commit comments

Comments
 (0)