Tempo: Return raw result from traceql query (#86032)

Return raw result from traceql query
This commit is contained in:
Andre Pereira
2024-04-12 12:26:27 +01:00
committed by GitHub
parent 44a612a96b
commit 1a62d94c55
5 changed files with 21 additions and 4 deletions

View File

@@ -85,6 +85,7 @@ export enum SearchStreamingState {
* The type of the table that is used to display the search results * The type of the table that is used to display the search results
*/ */
export enum SearchTableType { export enum SearchTableType {
Raw = 'raw',
Spans = 'spans', Spans = 'spans',
Traces = 'traces', Traces = 'traces',
} }

View File

@@ -19,6 +19,7 @@ const (
// Defines values for SearchTableType. // Defines values for SearchTableType.
const ( const (
SearchTableTypeRaw SearchTableType = "raw"
SearchTableTypeSpans SearchTableType = "spans" SearchTableTypeSpans SearchTableType = "spans"
SearchTableTypeTraces SearchTableType = "traces" SearchTableTypeTraces SearchTableType = "traces"
) )

View File

@@ -59,7 +59,7 @@ composableKinds: DataQuery: {
#SearchStreamingState: "pending" | "streaming" | "done" | "error" @cuetsy(kind="enum") #SearchStreamingState: "pending" | "streaming" | "done" | "error" @cuetsy(kind="enum")
// The type of the table that is used to display the search results // The type of the table that is used to display the search results
#SearchTableType: "traces" | "spans" @cuetsy(kind="enum") #SearchTableType: "traces" | "spans" | "raw" @cuetsy(kind="enum")
// static fields are pre-set in the UI, dynamic fields are added by the user // static fields are pre-set in the UI, dynamic fields are added by the user
#TraceqlSearchScope: "intrinsic" | "unscoped" | "resource" | "span" @cuetsy(kind="enum") #TraceqlSearchScope: "intrinsic" | "unscoped" | "resource" | "span" @cuetsy(kind="enum")

View File

@@ -83,6 +83,7 @@ export enum SearchStreamingState {
* The type of the table that is used to display the search results * The type of the table that is used to display the search results
*/ */
export enum SearchTableType { export enum SearchTableType {
Raw = 'raw',
Spans = 'spans', Spans = 'spans',
Traces = 'traces', Traces = 'traces',
} }

View File

@@ -529,11 +529,25 @@ export function formatTraceQLResponse(
instanceSettings: DataSourceInstanceSettings, instanceSettings: DataSourceInstanceSettings,
tableType?: SearchTableType tableType?: SearchTableType
) { ) {
if (tableType === SearchTableType.Spans) { switch (tableType) {
case SearchTableType.Spans:
return createTableFrameFromTraceQlQueryAsSpans(data, instanceSettings); return createTableFrameFromTraceQlQueryAsSpans(data, instanceSettings);
} case SearchTableType.Raw:
return createDataFrameFromTraceQlQuery(data);
default:
return createTableFrameFromTraceQlQuery(data, instanceSettings); return createTableFrameFromTraceQlQuery(data, instanceSettings);
} }
}
function createDataFrameFromTraceQlQuery(data: TraceSearchMetadata[]) {
return [
createDataFrame({
name: 'Raw response',
refId: 'raw',
fields: [{ name: 'response', type: FieldType.string, values: [JSON.stringify(data, null, 2)] }],
}),
];
}
/** /**
* Create data frame while adding spans for each trace into a subtable. * Create data frame while adding spans for each trace into a subtable.