use crate::ops::runtime::metrics::auth::{
AuthMetricOperation, AuthMetricOutcome, AuthMetricReason, AuthMetricSurface, AuthMetrics,
};
pub fn record_session_bootstrap_rejected_disabled() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::Disabled,
);
}
pub fn record_session_bootstrap_rejected_capacity() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::Capacity,
);
}
pub fn record_session_bootstrap_rejected_wallet_caller_rejected() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::WalletCallerRejected,
);
}
pub fn record_session_bootstrap_rejected_subject_rejected() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::SubjectRejected,
);
}
pub fn record_session_bootstrap_rejected_replay_conflict() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::ReplayConflict,
);
}
pub fn record_session_bootstrap_rejected_replay_reused() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::ReplayReused,
);
}
pub fn record_session_bootstrap_rejected_token_invalid() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::TokenInvalid,
);
}
pub fn record_session_bootstrap_rejected_subject_mismatch() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::SubjectMismatch,
);
}
pub fn record_session_bootstrap_rejected_ttl_invalid() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Rejected,
AuthMetricReason::TtlInvalid,
);
}
pub fn record_session_bootstrap_replay_idempotent() {
record_session_metric(
AuthMetricOperation::Bootstrap,
AuthMetricOutcome::Idempotent,
AuthMetricReason::Replay,
);
}
pub fn record_session_created() {
record_session_metric(
AuthMetricOperation::Session,
AuthMetricOutcome::Completed,
AuthMetricReason::Created,
);
}
pub fn record_session_replaced() {
record_session_metric(
AuthMetricOperation::Session,
AuthMetricOutcome::Completed,
AuthMetricReason::Replaced,
);
}
pub fn record_session_cleared() {
record_session_metric(
AuthMetricOperation::Session,
AuthMetricOutcome::Completed,
AuthMetricReason::Cleared,
);
}
pub fn record_session_pruned(removed: usize) {
for _ in 0..removed {
record_session_metric(
AuthMetricOperation::Session,
AuthMetricOutcome::Completed,
AuthMetricReason::Pruned,
);
}
}
pub fn record_session_fallback_raw_caller() {
record_session_metric(
AuthMetricOperation::IdentityFallback,
AuthMetricOutcome::Completed,
AuthMetricReason::RawCaller,
);
}
pub fn record_session_fallback_invalid_subject() {
record_session_metric(
AuthMetricOperation::IdentityFallback,
AuthMetricOutcome::Completed,
AuthMetricReason::InvalidSubject,
);
}
fn record_session_metric(
operation: AuthMetricOperation,
outcome: AuthMetricOutcome,
reason: AuthMetricReason,
) {
AuthMetrics::record(AuthMetricSurface::Session, operation, outcome, reason);
}