logs: send more info to getLogRowContext (#52130)

This commit is contained in:
Gábor Farkas 2022-07-15 16:02:43 +02:00 committed by GitHub
parent 57273d4846
commit 1d3cd0103e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View File

@ -149,13 +149,14 @@ export enum LogsDedupDescription {
* Data sources that allow showing context rows around the provided LowRowModel should implement this method.
* This will enable "context" button in Logs Panel.
*/
export interface DataSourceWithLogsContextSupport {
export interface DataSourceWithLogsContextSupport<TQuery extends DataQuery = DataQuery> {
/**
* Retrieve context for a given log row
*/
getLogRowContext: <TContextQueryOptions extends {}>(
row: LogRowModel,
options?: TContextQueryOptions
options?: TContextQueryOptions,
query?: TQuery
) => Promise<DataQueryResponse>;
/**

View File

@ -44,10 +44,15 @@ class LogsContainer extends PureComponent<LogsContainerProps> {
};
getLogRowContext = async (row: LogRowModel, options?: any): Promise<any> => {
const { datasourceInstance } = this.props;
const { datasourceInstance, logsQueries } = this.props;
if (hasLogsContextSupport(datasourceInstance)) {
return datasourceInstance.getLogRowContext(row, options);
// we need to find the query, and we need to be very sure that
// it's a query from this datasource
const query = (logsQueries ?? []).find(
(q) => q.refId === row.dataFrame.refId && q.datasource != null && q.datasource.type === datasourceInstance.type
);
return datasourceInstance.getLogRowContext(row, options, query);
}
return [];