Adicionar código à sua aplicação
Importante
Aviso de fim do suporte: em 16 de outubro de 2025, a AWS descontinuará o suporte para o CloudWatch Evidently. Após 16 de outubro de 2025, você não poderá mais acessar o console do ou os recursos do Evidently.
Para trabalhar com o CloudWatch Evidently, você adiciona código à aplicação para atribuir uma variação a cada sessão do usuário e enviar métricas para o Evidently. Você utiliza a operação EvaluateFeature
do CloudWatch Evidently para atribuir variações às sessões dos usuários e você utiliza a operação PutProjectEvents
para enviar eventos ao Evidently a serem utilizados a fim de calcular métricas para seus lançamentos ou experimentos.
Ao criar variações ou métricas personalizadas, o console do CloudWatch Evidently fornece exemplos do código que você precisa adicionar.
Para um exemplo completo, consulte Tutorial: teste de A/B com a aplicação de exemplo do Evidently.
Utilizar a operação EvaluateFeature
Quando as variações de recursos são usadas em um lançamento ou experimento, a aplicação usa a operação EvaluateFeature para atribuir uma variação para cada sessão do usuário. A atribuição de uma variação a um usuário é um evaluation event (evento de avaliação). Quando você chama essa operação, você passa pelo seguinte processo:
Feature name (Nome do recurso): obrigatório. O Evidently processa a avaliação de acordo com as regras de avaliação de recursos do lançamento ou experimento e seleciona uma variação para a entidade.
entityId– Obrigatório. Representa um único usuário.
EvaluationContext– Opcional. Um objeto JSON representando informações adicionais sobre um usuário. Se você tiver criado segmentos, o Evidently usará esse valor para corresponder o usuário a um segmento do seu público durante as avaliações de recursos. Para ter mais informações, consulte Usar segmentos para delimitar o público.
Veja a seguir um exemplo de um valor de
evaluationContext
que você pode enviar para o Evidently.{ "Browser": "Chrome", "Location": { "Country": "United States", "Zipcode": 98007 } }
Avaliações com aderência
O CloudWatch Evidently utiliza avaliações com “aderência”. Uma única configuração de entityId
, recurso, configuração de recurso e evaluationContext
sempre obtém a mesma atribuição de variação. A única vez em que essa atribuição de variação muda é quando uma entidade é adicionada a uma substituição ou o tráfego do experimento é discado.
Uma configuração de recurso inclui o seguinte:
-
As variações de recursos
-
A configuração de variação (porcentagens atribuídas a cada variação) para um experimento em execução para esse recurso, se houver.
-
A configuração de variação para uma inicialização em execução para esse recurso, se houver. A configuração de variação inclui as substituições de segmento definidas, se houver.
Se a alocação de tráfego de um experimento for aumentada, qualquer entityId
que tenha sido previamente atribuído a um grupo de tratamento experimental continuará recebendo o mesmo tratamento. Qualquer entityId
que tenha sido previamente atribuído ao grupo de controle pode ser atribuído a um grupo de tratamento experimental de acordo com a configuração de variação especificada para o experimento.
Se a alocação de tráfego de um experimento for reduzida, um entityId
pode passar de um grupo de tratamento para um grupo de controle, mas não entrará em um grupo de tratamento diferente.
Utilizar a operação PutProjectEvents
Para codificar uma métrica personalizada do Evidently, use a operação PutProjectEvents. Veja a seguir um exemplo de carga útil simples.
{ "events": [ { "timestamp": {{$timestamp}}, "type": "aws.evidently.custom", "data": "{\"details\": {\"pageLoadTime\": 800.0}, \"userDetails\": {\"userId\": \"test-user\"}}" } ] }
A entityIdKey
pode ser apenas uma entityId
, ou você pode renomeá-la para qualquer outra coisa, comouserId
. No evento real, entityId
pode ser um nome de usuário, um ID de sessão e assim por diante.
"metricDefinition":{ "name": "noFilter", "entityIdKey": "userDetails.userId", //should be consistent with jsonValue in events "data" fields "valueKey": "details.pageLoadTime" },
Para ter certeza de que os eventos estejam associados ao lançamento ou experimento correto, transmita o mesmo entityId
ao chamar EvaluateFeature
e PutProjectEvents
. Certifique-se de chamar PutProjectEvents
depois de EvaluateFeature
. Caso contrário, os dados serão descartados e não serão usados pelo CloudWatch Evidently.
A operação PutProjectEvents
não requer o nome do recurso como parâmetro de entrada. Portanto, você pode usar um evento único em vários experimentos. Por exemplo, suponhamos que você chame EvaluateFeature
com entityId
definido como userDetails.userId
. Se houver dois ou mais experimentos em execução, será possível fazer com que um único evento da sessão desse usuário emita métricas para cada um desses experimentos. Para fazer isso, chame PutProjectEvents
uma vez para cada experimento, usando o mesmo entityId
.
Prazo
Depois que a aplicação chama EvaluateFeature
, há um período de tempo de uma hora no qual os eventos de métricas de PutProjectEvents
são atribuídos com base nessa avaliação. Se mais eventos ocorrerem após esse período de uma hora, não serão atribuídos.
Porém, se o mesmo entityId
for usado para uma nova chamada de EvaluateFeature
durante a janela de uma hora da chamada inicial, o último resultado de EvaluateFeature
será usado no lugar, e o timer de uma hora será zerado. Isso pode acontecer apenas em certas circunstâncias, como quando o tráfego do experimento é chamado entre as duas atribuições, conforme explicado na seção anterior, Avaliações com aderência.
Para um exemplo completo, consulte Tutorial: teste de A/B com a aplicação de exemplo do Evidently.