MCPcopy Create free account
hub / github.com/dfinity/orbit / refresh

Method refresh

core/control-panel/impl/src/core/metrics.rs:189–231  ·  view source on GitHub ↗
(&mut self, now_ns: u64)

Source from the content-addressed store, hash-verified

187
188impl MetricActiveUsers {
189 pub fn refresh(&mut self, now_ns: u64) {
190 let mut hourly_active: u64 = 0;
191 let mut daily_active: u64 = 0;
192 let mut weekly_active: u64 = 0;
193 let mut montly_active: u64 = 0;
194
195 for (_, last_active) in self.users_activity_log.iter() {
196 let elapsed_ns = now_ns.saturating_sub(*last_active);
197 if elapsed_ns < ONE_HOUR_NS {
198 hourly_active = hourly_active.saturating_add(1);
199 }
200 if elapsed_ns < ONE_DAY_NS {
201 daily_active = daily_active.saturating_add(1);
202 }
203 if elapsed_ns < ONE_WEEK_NS {
204 weekly_active = weekly_active.saturating_add(1);
205 }
206 if elapsed_ns < ONE_MONTH_NS {
207 montly_active = montly_active.saturating_add(1);
208 }
209 }
210
211 self.set(
212 SERVICE_NAME,
213 &labels! { "time" => "hourly" },
214 hourly_active as f64,
215 );
216 self.set(
217 SERVICE_NAME,
218 &labels! { "time" => "daily" },
219 daily_active as f64,
220 );
221 self.set(
222 SERVICE_NAME,
223 &labels! { "time" => "weekly" },
224 weekly_active as f64,
225 );
226 self.set(
227 SERVICE_NAME,
228 &labels! { "time" => "monthly" },
229 montly_active as f64,
230 );
231 }
232}
233
234impl ApplicationGaugeVecMetric<User> for MetricActiveUsers {

Calls 2

iterMethod · 0.80
setMethod · 0.45