@@ -98,6 +98,31 @@ export class PrometheusManagerMetrics implements ManagerMetrics {
9898 return { bytesTransferredByUserId : usage } ;
9999 }
100100
101+ private async promethusClientTimedQuery ( query : string ) {
102+ console . time ( query ) ;
103+
104+ const result = await this . prometheusClient . query ( query ) ;
105+
106+ console . timeEnd ( query ) ;
107+
108+ return result ;
109+ }
110+
111+ private async promethusClientTimedRangeQuery (
112+ query : string ,
113+ start : number ,
114+ end : number ,
115+ step : string
116+ ) {
117+ console . time ( `[range] ${ query } ` ) ;
118+
119+ const result = await this . prometheusClient . queryRange ( query , start , end , step ) ;
120+
121+ console . timeEnd ( `[range] ${ query } ` ) ;
122+
123+ return result ;
124+ }
125+
101126 async getServerMetrics ( timeframe : Duration ) : Promise < ServerMetrics > {
102127 const now = new Date ( ) . getTime ( ) / 1000 ;
103128 // We need to calculate consistent start and end times for Prometheus range
@@ -121,34 +146,34 @@ export class PrometheusManagerMetrics implements ManagerMetrics {
121146 dataTransferredByAccessKeyRange ,
122147 tunnelTimeByAccessKeyRange ,
123148 ] = await Promise . all ( [
124- this . prometheusClient . query (
149+ this . promethusClientTimedQuery (
125150 `sum(rate(shadowsocks_data_bytes_per_location{dir=~"c<p|p>t"}[${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s]))`
126151 ) ,
127- this . prometheusClient . queryRange (
152+ this . promethusClientTimedRangeQuery (
128153 `sum(rate(shadowsocks_data_bytes_per_location{dir=~"c<p|p>t"}[${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s]))` ,
129154 start ,
130155 end ,
131156 `${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s`
132157 ) ,
133- this . prometheusClient . query (
158+ this . promethusClientTimedQuery (
134159 `sum(increase(shadowsocks_data_bytes_per_location{dir=~"c<p|p>t"}[${ timeframe . seconds } s])) by (location, asn, asorg)`
135160 ) ,
136- this . prometheusClient . query (
161+ this . promethusClientTimedQuery (
137162 `sum(increase(shadowsocks_tunnel_time_seconds_per_location[${ timeframe . seconds } s])) by (location, asn, asorg)`
138163 ) ,
139- this . prometheusClient . query (
164+ this . promethusClientTimedQuery (
140165 `sum(increase(shadowsocks_data_bytes{dir=~"c<p|p>t"}[${ timeframe . seconds } s])) by (access_key)`
141166 ) ,
142- this . prometheusClient . query (
167+ this . promethusClientTimedQuery (
143168 `sum(increase(shadowsocks_tunnel_time_seconds[${ timeframe . seconds } s])) by (access_key)`
144169 ) ,
145- this . prometheusClient . queryRange (
170+ this . promethusClientTimedRangeQuery (
146171 `sum(increase(shadowsocks_data_bytes{dir=~"c<p|p>t"}[${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s])) by (access_key)` ,
147172 start ,
148173 end ,
149174 `${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s`
150175 ) ,
151- this . prometheusClient . queryRange (
176+ this . promethusClientTimedRangeQuery (
152177 `sum(increase(shadowsocks_tunnel_time_seconds[${ PROMETHEUS_RANGE_QUERY_STEP_SECONDS } s])) by (access_key)` ,
153178 start ,
154179 end ,
0 commit comments