Diagnostica i job di aggregazione

Le tabelle seguenti descrivono una miriade di problemi e codici di stato di errore con potenziali motivi della causa e azioni che puoi intraprendere per mitigare la distribuzione. Se vuoi consultare le specifiche e la mitigazione degli errori complete per il servizio di aggregazione, consulta le nostre attuali indicazioni pubbliche.

Argomenti della guida:

Errori di autorizzazione e autorizzazioni

Problema Problemi di autorizzazioni quando esegui terraform plan o terraform apply nel tuo progetto cloud pubblico.
Errore di esempio Error: UnauthorizedOperation: You are not authorized to perform this operation.
Risoluzione

Verifica di aver eseguito correttamente l'autenticazione nell'interfaccia a riga di comando del cloud pubblico che stai utilizzando.

Amazon Web Services

AWS richiede le autorizzazioni utente per poter creare istanze e altri servizi necessari per il servizio di aggregazione. Una volta applicato, dovresti essere in grado di eseguire terraform plan e apply senza problemi.

Google Cloud Platform

In Google Cloud, tieni presente che dovrai rappresentare un service account per eseguire il deployment della seconda metà di Terraform. Il comando terraform apply potrebbe non riuscire se hai saltato questo passaggio perché il service account di deployment dispone di tutte le autorizzazioni necessarie per creare risorse. Consulta lo step 4 in "Set up your deployment environment" (Configura l'ambiente di deployment) nella documentazione di GitHub.

Errori del budget di privacy

Errore PRIVACY_BUDGET_ERROR
Causa Ciò indicherebbe che il servizio non è stato in grado di elaborare i report a causa di un errore del servizio di budget per la privacy.
Assegno Dopo aver riprovato a eseguire il job per verificare se l'errore è intermittente, contattaci tramite il modulo di assistenza tecnica.
Errore PRIVACY_BUDGET_AUTHORIZATION_ERROR
Causa Potresti utilizzare un'origine dei report diversa da quella fornita durante l'onboarding.
Assegno

Verifica che il sito che stai inviando nel campo attribution_report_to della richiesta createJob sia lo stesso inviato durante l'onboarding.

Il sito deve corrispondere o essere un sottodominio di quello di cui è stato eseguito l'onboarding. Tieni presente che l'onboarding del servizio di aggregazione viene gestito a livello di dominio di primo livello e tutti i sottodomini sono idonei a utilizzare il servizio di aggregazione una volta eseguito l'onboarding del dominio di primo livello.

Errore PRIVACY_BUDGET_AUTHENTICATION_ERROR
Causa Potresti utilizzare un ARN obsoleto o errato.
Assegno Google Cloud Platform

Verifica che il service account utilizzato nel deployment del servizio di aggregazione corrisponda a quello fornito durante l'onboarding. Deve corrispondere esattamente, non solo appartenere allo stesso progetto.

Amazon Web Services

È previsto che tu utilizzi gli stessi coordinatori che ti sono stati forniti via email. Se i problemi persistono, raccogli il file auto.tfvars e le informazioni sull'origine dei report e contattaci tramite il modulo di assistenza tecnica.

Errore PRIVACY_BUDGET_EXHAUSTED
Causa Errore:
            "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": 
            }
          

Il problema di esaurimento del budget per la privacy si verifica quando tenti di raggruppare un report il cui ID condiviso è già stato incluso in un batch precedente riuscito. Questo errore si verifica a causa della regola"Nessun duplicato", in base alla quale i report aggregabili possono essere visualizzati solo in un singolo batch e possono contribuire a un solo report riepilogativo.

A ogni report verrà assegnato un "ID condiviso" composto dai campi API shared_info, reporting_origin, destination_site, source_registration_time (troncato per giorno), scheduled_report_time (troncato per ora) e version. Ciò significa che più report possono appartenere allo stesso "ID condiviso" se condividono gli stessi attributi del campo shared_info.

Assegno

Ti consigliamo di provare l'assistenza per l'esaurimento del budget per la privacy fornita dalla risposta al job per esaminare e risolvere l'errore. In questo modo viene fornito un nuovo file JSON di assistenza che consente di visualizzare i report che hanno contribuito all'errore.

Tieni presente che, se esegui il batch correttamente, potresti avere diritto al recupero del budget (spiegazione). Suggerisci di leggere la spiegazione e compilare il modulo, ma tieni presente che la richiesta dovrà essere approvata per recuperare correttamente il budget ed eseguire nuovamente il job.

Errore DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Causa Ciò indica che stai eseguendo il job in modalità di debug. job_parameters nella richiesta createJob contiene debug_run: true. Quando il flag debug_run è attivato, puoi eseguire il report più volte a scopo di debug. Questo messaggio di errore ti informa che il job non sarebbe stato eseguito a causa dell'esaurimento del budget per la privacy del report se non fosse stato eseguito in modalità di debug. Questo errore sarà valido solo nelle versioni 2.10.0 o precedenti.
Assegno Il corpo della richiesta createJob conterrà debug_run in 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"
              }
            }
          

Errori di runtime del job

Errore INVALID_JOB
Endpoint createJob
Causa Ciò può verificarsi quando l'epsilon di privacy di debug fornito non rientra nei limiti (0,64] o quando i parametri del job non superano la convalida.
Assegno Quale valore di epsilon è stato utilizzato? Quali parametri del job sono stati utilizzati nella richiesta createJob e corrispondono al tuo ambiente? Sono formattati correttamente? Apporta le correzioni necessarie e riprova a eseguire il job.
Errore INTERNAL_ERROR
Endpoint getJob
Causa Può trattarsi di un problema di formattazione che causa l'elaborazione non riuscita per il dominio di output o i report. Può anche essere un problema con il deployment del servizio di aggregazione.
Assegno Verifica che la posizione del dominio di output sia un percorso valido. Riprova il job. Se l'errore persiste, richiedi il file auto.tfvars e l'output del piano Terraform per risolvere i problemi di deployment del servizio di aggregazione.
Errore RESULT_WRITE_ERROR
Endpoint getJob
Causa Ciò può accadere quando la scrittura nella directory di output non riesce, in modo temporaneo o a causa della mancanza dell'autorizzazione di scrittura nella directory. Tieni presente che gli errori di scrittura consumano il budget di privacy e il job non può essere ritentato. Ciò può contribuire a un altro risultato di errore, ovvero l'errore PRIVACY_BUDGET_EXHAUSTED.
Assegno Questo errore si verifica in ogni job o solo a intermittenza? Se questo problema si verifica in ogni job, verifica di aver attivato le autorizzazioni di scrittura nella directory di output. Se si tratta di un errore intermittente, le autorizzazioni dovrebbero essere corrette. È un problema noto che la scrittura di report di riepilogo può non riuscire, ma il budget per la privacy verrà comunque utilizzato. In questo caso, puoi richiedere il recupero del budget (spiegazione).
Problema Si verificano errori 403 durante l'esecuzione di un job e il recupero di un token del servizio di attestazione e il job restituisce sempre lo stato "RECEIVED".
Errore
            {
                "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": 
                }
            }
          
Risoluzione

I job che rimangono bloccati nello stato RECEIVED e l'errore 403 si verificano in genere quando il service account non è ancora stato integrato. Verifica che il service account che stai utilizzando corrisponda a quello fornito nella richiesta di onboarding. Se non hai completato una richiesta di onboarding, compila i moduli di onboarding e di registrazione.

Dopo aver verificato lo stato di registrazione e onboarding, controlla cosa è successo al job in esecuzione.

Amazon Web Services

In questo caso, è possibile che l'enclave AWS non sia in esecuzione o si sia arrestata in modo anomalo e quindi i job non vengano selezionati.

  1. Connettiti a Session Manager dell'istanza EC2.
  2. Segui questa documentazione AWS, che include i seguenti passaggi per la connessione a Session Manager.
  3. Vai a AWS Console Manager > EC2 > Instances (Istanze).
  4. Seleziona l'ID istanza del servizio di aggregazione in esecuzione.
  5. Seleziona la scheda "Session Manager" (Gestione sessioni) > pulsante "Connetti". In questo modo, ti connetterai alla tua istanza.
  6. Una volta in esecuzione l'istanza Enclave, esegui nel terminale:
    sudo nitro-cli describe-enclaves
    Se questo comando non mostra i log come previsto, esegui il seguente comando prima di riprovare:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Per verificare se l'enclave AWS ha subito un arresto anomalo, esegui il comando: sudo journalctl -u aggregate-worker.service
  8. Dovresti visualizzare i log di output che vengono compilati, ad esempio:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Se si verificano errori, questi dovrebbero essere visibili qui.
Google Cloud Platform

Il gruppo di istanze gestite (MIG) potrebbe non essere integro. Se è la prima volta che esegui la configurazione o se hai eliminato e ricreato adtech_setup Terraform, verifica che il service account sia stato caricato. Se il service account non è stato eseguito l'onboarding, i gruppi di istanze gestite non saranno integri.

  1. Nella console Cloud, vai a Compute Engine > Gruppi di istanze.
  2. Controlla le colonne di stato (i segni di spunta verdi indicano che sono integri)
  3. Fai clic su uno dei gruppi di istanze e consulta la scheda Errori per saperne di più sul problema. Fai clic sul nome dell'istanza per accedere alle informazioni a livello di VM.
  4. Puoi anche utilizzare il terminale per interagire con il gruppo di istanze e ottenere le stesse informazioni. Prova il comando list-errors:
    gcloud compute instance-groups managed list-errors --region=
    Di seguito è riportato un output di esempio.
                      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 continui a riscontrare problemi, salva questo messaggio e invialo al nostro team. Continua con i passaggi successivi.

Il report di riepilogo viene convertito come previsto?

Potrebbe verificarsi una situazione in cui la chiamata getJob va a buon fine, ma si verifica un problema con il report di riepilogo restituito dal servizio di aggregazione. Il report di riepilogo è in formato AVRO e dovrà essere convertito in formato JSON. Una volta convertito in formato JSON, sarà simile al seguente.

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

Se la conversione AVRO presenta problemi, prova a utilizzare gli strumenti AVRO e il seguente comando nel report AVRO. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Le versioni stabili possono essere scaricate da qui. Se hai bisogno di ulteriore assistenza, continua con i passaggi successivi.

Passaggi successivi

Controlla se qualcun altro ha riscontrato lo stesso problema nella dashboard dello stato di Privacy Sandbox o nel repository GitHub pubblico.

Se non vedi una soluzione al tuo problema con il servizio di aggregazione, comunicacelo segnalando un problema su GitHub o inviando il modulo di assistenza tecnica.