canic-core 0.26.3

Canic — a canister orchestration and management toolkit for the Internet Computer
Documentation
use super::{
    AuthMetricPredicate, DelegationInstallNormalizationRejectReason,
    DelegationInstallValidationFailureReason, DelegationProvisionRole, auth_signer_endpoint,
    complete_predicate, fanout_bucket, install_intent_label, record_auth_metric,
    signer_issue_without_proof_predicate, verifier_target_count_predicate,
    verifier_target_failed_predicate, verifier_target_missing_predicate,
};
use crate::{
    dto::auth::DelegationProofInstallIntent, ids::AccessMetricKind,
    ops::runtime::metrics::access::AccessMetrics,
};

pub fn record_signer_issue_without_proof() {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        signer_issue_without_proof_predicate(),
    );
}

pub fn record_delegation_verifier_target_failed() {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        verifier_target_failed_predicate(),
    );
}

pub fn record_delegation_verifier_target_missing() {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        verifier_target_missing_predicate(),
    );
}

pub fn record_delegation_verifier_target_count(target_count: usize) {
    for _ in 0..target_count {
        AccessMetrics::increment(
            auth_signer_endpoint(),
            AccessMetricKind::Auth,
            verifier_target_count_predicate(),
        );
    }
}

pub fn record_delegation_push_attempt(
    role: DelegationProvisionRole,
    intent: DelegationProofInstallIntent,
) {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        role.attempt_predicate(intent),
    );
}

pub fn record_delegation_push_success(
    role: DelegationProvisionRole,
    intent: DelegationProofInstallIntent,
) {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        role.success_predicate(intent),
    );
}

pub fn record_delegation_push_failed(
    role: DelegationProvisionRole,
    intent: DelegationProofInstallIntent,
) {
    record_auth_metric(
        auth_signer_endpoint(),
        AuthMetricPredicate::DelegationPushFailed { role, intent },
    );
}

pub fn record_delegation_push_complete(intent: DelegationProofInstallIntent) {
    AccessMetrics::increment(
        auth_signer_endpoint(),
        AccessMetricKind::Auth,
        complete_predicate(intent),
    );
}

pub fn record_delegation_provision_complete() {
    record_delegation_push_complete(DelegationProofInstallIntent::Provisioning);
}

pub fn record_delegation_install_total(intent: DelegationProofInstallIntent) {
    let predicate = format!(
        "delegation_install_total{{intent=\"{}\"}}",
        install_intent_label(intent)
    );
    AccessMetrics::increment(auth_signer_endpoint(), AccessMetricKind::Auth, &predicate);
}

pub fn record_delegation_install_normalized_target_count(
    intent: DelegationProofInstallIntent,
    target_count: usize,
) {
    let predicate = format!(
        "delegation_install_normalized_target_total{{intent=\"{}\"}}",
        install_intent_label(intent)
    );
    for _ in 0..target_count {
        AccessMetrics::increment(auth_signer_endpoint(), AccessMetricKind::Auth, &predicate);
    }
}

pub fn record_delegation_install_fanout_bucket(
    intent: DelegationProofInstallIntent,
    target_count: usize,
) {
    let predicate = format!(
        "delegation_install_fanout_bucket{{intent=\"{}\",bucket=\"{}\"}}",
        install_intent_label(intent),
        fanout_bucket(target_count)
    );
    AccessMetrics::increment(auth_signer_endpoint(), AccessMetricKind::Auth, &predicate);
}

pub fn record_delegation_install_normalization_rejected(
    intent: DelegationProofInstallIntent,
    reason: DelegationInstallNormalizationRejectReason,
) {
    record_auth_metric(
        auth_signer_endpoint(),
        AuthMetricPredicate::DelegationInstallNormalizationRejected { intent, reason },
    );
}

pub fn record_delegation_install_validation_failed(
    intent: DelegationProofInstallIntent,
    reason: DelegationInstallValidationFailureReason,
) {
    record_auth_metric(
        auth_signer_endpoint(),
        AuthMetricPredicate::DelegationInstallValidationFailed { intent, reason },
    );
}