Le plug-in traffic-tag étiquette le trafic des requêtes en ajoutant des en-têtes spécifiques, selon un poids ou le contenu de la requête. Définissez des règles à logique complexe pour déterminer l'étiquetage du trafic.
Attributs d'exécution
Étape d'exécution du plug-in : default stage. Priorité d'exécution du plug-in : 400.
Champs
Le tableau suivant décrit les champs de ce plug-in.
|
Champ |
Type |
Valeur par défaut |
Obligatoire |
Description |
|
|
array of object |
- |
Non |
Les groupes de conditions basés sur le contenu. Pour plus de détails, consultez la configuration de |
|
|
array of object |
- |
Non |
Les groupes de conditions basés sur le poids. Pour plus de détails, consultez la configuration de |
|
|
string |
- |
Non |
La clé de tag par défaut. Utilisée si aucune condition n'est satisfaite. Effective uniquement si |
|
|
string |
- |
Non |
La valeur de tag par défaut. Utilisée si aucune condition n'est satisfaite. Effective uniquement si |
Configuration de conditionGroups
Le tableau suivant décrit les champs de conditionGroups.
|
Champ |
Type |
Valeur par défaut |
Obligatoire |
Description |
|
|
string |
- |
Oui |
Nom de l'en-tête HTTP à ajouter ou modifier. |
|
|
string |
- |
Oui |
Valeur de l'en-tête HTTP. |
|
|
string |
- |
Oui |
Relation logique entre les conditions : |
|
|
array of object |
- |
Oui |
Conditions d'étiquetage. |
Le tableau suivant décrit les champs de conditions.
|
Champ |
Type |
Valeur par défaut |
Obligatoire |
Description |
|
|
string |
- |
Oui |
Type de condition : |
|
|
string |
- |
Oui |
Mot-clé de la condition. |
|
|
string |
- |
Oui |
Opérateur : |
|
|
array of string |
- |
Oui |
Valeur de la condition. Plusieurs valeurs sont prises en charge uniquement avec les opérateurs |
Si l'operator est regex, le moteur d'expressions régulières RE2 est utilisé. Pour plus d'informations, consultez la documentation officielle de RE2.
Configuration de weightGroups
Le tableau suivant décrit les champs de weightGroups.
|
Champ |
Type |
Valeur par défaut |
Obligatoire |
Description |
|
|
string |
- |
Oui |
Nom de l'en-tête HTTP à ajouter ou modifier. |
|
|
string |
- |
Oui |
Valeur de l'en-tête HTTP. |
|
|
integer |
- |
Oui |
Poids du trafic en pourcentage. |
Opérateurs
|
Opérateur |
Description |
|
|
Correspondance si la valeur est exactement égale à la valeur spécifiée. |
|
|
Correspondance si la valeur diffère de la valeur spécifiée. |
|
|
Correspondance si la valeur commence par la valeur spécifiée. |
|
|
Correspondance si la valeur figure dans la liste spécifiée. |
|
|
Correspondance si la valeur ne figure pas dans la liste spécifiée. |
|
|
Correspondance si la valeur correspond à l'expression régulière spécifiée. |
|
|
Correspondance si |
L'opérateur percentage et le champ weight diffèrent sur les points suivants :
percentage: Évalue une expression conditionnelle basée sur un pourcentage et une paire clé-valeur spécifiés. Les résultats sont idempotents : une paire clé-valeur correspondante produit toujours le même résultat lors des évaluations suivantes.weight: Définit la proportion de trafic routée vers différents chemins. Contrairement àpercentage, le poids distribue le trafic de manière aléatoire : la même requête peut être routée vers différents chemins lors d'évaluations successives.
Utilisez percentage pour une mise en correspondance conditionnelle déterministe ; utilisez weight pour une distribution aléatoire du trafic.
Exemples de configuration
Exemple 1 : Mise en correspondance basée sur le contenu
Dans cet exemple, si l'en-tête role d'une requête vaut user, viewer ou editor et que la requête contient foo=bar, l'en-tête x-mse-tag: gray est ajouté. Si aucune condition n'est satisfaite, l'en-tête x-mse-tag: base est ajouté, comme défini par defaultTagKey et defaultTagVal.
defaultTagKey: x-mse-tag
defaultTagVal: base
conditionGroups:
- headerName: x-mse-tag
headerValue: gray
logic: and
conditions:
- conditionType: header
key: role
operator: in
value:
- user
- viewer
- editor
- conditionType: parameter
key: foo
operator: equal
value:
- bar
Exemple 2 : Mise en correspondance basée sur le poids
Dans cet exemple, une requête a 30 % de chances d'être étiquetée avec x-mse-tag: gray, 30 % de chances d'être étiquetée avec x-mse-tag: blue et 40 % de chances de ne pas être étiquetée.
# The total weight is 100. The weight value 40, which is not configured, indicates that no header is added.
weightGroups:
- headerName: x-mse-tag
headerValue: gray
weight: 30
- headerName: x-mse-tag
headerValue: blue
weight: 30