Skip to content

Commit 7c6ad22

Browse files
committed
[DO NOT MERGE] prometheus query timer
1 parent 47f2452 commit 7c6ad22

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

src/shadowbox/server/manager_metrics.ts

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)