grafana_bak/public/app/plugins/datasource/loki/LokiVariableSupport.ts
2025-04-01 10:38:02 +09:00

27 lines
984 B
TypeScript

import { from, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { CustomVariableSupport, DataQueryRequest, MetricFindValue, ScopedVars, TimeRange } from '@grafana/data';
import { LokiVariableQueryEditor } from './components/VariableQueryEditor';
import { LokiDatasource } from './datasource';
import { LokiVariableQuery } from './types';
export class LokiVariableSupport extends CustomVariableSupport<LokiDatasource, LokiVariableQuery> {
editor = LokiVariableQueryEditor;
constructor(private datasource: LokiDatasource) {
super();
}
async execute(query: LokiVariableQuery, scopedVars: ScopedVars, range: TimeRange) {
return this.datasource.metricFindQuery(query, { scopedVars, range });
}
query(request: DataQueryRequest<LokiVariableQuery>): Observable<{ data: MetricFindValue[] }> {
const result = this.execute(request.targets[0], request.scopedVars, request.range);
return from(result).pipe(map((data) => ({ data })));
}
}