use crate::ops::runtime::metrics::auth::{
AuthMetricOperation, AuthMetricOutcome, AuthMetricReason, AuthMetricSurface, AuthMetrics,
};
pub fn record_application_session_establishment_started() {
record(
AuthMetricOperation::Establish,
AuthMetricOutcome::Started,
AuthMetricReason::Request,
);
}
pub fn record_application_session_created() {
record(
AuthMetricOperation::Establish,
AuthMetricOutcome::Completed,
AuthMetricReason::Created,
);
}
pub fn record_application_session_replaced() {
record(
AuthMetricOperation::Establish,
AuthMetricOutcome::Completed,
AuthMetricReason::Replaced,
);
}
pub fn record_application_session_idempotent() {
record(
AuthMetricOperation::Establish,
AuthMetricOutcome::Idempotent,
AuthMetricReason::Replay,
);
}
pub fn record_application_session_rejected(reason: AuthMetricReason) {
record(
AuthMetricOperation::Establish,
AuthMetricOutcome::Rejected,
reason,
);
}
pub fn record_application_session_clear(removed: bool) {
record(
AuthMetricOperation::Clear,
if removed {
AuthMetricOutcome::Completed
} else {
AuthMetricOutcome::Idempotent
},
AuthMetricReason::Cleared,
);
}
pub fn record_application_session_expired_observation() {
record(
AuthMetricOperation::ExpiryObservation,
AuthMetricOutcome::Completed,
AuthMetricReason::Expired,
);
}
#[cfg(any(test, feature = "auth-local-application-authorization"))]
pub fn record_application_session_cleanup(removed: usize) {
for _ in 0..removed {
record(
AuthMetricOperation::Cleanup,
AuthMetricOutcome::Completed,
AuthMetricReason::Expired,
);
}
}
pub fn record_application_session_generation_invalidation() {
record(
AuthMetricOperation::GenerationInvalidation,
AuthMetricOutcome::Completed,
AuthMetricReason::GenerationAdvanced,
);
}
fn record(operation: AuthMetricOperation, outcome: AuthMetricOutcome, reason: AuthMetricReason) {
AuthMetrics::record(
AuthMetricSurface::ApplicationSession,
operation,
outcome,
reason,
);
}