diff --git a/frontend/src/component/admin/network/NetworkTraffic/NetworkTraffic.tsx b/frontend/src/component/admin/network/NetworkTraffic/NetworkTraffic.tsx index 51fca04982..3263cdb04f 100644 --- a/frontend/src/component/admin/network/NetworkTraffic/NetworkTraffic.tsx +++ b/frontend/src/component/admin/network/NetworkTraffic/NetworkTraffic.tsx @@ -87,7 +87,7 @@ const createInstanceChartOptions = ( }, }, title: { - text: 'Requests per second in the last 6 hours', + text: 'Top 10 requests per second in the last 6 hours', position: 'top', align: 'start', display: true, diff --git a/src/lib/services/client-metrics/instance-service.ts b/src/lib/services/client-metrics/instance-service.ts index 70200cc500..5b5f9e3979 100644 --- a/src/lib/services/client-metrics/instance-service.ts +++ b/src/lib/services/client-metrics/instance-service.ts @@ -224,7 +224,7 @@ export default class ClientInstanceService { return (d.getTime() - d.getMilliseconds()) / 1000; } - async getRPS(hoursToQuery: number): Promise { + async getRPS(hoursToQuery: number, limit = 10): Promise { if (!this.prometheusApi) { this.logger.warn('Prometheus not configured'); return; @@ -233,7 +233,7 @@ export default class ClientInstanceService { const basePath = this.serverOption.baseUriPath.replace(/\/$/, ''); const pathQuery = `${basePath}/api/.*`; const step = '5m'; - const rpsQuery = `irate (http_request_duration_milliseconds_count{path=~"${pathQuery}"} [${step}])`; + const rpsQuery = `topk(${limit}, irate (http_request_duration_milliseconds_count{path=~"${pathQuery}"} [${step}]))`; const query = `sum by(appName, endpoint) (label_replace(${rpsQuery}, "endpoint", "$1", "path", "${basePath}(/api/(?:client/)?[^/\*]*).*"))`; const end = new Date(); const start = new Date();