NodeGraph: Fix view traces query for edges (#105324)

* NodeGraph: Fix view traces query for edges

* Updating tests
pull/105613/head^2
Edvard Falkskär 4 days ago committed by GitHub
parent 81ad16f25f
commit 761f008884
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 13
      public/app/plugins/datasource/tempo/datasource.test.ts
  2. 21
      public/app/plugins/datasource/tempo/datasource.ts

@ -864,7 +864,7 @@ describe('Tempo service graph view', () => {
operator: '=',
scope: 'resource',
tag: 'service.name',
value: 'my-service',
value: 'my-target-service',
valueType: 'string',
},
],
@ -961,7 +961,7 @@ describe('Tempo service graph view', () => {
operator: '=',
scope: 'resource',
tag: 'service.namespace',
value: 'my-namespace',
value: 'my-target-namespace-service',
valueType: 'string',
},
{
@ -969,7 +969,7 @@ describe('Tempo service graph view', () => {
operator: '=',
scope: 'resource',
tag: 'service.name',
value: 'my-service',
value: 'my-target-name-service',
valueType: 'string',
},
],
@ -1495,7 +1495,10 @@ const serviceGraphLinks = [
const replaceVariablesInstrumented = (variable: string): string => {
const variables: Record<string, string> = {
[`\${__data.fields.${NodeGraphDataFrameFieldNames.title}}`]: 'my-service',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.id}}`]: 'my-service',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.target}}`]: 'my-target-service',
[`\${__data.fields.targetName}`]: 'my-target-name-service',
[`\${__data.fields.targetNamespace}`]: 'my-target-namespace-service',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.subTitle}}`]: 'my-namespace',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.isInstrumented}}`]: 'true',
};
@ -1504,7 +1507,7 @@ const replaceVariablesInstrumented = (variable: string): string => {
const replaceVariablesUninstrumented = (variable: string): string => {
const variables: Record<string, string> = {
[`\${__data.fields.${NodeGraphDataFrameFieldNames.title}}`]: 'my-service',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.id}}`]: 'my-service',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.subTitle}}`]: 'my-namespace',
[`\${__data.fields.${NodeGraphDataFrameFieldNames.isInstrumented}}`]: 'false',
};

@ -1177,7 +1177,12 @@ export function getFieldConfig(
datasourceUid,
false
),
makeTempoLinkServiceMap('View traces', tempoDatasourceUid, !!namespaceFields?.targetNamespace),
makeTempoLinkServiceMap(
'View traces',
namespaceFields !== undefined ? `\${${namespaceFields.targetNamespace}}` : '',
`\${${targetField}}`,
tempoDatasourceUid
),
],
};
}
@ -1234,8 +1239,9 @@ export function makeTempoLink(
function makeTempoLinkServiceMap(
title: string,
datasourceUid: string,
includeNamespace: boolean
serviceNamespaceVar: string | undefined,
serviceNameVar: string,
datasourceUid: string
): DataLink<TempoQuery> {
return {
url: '',
@ -1244,11 +1250,8 @@ function makeTempoLinkServiceMap(
datasourceUid,
datasourceName: getDataSourceSrv().getInstanceSettings(datasourceUid)?.name ?? '',
query: ({ replaceVariables, scopedVars }) => {
const serviceName = replaceVariables?.(`\${__data.fields.${NodeGraphDataFrameFieldNames.title}}`, scopedVars);
const serviceNamespace = replaceVariables?.(
`\${__data.fields.${NodeGraphDataFrameFieldNames.subTitle}}`,
scopedVars
);
const serviceName = replaceVariables?.(serviceNameVar, scopedVars);
const serviceNamespace = serviceNamespaceVar ? replaceVariables?.(serviceNamespaceVar, scopedVars) : undefined;
const isInstrumented =
replaceVariables?.(`\${__data.fields.${NodeGraphDataFrameFieldNames.isInstrumented}}`, scopedVars) !==
'false';
@ -1262,7 +1265,7 @@ function makeTempoLinkServiceMap(
query.queryType = 'traceql';
query.query = `{${filters}}`;
} else {
if (includeNamespace && serviceNamespace) {
if (serviceNamespace) {
query.filters.push({
id: 'service-namespace',
scope: TraceqlSearchScope.Resource,

Loading…
Cancel
Save