O plug-in traffic-tag marca o tráfego de requisições adicionando cabeçalhos específicos com base em peso ou no conteúdo da requisição. É possível definir regras de lógica complexa para determinar como o tráfego será marcado.
Atributos de execução
Estágio de execução do plug-in: default stage. Prioridade de execução do plug-in: 400.
Campos
A tabela a seguir descreve os campos deste plug-in.
|
Campo |
Tipo |
Valor padrão |
Obrigatório |
Descrição |
|
|
array of object |
- |
Não |
Grupos de condições baseados em conteúdo. Para mais detalhes, consulte as configurações de conditionGroups. |
|
|
array of object |
- |
Não |
Grupos de condições baseados em peso. Para mais detalhes, consulte as configurações de weightGroups. |
|
|
string |
- |
Não |
Chave de tag padrão. Utilizada quando nenhuma condição é correspondida. Só entra em vigor se |
|
|
string |
- |
Não |
Valor de tag padrão. Utilizado quando nenhuma condição é correspondida. Só entra em vigor se |
Configurações de conditionGroups
A tabela abaixo detalha os campos em conditionGroups.
|
Campo |
Tipo |
Valor padrão |
Obrigatório |
Descrição |
|
|
string |
- |
Sim |
Nome do cabeçalho HTTP a ser adicionado ou modifique. |
|
|
string |
- |
Sim |
Valor do cabeçalho HTTP. |
|
|
string |
- |
Sim |
Relação lógica entre as condições: |
|
|
array of object |
- |
Sim |
Condições de marcação. |
Os campos presentes em conditions estão descritos na tabela seguinte.
|
Campo |
Tipo |
Valor padrão |
Obrigatório |
Descrição |
|
|
string |
- |
Sim |
Tipo da condição: |
|
|
string |
- |
Sim |
Palavra-chave da condição. |
|
|
string |
- |
Sim |
Operador: |
|
|
array of string |
- |
Sim |
Valor da condição. Vários valores são suportados apenas quando o operador é |
Quando o operator é regex, utiliza-se o mecanismo de expressão regular RE2. Para mais informações, consulte a documentação oficial do RE2.
Configurações de weightGroups
Confira na tabela a seguir os campos de weightGroups.
|
Campo |
Tipo |
Valor padrão |
Obrigatório |
Descrição |
|
|
string |
- |
Sim |
Nome do cabeçalho HTTP a ser adicionado ou modifique. |
|
|
string |
- |
Sim |
Valor do cabeçalho HTTP. |
|
|
integer |
- |
Sim |
Peso do tráfego em porcentagem. |
Operadores
|
Operador |
Descrição |
|
|
Corresponde se o valor for exatamente igual ao valor especificado. |
|
|
Corresponde se o valor for diferente do valor especificado. |
|
|
Corresponde se o valor começar com o valor especificado. |
|
|
Corresponde se o valor estiver na lista especificada. |
|
|
Corresponde se o valor não estiver na lista especificada. |
|
|
Corresponde se o valor atender à expressão regular especificada. |
|
|
Corresponde se |
O operador percentage e o campo weight diferem nos seguintes aspectos:
percentage: Avalia uma expressão condicional com base em uma porcentagem e um par chave-valor especificados. Os resultados são idempotentes: um par chave-valor correspondente sempre produz o mesmo resultado em avaliações subsequentes.weight: Define a proporção de tráfego roteado para diferentes caminhos. Ao contrário depercentage, o peso distribui o tráfego aleatoriamente: a mesma requisição pode ser roteada para caminhos diferentes em avaliações distintas.
Utilize percentage para correspondência determinística de condições; use weight para distribuição aleatória de tráfego.
Exemplos de configuração
Exemplo 1: correspondência baseada em conteúdo
Neste exemplo, se o cabeçalho role de uma requisição for user, viewer ou editor e a requisição contiver foo=bar, o cabeçalho x-mse-tag: gray será adicionado. Caso nenhuma condição seja atendida, o sistema adiciona o cabeçalho x-mse-tag: base, conforme definido por defaultTagKey e 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
Exemplo 2: correspondência baseada em peso
Neste cenário, uma requisição tem 30% de chance de ser marcada com x-mse-tag: gray, 30% de chance de receber a marca x-mse-tag: blue e 40% de chance de não ser marcada.
# 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