|
|
@ -53,6 +53,10 @@ type LokiOnDashboardLoadedTrackingEvent = { |
|
|
|
queries_with_changed_legend_count: number; |
|
|
|
queries_with_changed_legend_count: number; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export type LokiTrackingSettings = { |
|
|
|
|
|
|
|
predefinedOperations?: string; |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
export const onDashboardLoadedHandler = ({ |
|
|
|
export const onDashboardLoadedHandler = ({ |
|
|
|
payload: { dashboardId, orgId, grafanaVersion, queries }, |
|
|
|
payload: { dashboardId, orgId, grafanaVersion, queries }, |
|
|
|
}: DashboardLoadedEvent<LokiQuery>) => { |
|
|
|
}: DashboardLoadedEvent<LokiQuery>) => { |
|
|
@ -148,6 +152,7 @@ export function trackQuery( |
|
|
|
response: DataQueryResponse, |
|
|
|
response: DataQueryResponse, |
|
|
|
request: DataQueryRequest<LokiQuery>, |
|
|
|
request: DataQueryRequest<LokiQuery>, |
|
|
|
startTime: Date, |
|
|
|
startTime: Date, |
|
|
|
|
|
|
|
trackingSettings: LokiTrackingSettings = {}, |
|
|
|
extraPayload: Record<string, unknown> = {} |
|
|
|
extraPayload: Record<string, unknown> = {} |
|
|
|
): void { |
|
|
|
): void { |
|
|
|
// We only want to track usage for these specific apps
|
|
|
|
// We only want to track usage for these specific apps
|
|
|
@ -184,6 +189,9 @@ export function trackQuery( |
|
|
|
time_taken: Date.now() - startTime.getTime(), |
|
|
|
time_taken: Date.now() - startTime.getTime(), |
|
|
|
bytes_processed: totalBytes, |
|
|
|
bytes_processed: totalBytes, |
|
|
|
is_split: false, |
|
|
|
is_split: false, |
|
|
|
|
|
|
|
predefined_operations_applied: trackingSettings.predefinedOperations |
|
|
|
|
|
|
|
? query.expr.includes(trackingSettings.predefinedOperations) |
|
|
|
|
|
|
|
: 'n/a', |
|
|
|
...extraPayload, |
|
|
|
...extraPayload, |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
@ -193,7 +201,8 @@ export function trackGroupedQueries( |
|
|
|
response: DataQueryResponse, |
|
|
|
response: DataQueryResponse, |
|
|
|
groupedRequests: LokiGroupedRequest[], |
|
|
|
groupedRequests: LokiGroupedRequest[], |
|
|
|
originalRequest: DataQueryRequest<LokiQuery>, |
|
|
|
originalRequest: DataQueryRequest<LokiQuery>, |
|
|
|
startTime: Date |
|
|
|
startTime: Date, |
|
|
|
|
|
|
|
trackingSettings: LokiTrackingSettings = {} |
|
|
|
): void { |
|
|
|
): void { |
|
|
|
const splittingPayload = { |
|
|
|
const splittingPayload = { |
|
|
|
split_query_group_count: groupedRequests.length, |
|
|
|
split_query_group_count: groupedRequests.length, |
|
|
@ -206,7 +215,7 @@ export function trackGroupedQueries( |
|
|
|
|
|
|
|
|
|
|
|
for (const group of groupedRequests) { |
|
|
|
for (const group of groupedRequests) { |
|
|
|
const split_query_partition_size = group.partition.length; |
|
|
|
const split_query_partition_size = group.partition.length; |
|
|
|
trackQuery(response, group.request, startTime, { |
|
|
|
trackQuery(response, group.request, startTime, trackingSettings, { |
|
|
|
...splittingPayload, |
|
|
|
...splittingPayload, |
|
|
|
split_query_partition_size, |
|
|
|
split_query_partition_size, |
|
|
|
}); |
|
|
|
}); |
|
|
|