Monitoring
Audience: Opérateur de plateforme
Note
Utilisateurs v2.x — voir migration pour le renommage des métriques.
Toutes les métriques ont été renommées du préfixe vault_injector_* vers
vdbi_* dans la v3.0.
Prometheus
L'injector, le renewer et le revoker exposent chacun un endpoint Prometheus.
Les métriques sont regroupées par phase du cycle de vie (renouvellement /
révocation de token / bail, admission), bookkeeping (stockage/suppression KV),
autorisation (service_account_*), et ajouts v3.0 pour le mode NRI et le mode
projected-SA.
| Nom de la métrique | Description | Labels |
|---|---|---|
vdbi_renew_token_count_success |
Nombre de renouvellements de token réussis | uuid, namespace |
vdbi_renew_token_count_error |
Nombre de renouvellements de token en erreur | uuid, namespace |
vdbi_renew_lease_count_success |
Nombre de renouvellements de bail réussis | uuid, namespace |
vdbi_renew_lease_count_error |
Nombre de renouvellements de bail en erreur | uuid, namespace |
vdbi_revoke_token_count_success |
Nombre de révocations de token réussies | uuid, namespace |
vdbi_revoke_token_count_error |
Nombre de révocations de token en erreur | uuid, namespace |
vdbi_token_expiration |
Timestamp d'expiration des tokens | uuid, namespace |
vdbi_lease_expiration |
Timestamp d'expiration des baux | uuid, namespace |
vdbi_token_last_renewed |
Dernier renouvellement de token réussi | uuid, namespace |
vdbi_synchronization_count_success |
Nombre de synchronisations réussies | |
vdbi_synchronization_count_error |
Nombre de synchronisations en erreur | |
vdbi_pod_cleanup_count_success |
Nombre de nettoyages de pod réussis | |
vdbi_pod_cleanup_count_error |
Nombre de nettoyages de pod en erreur | |
vdbi_last_synchronization_success |
Timestamp de la dernière synchronisation réussie | |
vdbi_orphan_ticket_created_count_success |
Nombre de tickets orphelins créés avec succès | |
vdbi_orphan_ticket_created_count_error |
Nombre de tickets orphelins créés en erreur | |
vdbi_store_data_count_success |
Nombre de stockages de données réussis | uuid, namespace |
vdbi_store_data_count_error |
Nombre de stockages de données en erreur | uuid, namespace |
vdbi_delete_data_count_success |
Nombre de suppressions de données réussies | uuid, namespace |
vdbi_delete_data_count_error |
Nombre de suppressions de données en erreur | uuid, namespace |
vdbi_connect_vault_count_success |
Nombre de connexions à Vault réussies | |
vdbi_connect_vault_count_error |
Nombre de connexions à Vault en erreur | |
vdbi_service_account_authorized_count |
Nombre de ServiceAccounts autorisés à assumer un dbRole | |
vdbi_service_account_denied_count |
Nombre de ServiceAccounts refusés pour un dbRole | service_account_name, namespace, db_role, cause |
vdbi_last_synchronization_duration |
Durée de la dernière synchronisation | |
vdbi_is_leader |
Vaut 1 si l'instance est leader, sinon 0 | lease_name |
vdbi_leader_election_attempts_total |
Nombre total de tentatives d'acquisition du leadership | lease_name |
vdbi_leader_election_duration_seconds |
Durée en secondes pendant laquelle cette instance est leader | lease_name, leader_name, mode |
vdbi_fetch_pods_success_count |
Nombre de récupérations de pods sans erreur | |
vdbi_fetch_pods_error_count |
Nombre de récupérations de pods en erreur | |
vdbi_mutated_pods_success_count |
Nombre de pods mutés avec succès | |
vdbi_mutated_pods_error_count |
Nombre d'erreurs lors de la mutation de pods |
Métriques v3.0 — mode NRI
| Nom de la métrique | Description | Labels |
|---|---|---|
vdbi_nri_substitutions_total |
Nombre d'événements CreateContainer où le plugin NRI a émis un ajustement d'environnement | |
vdbi_nri_unwrap_failures_total |
Nombre d'échecs du plugin NRI lors de la résolution des identifiants à CreateContainer | reason |
vdbi_nri_resolve_duplicate_total |
Nombre d'appels resolveMapping ayant rejoint un appel en cours (singleflight). Doit rester proche de 0 en fonctionnement normal ; les pics indiquent des courses CreateContainer concurrentes. |
Métriques v3.0 — mode projected-SA
| Nom de la métrique | Description | Labels |
|---|---|---|
vdbi_token_request_errors_total |
Nombre d'appels Kubernetes TokenRequest échoués (par ServiceAccount de pod, mode projected-SA) | reason (rbac_denied, sa_not_found, unauthorized, other) |
vdbi_vault_login_errors_total |
Nombre de connexions Vault échouées, classées pour le triage | reason (audience_mismatch, sa_not_bound, role_not_found, vault_sealed, permission_denied, other), auth_mode (legacy, projected, projected_bookkeeping) |
vdbi_projected_role_misconfigured_total |
Nombre de fois où un rôle Vault utilisé en mode projected-SA a été trouvé sans token_period > 0 (le pod-token mourra à token_max_ttl) |
role |
Grafana
Un tableau de bord de référence est fourni dans le dépôt à
dashboard.json.
Importez-le dans Grafana via Dashboards → Import → Upload JSON file,
pointez-le sur votre source de données Prometheus, et vous obtenez des panneaux
pour le cycle de vie des tokens et des baux, le débit d'admission, l'état du
leader, et les ventilations d'échecs NRI / projected-SA v3.0.

Alertmanager
Les règles ci-dessous couvrent les modes de défaillance qui justifient une
alerte : refus d'autorisation de ServiceAccount, échecs de renouvellement de
token ou de bail, et avertissements d'expiration avant l'épuisement du TTL.
Ajustez les durées for: et les labels de sévérité à votre posture d'astreinte
avant de déployer.
ServiceAccount refusé
- alert: VaultDbInjectorServiceAccountDenied
annotations:
description: "Service Account (SA) `{{ $labels.service_account_name }}` in namespace `{{ $labels.exported_namespace }}` was denied access to db_role `{{ $labels.db_role }}` due to `{{ $labels.cause }}` on cluster `{{ $labels.k8s_cluster }}`. Immediate investigation is recommended to ensure proper access controls and service configurations."
summary: "Service Account `{{ $labels.service_account_name }}` in namespace `{{ $labels.exported_namespace }}` was denied by the injector."
expr: increase(vdbi_service_account_denied_count{}[2m]) > 0
for: 1m
labels:
severity: critical
Actions correctives :
- Vérifier les permissions et rôles du ServiceAccount.
- Contrôler la configuration des db_role.
- Analyser la cause du refus.
Échec de renouvellement de token
- alert: VaultDbInjectorFailToRenewToken
annotations:
description: "VaultDbInjector encountered an error while attempting to renew a token. This might affect the continuous operation of dependent services."
summary: "VaultDbInjector token renewal failure for namespace `{{ $labels.exported_namespace }}` on cluster `{{ $labels.k8s_cluster }}`."
expr: increase(vdbi_renew_token_count_error{}[2m]) > 0
for: 1m
labels:
severity: warning
Actions correctives :
- Consulter les logs de l'injector pour les erreurs de renouvellement de token.
- Vérifier que la politique Vault autorise toujours
auth/token/renew. - Rechercher des problèmes réseau entre le renewer et Vault.
Échec de renouvellement de bail
- alert: VaultDbInjectorFailToRenewLease
annotations:
description: "VaultDbInjector encountered an error while attempting to renew a lease. Similar to token renewal failures, this can disrupt service operations if not addressed."
summary: "VaultDbInjector lease renewal failure for namespace `{{ $labels.exported_namespace }}` on cluster `{{ $labels.k8s_cluster }}`."
expr: increase(vdbi_renew_lease_count_error{}[2m]) > 0
for: 1m
labels:
severity: warning
Actions correctives :
- Inspecter les logs du renewer pour les erreurs de renouvellement de bail.
- Confirmer que la politique Vault autorise
sys/leases/renew. - Vérifier la connectivité vers Vault.
Avertissements d'expiration de token
- alert: VaultDbInjectorTokenExpirationLessThan14Days
annotations:
description: "A token is nearing expiration (less than 2 weeks). Renewing or rotating the token promptly ensures continuous service operation."
summary: "Token nearing expiration in namespace `{{ $labels.exported_namespace }}` on cluster `{{ $labels.k8s_cluster }}`."
expr: vdbi_token_expiration - time() < 1209600
for: 90m
labels:
severity: warning
- alert: VaultDbInjectorTokenExpirationLessThan7Days
annotations:
description: "A token will expire in less than 7 days. Immediate action is required to renew or rotate the token to avoid service disruption."
summary: "Urgent: Token expiration warning for namespace `{{ $labels.exported_namespace }}`."
expr: vdbi_token_expiration - time() < 604800
for: 5m
labels:
severity: critical
Actions correctives :
- Identifier le service ou l'application utilisant le token.
- Déclencher un renouvellement ou une rotation.
- Passer en revue les politiques de token pour les aligner avec les exigences opérationnelles.
Avertissements d'expiration de bail
- alert: VaultDbInjectorLeaseExpirationLessThan4Days
annotations:
description: "A lease is nearing expiration (less than 4 days). Addressing this promptly can prevent potential access issues for services relying on leased credentials or secrets."
summary: "Lease nearing expiration for namespace `{{ $labels.namespace }}` on cluster `{{ $labels.k8s_cluster }}`."
expr: vdbi_lease_expiration - time() < 345600
for: 3m
labels:
severity: warning
- alert: VaultDbInjectorLeaseExpirationLessThan1Day
annotations:
description: "A lease will expire in less than 1 day. Immediate renewal is critical to maintaining access for the dependent services."
summary: "Critical: Lease expiration imminent for namespace `{{ $labels.namespace }}`."
expr: vdbi_lease_expiration - time() < 86400
for: 3m
labels:
severity: critical
Actions correctives :
- Identifier et renouveler les baux des services concernés.
- Passer en revue les durées de bail et les politiques de renouvellement pour éviter les récurrences.