Skip to content

Commit 204a99c

Browse files
committed
fix: log query with labels
1 parent 495c221 commit 204a99c

File tree

2 files changed

+36
-45
lines changed

2 files changed

+36
-45
lines changed

src/components/queryBuilder/views/LogsQueryBuilder.tsx

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -136,21 +136,8 @@ export const LogsQueryBuilder = (props: LogsQueryBuilderProps) => {
136136
label={labels.logTimeColumn.label}
137137
tooltip={labels.logTimeColumn.tooltip}
138138
/>
139-
<ColumnSelect
140-
disabled={builderState.otelEnabled}
141-
allColumns={allColumns}
142-
selectedColumn={builderState.logLevelColumn}
143-
invalid={!builderState.logLevelColumn}
144-
onColumnChange={onOptionChange('logLevelColumn')}
145-
columnFilterFn={columnFilterString}
146-
columnHint={ColumnHint.LogLevel}
147-
label={labels.logLevelColumn.label}
148-
tooltip={labels.logLevelColumn.tooltip}
149-
inline
150-
/>
151-
</div>
152-
<div className="gf-form">
153-
<ColumnSelect
139+
140+
<ColumnSelect
154141
disabled={builderState.otelEnabled}
155142
allColumns={allColumns}
156143
selectedColumn={builderState.messageColumn}
@@ -164,22 +151,17 @@ export const LogsQueryBuilder = (props: LogsQueryBuilderProps) => {
164151
<ColumnSelect
165152
disabled={builderState.otelEnabled}
166153
allColumns={allColumns}
167-
selectedColumn={builderState.labelsColumn}
168-
invalid={!builderState.labelsColumn}
169-
onColumnChange={onOptionChange('labelsColumn')}
170-
columnHint={ColumnHint.LogLabels}
171-
label={labels.logLabelsColumn.label}
172-
tooltip={labels.logLabelsColumn.tooltip}
154+
selectedColumn={builderState.logLevelColumn}
155+
invalid={!builderState.logLevelColumn}
156+
onColumnChange={onOptionChange('logLevelColumn')}
157+
columnFilterFn={columnFilterString}
158+
columnHint={ColumnHint.LogLevel}
159+
label={labels.logLevelColumn.label}
160+
tooltip={labels.logLevelColumn.tooltip}
173161
inline
174162
/>
175-
{/* <Switch
176-
value={builderState.liveView}
177-
onChange={onOptionChange('liveView')}
178-
label={labels.liveView.label}
179-
tooltip={labels.liveView.tooltip}
180-
inline
181-
/> */}
182163
</div>
164+
183165
<OrderByEditor
184166
orderByOptions={getOrderByOptions(builderOptions, allColumns)}
185167
orderBy={builderState.orderBy}

src/greptimedb/index.ts

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -272,23 +272,32 @@ export function transformGreptimeDBLogs(sqlResponse: GreptimeResponse, query: CH
272272
const labelColumnIndices: Record<string, number> = {};
273273
const contextColumnIndices: Record<string, number> = {};
274274

275-
columnSchemas.forEach((schema, index) => {
276-
const lowerCaseName = schema.name.toLowerCase();
277-
if (lowerCaseName === 'ts' || lowerCaseName === 'timestamp') {
278-
timestampColumnIndex = index;
279-
} else if (lowerCaseName === 'body' || lowerCaseName === 'message') {
280-
bodyColumnIndex = index;
281-
} else if (lowerCaseName === 'severity' || lowerCaseName === 'level') {
282-
severityColumnIndex = index;
283-
} else if (lowerCaseName === 'id') {
284-
idColumnIndex = index;
285-
} else if (contextColumns.includes(schema.name)) {
286-
contextColumnIndices[schema.name] = index;
287-
} else {
288-
// Consider other columns as potential labels
289-
labelColumnIndices[schema.name] = index;
290-
}
291-
});
275+
276+
if('builderOptions' in query) {
277+
const timeColumn = query.builderOptions?.columns?.find(c => c.hint === 'time')
278+
const timeColumnName = timeColumn?.alias || timeColumn?.name
279+
const bodyColumn = query.builderOptions?.columns?.find(c => c.hint === 'log_message')
280+
const bodyColumnName = bodyColumn?.alias || bodyColumn?.name
281+
const severityColumn = query.builderOptions?.columns?.find(c => c.hint === 'log_level')
282+
const severityColumnName = severityColumn?.alias || severityColumn?.name
283+
284+
columnSchemas.forEach((schema, index) => {
285+
const lowerCaseName = schema.name.toLowerCase();
286+
if (lowerCaseName === timeColumnName) {
287+
timestampColumnIndex = index;
288+
} else if (lowerCaseName === bodyColumnName) {
289+
bodyColumnIndex = index;
290+
} else if (lowerCaseName === severityColumnName) {
291+
severityColumnIndex = index;
292+
} else if (contextColumns.includes(schema.name)) {
293+
contextColumnIndices[schema.name] = index;
294+
} else {
295+
// Consider other columns as potential labels
296+
labelColumnIndices[schema.name] = index;
297+
}
298+
});
299+
}
300+
292301

293302
// if (timestampColumnIndex === -1 || bodyColumnIndex === -1) {
294303
// console.error('Timestamp or body column not found in GreptimeDB response.');

0 commit comments

Comments
 (0)