cdr_submit part 1 est le seul enregistrement par message de ce qui a été débité, et il est
supprimé une fois qu’il dépasse la fenêtre de rétention.
Sans un résumé, cela signifie qu’aucun relevé plus ancien que la fenêtre ne peut jamais être
réémis, et le côté consommation de chaque réconciliation disparaît — donc chaque compte vieilli
dérive vers un écart que rien ne peut expliquer.
usage_daily est ce résumé
Une ligne par compte, par product, par jour.
Quotidien plutôt que mensuel afin que toute période soit une SUM sur des jours — un mois
calendaire, un trimestre, un intervalle from/to arbitraire — pour toujours, sans deuxième table
dérivée pour être en désaccord avec elle.
Les chiffres facturables sont définitifs ; les chiffres de livraison ne le sont pas
C’est ce qui rend le rollup sûr à re-exécuter.
Le rollup est idempotent et refait uniquement les colonnes de livraison. L’argent d’un jour
terminé est réglé au moment où le jour se termine.
Un jour de facturation est un jour local
FIREFLO_BILLING_ZONE décide où un jour commence, et il est lu depuis app_config afin que le
rollup et le panneau soient d’accord.
La purge refuse de supprimer ce que rien n’a résumé
usage_daily, elle refuse toute l’exécution
et nomme les jours.
Ce n’est pas un avertissement et pas un skip. Supprimer un jour non résumé détruit
l’enregistrement de consommation de façon permanente, et cela doit être structurellement
impossible plutôt qu’une question d’exécuter les choses dans le bon ordre.
FIREFLO_CDR_KEEP_DAYS définit la fenêtre, par défaut 90.
Deux fenêtres, deux buts
cdr_interim est élagué sur sa propre fenêtre plus courte précisément parce qu’il répond à une
question sur le trafic récent : à quelle vitesse un vendor rapporte, et s’il rapporte.
Une politique de rétention n’est pas optionnelle
Les enregistrements d’appels contiennent des adresses — ils doivent le faire, parce que la tarification et la résolution des litiges en ont besoin. Si l’enregistrement du corps du message est activé, ils contiennent aussi du contenu.Un ordre d’opérations qui marche
1
Définissez la zone de facturation avant tout trafic
Elle décide où chaque frontière de jour tombe.
2
Roulez tous les soirs
fireflo usage rollup --catch-up, sur un planning.3
Vérifiez que le rollup couvre la fenêtre avant de purger
La purge vérifie cela elle-même et refuse — mais savoir qu’elle est passée vaut mieux que
découvrir qu’elle a refusé.
4
Purgez sur son propre planning
Derrière
FIREFLO_CDR_PURGE=true, qui existe pour que cela ne puisse pas arriver par accident.En lien
Enregistrements d'appels
Les trois tables et ce que signifie chaque colonne.
Relevés
Clôturer une période et émettre une facture.