Diagnosticar jobs de agregação

As tabelas a seguir detalham vários problemas e códigos de status de erro com possíveis motivos para a causa e ações que você pode realizar para reduzir a implantação. Se quiser conferir as especificações e a mitigação de erros completas do serviço de agregação, consulte nossas orientações públicas atuais.

Tópicos do guia:

Erros de permissão e autorização

Problema Problemas de permissões ao executar terraform plan ou terraform apply no seu projeto de nuvem pública.
Exemplo de erro Error: UnauthorizedOperation: You are not authorized to perform this operation.
Resolução

Verifique se você fez a autenticação correta na interface de linha de comando (CLI) da nuvem pública que está usando.

Amazon Web Services

A AWS exige permissões de usuário para criar instâncias e outros serviços necessários para o serviço de agregação. Depois de aplicar isso, você poderá executar o plano e a aplicação do Terraform sem problemas.

Google Cloud Platform

No Google Cloud, observe que você precisará representar uma conta de serviço para implantar a segunda metade do Terraform. O comando "terraform apply" pode falhar se você pular esta etapa, porque a conta de serviço de implantação tem todas as permissões necessárias para criar recursos. Consulte a etapa 4 em "Configurar seu ambiente de implantação" na documentação do GitHub.

Erros de proposta de orçamento de privacidade

Erro PRIVACY_BUDGET_ERROR
Causa Isso indica que o serviço não conseguiu processar os relatórios devido a um erro no serviço de orçamento de privacidade.
Cheque Depois de tentar executar o job novamente para verificar se o erro foi intermitente, entre em contato com nossa equipe usando o formulário de suporte técnico.
Erro PRIVACY_BUDGET_AUTHORIZATION_ERROR
Causa Talvez você esteja usando uma origem de relatórios diferente da que eles informaram durante a integração.
Cheque

Verifique se o site enviado no campo attribution_report_to da solicitação createJob é o mesmo que foi enviado durante a integração.

O site precisa corresponder ou ser um subdomínio do que foi integrado. A integração do serviço de agregação é feita no domínio de nível superior, e todos os subdomínios podem usar o serviço depois que o domínio de nível superior é integrado.

Erro PRIVACY_BUDGET_AUTHENTICATION_ERROR
Causa Talvez você esteja usando um ARN desatualizado ou incorreto.
Cheque Google Cloud Platform

Verifique se a conta de serviço usada na implantação do Serviço de agregação corresponde à conta de serviço fornecida durante a integração. Ele precisa corresponder exatamente, não apenas pertencer ao mesmo projeto.

Amazon Web Services

É esperado que você use os mesmos coordenadores que foram fornecidos por e-mail. Se você ainda estiver com problemas, reúna o arquivo auto.tfvars e as informações de origem do relatório e entre em contato usando o formulário de suporte técnico.

Erro PRIVACY_BUDGET_EXHAUSTED
Causa Erro:
            "result_info": {
              "return_code": "PRIVACY_BUDGET_EXHAUSTED",
              "return_message": "com.google.aggregate.adtech.worker.exceptions.AggregationJobProcessException:
              Insufficient privacy budget for one or more aggregatable reports. No aggregatable report can appear
              in more than one aggregation job. Information related to reports that do not have budget can be
              found in the following file:
              File path: //
              Filename: privacy budget exhausted debugging information  \n
              com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.consumePrivacyBudgetUnits(ConcurrentAggregationProcessor.java:525) \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.process(ConcurrentAggregationProcessor.java:319) \n com.google.aggregate.adtech.worker.WorkerPullWorkService.run(WorkerPullWorkService.java:157)",
              "error_summary": {
                  "error_counts": [],
                  "error_messages": []
              },
              "finished_at": 
            }
          

O problema de esgotamento do orçamento de privacidade acontece quando você tenta agrupar um relatório cujo ID compartilhado já foi incluído em um lote anterior. Esse erro ocorre devido à regra"Sem duplicatas", em que os relatórios agregáveis só podem aparecer em um único lote e contribuir para um único relatório de resumo.

Cada relatório vai receber um "ID compartilhado", que consiste nos campos shared_info da API, reporting_origin, destination_site, source_registration_time (truncado por dia), scheduled_report_time (truncado por hora) e version. Isso significa que vários relatórios podem pertencer ao mesmo "ID compartilhado" se compartilharem os mesmos atributos do campo shared_info.

Cheque

Recomendamos que você teste o suporte para esgotamento do orçamento de privacidade fornecido na resposta do job para inspecionar e resolver o erro. Isso fornece um novo arquivo JSON auxiliar que mostra quais relatórios contribuíram para o erro.

Se você estiver fazendo o agrupamento em lotes corretamente, poderá se qualificar para a recuperação de orçamento (explicação). Sugira que eles leiam a explicação e preencham o formulário, mas observe que o pedido precisa ser aprovado para recuperar o orçamento e executar o trabalho novamente.

Erro DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Causa Isso indica que você está executando o job no modo de depuração. O job_parameters na solicitação createJob contém o debug_run: true. Quando a flag debug_run está ativada, é possível executar o relatório várias vezes para fins de depuração. Essa mensagem de erro informa que o job teria falhado devido ao esgotamento do orçamento de privacidade do relatório se não tivesse sido executado no modo de depuração. Esse erro só é válido em versões 2.10.0 ou anteriores.
Cheque O corpo da solicitação createJob vai conter debug_run em job_parameters.
            {
              "job_request_id": "{job_request_id}",
              "input_data_blob_prefix": "{input_prefix}",
              "input_data_bucket_name": "{input_bucket}",
              "output_data_blob_prefix": "{output_prefix}",
              "output_data_bucket_name": "{output_bucket}",
              "job_parameters": {
                "output_domain_blob_prefix": "{output_domain_prefix}",
                "output_domain_bucket_name": "{output_domain_bucket}",
                "attribution_report_to": "{reporting_origin}",
                "debug_run": "true"
              }
            }
          

Erros de execução do job

Erro INVALID_JOB
Endpoint createJob
Causa Isso pode acontecer quando o epsilon de privacidade de depuração fornecido não está dentro dos limites (0,64] ou quando os parâmetros do job não passam na validação.
Cheque Qual valor de epsilon foi usado? Quais parâmetros de job foram usados na solicitação createJob e eles correspondem ao seu ambiente? Eles estão formatados corretamente? Faça as correções necessárias e tente de novo.
Erro INTERNAL_ERROR
Endpoint getJob
Causa Pode ser um problema de formatação que causa falha no processamento do domínio de saída ou dos relatórios. Também pode haver um problema com a implantação do serviço de agregação.
Cheque Verifique se o local do domínio de saída é um caminho válido. Repita o job. Se o erro persistir, peça o arquivo auto.tfvars e a saída do plano do Terraform para resolver problemas na implantação do serviço de agregação.
Erro RESULT_WRITE_ERROR
Endpoint getJob
Causa Isso pode acontecer quando a gravação no diretório de saída falha, seja de forma transitória ou por falta de permissão de gravação no diretório. Os erros de gravação consomem o orçamento de privacidade, e não é possível tentar executar o job novamente. Isso pode contribuir para outro resultado de erro PRIVACY_BUDGET_EXHAUSTED.
Cheque Esse erro ocorre em todos os jobs ou apenas de forma intermitente? Se isso estiver acontecendo em todos os jobs, verifique se você ativou as permissões de gravação no diretório de saída. Se for uma falha intermitente, as permissões estarão corretas. É um problema conhecido que a gravação de relatórios de resumo pode falhar, mas o orçamento de privacidade ainda será consumido. Nesse caso, é possível solicitar a recuperação do orçamento (explicação).
Problema Encontrar erros 403 ao executar um job e recuperar um token de serviço de comprovação, e o job sempre retorna com o status "RECEIVED".
Erro
            {
                "job_status": "RECEIVED",
                "request_received_at": "{utc timestamp}",
                "request_updated_at": "{utc timestamp}",
                "job_request_id": "0001",
                "input_data_blob_prefix": "reports/",
                "input_data_bucket_name": "{bucket_name}",
                "output_data_blob_prefix": "summary/",
                "output_data_bucket_name": "{bucket_name}",
                "postback_url": "",
                "job_parameters": {
                    "output_domain_bucket_name": "{bucket_name}",
                    "output_domain_blob_prefix": "output_domain/",
                    "attribution_report_to": 
                }
            }
          
Resolução

Os jobs ficam presos no status RECEIVED, e o erro 403 geralmente ocorre quando a conta de serviço ainda não foi integrada. Verifique se a conta de serviço que você está usando corresponde à que foi informada na solicitação de integração. Se você não tiver concluído uma solicitação de integração, preencha os formulários de integração e inscrição.

Depois de verificar seu status de inscrição e integração, confira o que aconteceu com o job em execução.

Amazon Web Services

Quando isso acontece, talvez o enclave da AWS não esteja em execução ou tenha falhado, e, portanto, os jobs não estão sendo coletados.

  1. Conecte-se ao Session Manager da instância do EC2.
  2. Siga esta documentação da AWS, que inclui as etapas a seguir para se conectar ao Session Manager.
  3. Acesse AWS Console Manager > EC2 > Instâncias.
  4. Selecione o ID da instância do serviço de agregação em execução.
  5. Selecione a guia "Gerenciador de sessões" > botão "Conectar". Isso vai conectar você à sua instância.
  6. Quando a instância do Enclave estiver em execução, execute no terminal:
    sudo nitro-cli describe-enclaves
    Se esse comando não mostrar os registros conforme esperado, execute o seguinte antes de tentar novamente:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Para verificar se o enclave da AWS falhou, execute o comando: sudo journalctl -u aggregate-worker.service
  8. Os registros de saída vão aparecer, como:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Os erros vão aparecer aqui se houver falhas etc.
Google Cloud Platform

O grupo gerenciado de instâncias (MIG) pode não estar íntegro. Se esta for a primeira configuração ou se você destruiu e recriou o adtech_setup do Terraform, confirme se sua conta de serviço está integrada. Se a conta de serviço não estiver integrada, os MIGs não serão íntegros.

  1. No console do Cloud, acesse Compute Engine > Grupos de instâncias.
  2. Confira as colunas de status. As marcas de seleção verdes indicam que está tudo certo.
  3. Clique em um dos grupos de instâncias e consulte a guia "Erros" para saber mais sobre o problema. Clique no nome da instância para acessar informações no nível da VM.
  4. Você também pode usar o terminal para interagir com o grupo de instâncias e receber as mesmas informações. Tente o comando "list-errors":
    gcloud compute instance-groups managed list-errors --region=
    Confira um exemplo de saída.
                      INSTANCE_URL: https://www.googleapis.com/compute/v1/projects/aggservice-sandbox/zones/us-central1-c/instances/collector-operator-demo-env-67hd
                      ACTION: VERIFYING
                      ERROR_CODE: WAITING_FOR_HEALTHY_TIMEOUT_EXCEEDED
                      ERROR_MESSAGE: Waiting for HEALTHY state timed out (autohealingPolicy.initialDelay=200 sec) for instance projects/aggservice-sandbox/zones/us-central1-c/instances/collector-operator-demo-env-67hd and health check projects/aggservice-sandbox/global/healthChecks/operator-demo-env-collector-auto-heal-hc.
                      TIMESTAMP: 
                      INSTANCE_TEMPLATE: https://www.googleapis.com/compute/v1/projects/aggservice-sandbox/global/instanceTemplates/operator-demo-env-collector
                      VERSION_NAME: primary
                    
Se os problemas persistirem, salve essas informações e envie para nossa equipe. Siga para as próximas etapas.

Seu relatório de resumo está gerando conversões como esperado?

Pode haver uma situação em que a chamada "getJob" seja bem-sucedida, mas haja um problema com o relatório de resumo retornado pelo serviço de agregação. O relatório de resumo está no formato AVRO e precisa ser convertido para o formato JSON. Depois de convertido para um formato JSON, ele será semelhante a isto.

{
  "bucket": "\u0005Y",
  "metric": 26308
}

Se a conversão do AVRO estiver com algum problema, tente usar as ferramentas do AVRO e o seguinte comando no relatório AVRO. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json As versões estáveis podem ser baixadas aqui. Se precisar de mais ajuda, continue para as próximas etapas.

Próximas etapas

Verifique se mais alguém teve o mesmo problema no Painel de status do Sandbox de privacidade ou no repositório público do GitHub.

Se você não encontrar uma solução para seu problema com o Serviço de agregação, notifique-nos registrando um problema no GitHub ou enviando o formulário de suporte técnico.