Skip to content

Commit

Permalink
PMM-9288 New metrics in details.
Browse files Browse the repository at this point in the history
  • Loading branch information
JiriCtvrtka committed Feb 21, 2025
1 parent 275581f commit a8c9864
Showing 1 changed file with 195 additions and 5 deletions.
200 changes: 195 additions & 5 deletions pmm-app/src/pmm-qan/panel/QueryAnalytics.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -295,13 +295,13 @@ export const METRIC_CATALOGUE = {
perQueryStatsPipe: 'number',
},
},
docs_scanned: {
humanizeName: 'Docs scanned',
tooltipText: 'Number of scanned documents',
simpleName: 'docs_scanned',
docs_examined: {
humanizeName: 'Docs examined',
tooltipText: 'Number of examined documents',
simpleName: 'docs_examined',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['docs_scanned', 'sum']);
const mainMetric = get(data, ['docs_examined', 'sum']);
const divider = get(data, ['docs_returned', 'sum']);

if (!mainMetric || !divider) {
Expand Down Expand Up @@ -1111,4 +1111,194 @@ export const METRIC_CATALOGUE = {
perQueryStatsPipe: 'number',
},
},
keys_examined: {
humanizeName: 'Keys Examined',
tooltipText: 'Number of index keys scanned during query execution',
simpleName: 'docs_returned',
serviceTypes: [Databases.mongodb],
metricRelation: () => '',
units: Units.NONE,
pipeTypes: {
ratePipe: 'number',
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: 'number',
},
},
locks_global_acquire_count_read_shared: {
humanizeName: 'Locks Global Acquire Count Read Shared',
tooltipText: 'Number of times a global read lock was acquired during query execution',
simpleName: 'locks_global_acquire_count_read_shared',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['locks_global_acquire_count_read_shared', 'sum']);
const divider = get(data, ['locks_global_acquire_count_read_shared', 'cnt']);

if (!mainMetric || !divider) {
return '';
}

return `${humanize.transform(mainMetric / divider, 'number')} per query`;
},
units: Units.NONE,
pipeTypes: {
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: '',
},
},
locks_global_acquire_count_write_shared: {
humanizeName: 'Locks Global Acquire Count Write Shared',
tooltipText: 'Number of times a global write lock was acquired during query execution',
simpleName: 'locks_global_acquire_count_write_shared',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['locks_global_acquire_count_write_shared', 'sum']);
const divider = get(data, ['locks_global_acquire_count_write_shared', 'cnt']);

if (!mainMetric || !divider) {
return '';
}

return `${humanize.transform(mainMetric / divider, 'number')} per query`;
},
units: Units.NONE,
pipeTypes: {
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: '',
},
},
locks_database_acquire_count_read_shared: {
humanizeName: 'Locks Database Acquire Count Read Shared',
tooltipText: 'Number of times a read lock was acquired at the database level during query execution',
simpleName: 'locks_database_acquire_count_read_shared',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['locks_database_acquire_count_read_shared', 'sum']);
const divider = get(data, ['locks_database_acquire_count_read_shared', 'cnt']);

if (!mainMetric || !divider) {
return '';
}

return `${humanize.transform(mainMetric / divider, 'number')} per query`;
},
units: Units.NONE,
pipeTypes: {
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: '',
},
},
locks_database_acquire_wait_count_read_shared: {
humanizeName: 'Locks Database Acquire Wait Count Read Shared',
tooltipText: 'Number of times a read lock at the database level was requested but had to wait before being granted',
simpleName: 'locks_database_acquire_wait_count_read_shared',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['locks_database_acquire_wait_count_read_shared', 'sum']);
const divider = get(data, ['locks_database_acquire_wait_count_read_shared', 'cnt']);

if (!mainMetric || !divider) {
return '';
}

return `${humanize.transform(mainMetric / divider, 'number')} per query`;
},
units: Units.NONE,
pipeTypes: {
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: '',
},
},
locks_database_time_acquiring_micros_read_shared: {
humanizeName: 'Locks Database Time Acquiring Micros Read Shared',
tooltipText: 'Indicates the time, spent acquiring a read lock at the database level during an operation',
simpleName: 'locks_database_time_acquiring_micros_read_shared',
serviceTypes: [Databases.mongodb],
metricRelation: () => '',
units: Units.AVG_LOAD,
pipeTypes: {
ratePipe: 'number',
sumPipe: 'time',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: 'time',
},
},
locks_collection_acquire_count_read_shared: {
humanizeName: 'Locks Collection Acquire Count Read Shared',
tooltipText: 'Number of times a read lock was acquired on a specific collection during operations',
simpleName: 'locks_collection_acquire_count_read_shared',
serviceTypes: [Databases.mongodb],
metricRelation: (data) => {
const mainMetric = get(data, ['locks_collection_acquire_count_read_shared', 'sum']);
const divider = get(data, ['locks_collection_acquire_count_read_shared', 'cnt']);

if (!mainMetric || !divider) {
return '';
}

return `${humanize.transform(mainMetric / divider, 'number')} per query`;
},
units: Units.NONE,
pipeTypes: {
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: '',
},
},
cpu_user_time: {

Check failure on line 1259 in pmm-app/src/pmm-qan/panel/QueryAnalytics.constants.ts

View workflow job for this annotation

GitHub Actions / unit_tests

Duplicate key 'cpu_user_time'
humanizeName: 'User CPU time',
tooltipText: 'Time spent in user space',
simpleName: 'cpu_user_time',
serviceTypes: [Databases.mongodb],
metricRelation: () => '',
units: Units.AVG_LOAD,
pipeTypes: {
ratePipe: 'number',
sumPipe: 'time',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: 'time',
},
},
storage_bytes_read: {
humanizeName: 'Storage Bytes Read',
tooltipText: 'Total number of bytes read from storage during a specific operation',
simpleName: 'storage_bytes_read',
serviceTypes: [Databases.mongodb],
metricRelation: () => '',
units: Units.NONE,
pipeTypes: {
ratePipe: 'number',
sumPipe: 'number',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: 'number',
},
},
storage_time_reading_micros: {
humanizeName: 'Storage Time Reading Micros',
tooltipText: 'Indicates the time, spent reading data from storage during an operation',
simpleName: 'storage_time_reading_micros',
serviceTypes: [Databases.mongodb],
metricRelation: () => '',
units: Units.AVG_LOAD,
pipeTypes: {
ratePipe: 'number',
sumPipe: 'time',
subSumPipe: 'percent',
sparklineType: 'number',
perQueryStatsPipe: 'time',
},
},
};

0 comments on commit a8c9864

Please sign in to comment.