MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / to_prometheus

Method to_prometheus

nodedb/src/control/security/observability.rs:176–256  ·  view source on GitHub ↗

Export all metrics as Prometheus text format.

(&self)

Source from the content-addressed store, hash-verified

174
175 /// Export all metrics as Prometheus text format.
176 pub fn to_prometheus(&self) -> String {
177 let mut out = String::with_capacity(2048);
178
179 // Counters.
180 append_counter(
181 &mut out,
182 "nodedb_auth_success_total",
183 "method",
184 &[
185 (
186 "password",
187 self.auth_success_password.load(Ordering::Relaxed),
188 ),
189 ("api_key", self.auth_success_api_key.load(Ordering::Relaxed)),
190 ("jwt", self.auth_success_jwt.load(Ordering::Relaxed)),
191 (
192 "certificate",
193 self.auth_success_certificate.load(Ordering::Relaxed),
194 ),
195 ("trust", self.auth_success_trust.load(Ordering::Relaxed)),
196 ],
197 );
198 append_counter(
199 &mut out,
200 "nodedb_auth_failure_total",
201 "reason",
202 &[
203 (
204 "password",
205 self.auth_failure_password.load(Ordering::Relaxed),
206 ),
207 ("api_key", self.auth_failure_api_key.load(Ordering::Relaxed)),
208 ("jwt", self.auth_failure_jwt.load(Ordering::Relaxed)),
209 ("expired", self.auth_failure_expired.load(Ordering::Relaxed)),
210 (
211 "blacklisted",
212 self.auth_failure_blacklisted.load(Ordering::Relaxed),
213 ),
214 ],
215 );
216
217 out.push_str(&format!(
218 "nodedb_rls_denied_total {}\n",
219 self.rls_denied_total.load(Ordering::Relaxed)
220 ));
221 out.push_str(&format!(
222 "nodedb_blacklist_rejected_total {}\n",
223 self.blacklist_rejected_total.load(Ordering::Relaxed)
224 ));
225 out.push_str(&format!(
226 "nodedb_rate_limit_rejected_total {}\n",
227 self.rate_limit_rejected_total.load(Ordering::Relaxed)
228 ));
229 out.push_str(&format!(
230 "nodedb_jwks_cache_hit_total {}\n",
231 self.jwks_cache_hit_total.load(Ordering::Relaxed)
232 ));
233 out.push_str(&format!(

Callers 2

prometheus_exportFunction · 0.45
metricsFunction · 0.45

Calls 3

append_counterFunction · 0.85
append_histogramFunction · 0.85
loadMethod · 0.45

Tested by 1

prometheus_exportFunction · 0.36