Désactiver un filtre fait correspondre ses règles à moins de trafic, pas à plus
L’effet observable de la désactivation d’un filtre est donc que ses règles cessent de correspondre à quoi que ce soit, et que leur trafic atterrit sur la règle qui suit. Un autre fournisseur, ou un autre prix.Ce qu’est un filtre pour la passerelle
Une expansion au chargement, pas une indirection à l’exécution. Un filtre s’étend exactement aux conditions qu’il contient, et celles-ci sont ajoutées aux conditions de chaque règle qui le référence. Le test réel d’une règle est :Les filtres vivent dans la base de données (
app_filter, app_filter_condition) et sont partagés avec la tarification, ce qui est précisément l’intérêt : nommer un prédicat une seule fois, tarifier et router sur la même définition. La grammaire des fichiers n’a pas de syntaxe pour eux, donc scripts/fireflo import routing laisse app_route_rule_filter vide. Voir routingTable.conf.Une règle filtrée n’est pas un catch-all
Un vrai catch-all est une règle sans conditions et sans filtres, placée en dernier.Un filtre vide compte comme désactivé
Un filtre sans conditions s’enregistre et se charge, ce qui permet d’en construire un condition par condition. La réponse de la passerelle à ce cas n’est pas non plus l’intuitive : un filtre vide est ajouté à l’ensemble des filtres désactivés, donc toute règle qui le référence est ignorée. Refuser un filtre vide relève du même raisonnement que refuser un filtre manquant : un filtre qui ne restreint rien élargirait toute règle qui le porterait.Le filet de sécurité, et pourquoi ce n’est pas un contournement
Pour la même raison, un filtre référencé ne peut pas être supprimé tant que des règles pointent encore vers lui. Le panneau de contrôle affiche le nombre de références sur les règles de tarification et de routage avant de vous laisser en changer un. Le routage est la moitié où la conséquence est « les messages cessent d’être envoyés » plutôt que « les messages sont tarifés différemment ».Le vérifier avant de le modifier
1
Lire le compteur
Filtres dans le panneau indique combien de règles de tarification et combien de règles de routage référencent chaque filtre. Désactiver un filtre utilisé par quatre règles de routage supprime quatre règles du snapshot en cours d’exécution.
2
Regarder ce qui capte le trafic à la place
Pour chaque règle qui serait ignorée, trouvez la règle suivante dans la même table à laquelle le trafic correspondrait. C’est vers ce fournisseur que va le trafic.
3
Confirmer que le rechargement a pris
Après l’enregistrement, vérifiez
routing_warnings sur /ops/health et le journal pour Error parsing new routing table. Un rechargement rejeté conserve la table précédente et donne l’impression que rien ne s’est passé.Les workers de filtrage sont une autre chose
Une règle peut aussi cibler un worker de filtrage : un worker par lequel le message passe plutôt qu’une destination. Il renvoie un verdict, et le routeur agit en conséquence :RESCHEDULE n’a jamais été implémenté et retombe sur la remise en file, en le signalant une fois par message.Un message supprimé est remboursé et signalé ; un message retenu indéfiniment n’est ni l’un ni l’autre. C’est pourquoi compter la remise en file est le compromis voulu plutôt qu’un oubli.