Aggregationsjobs diagnostizieren

In den folgenden Tabellen werden zahlreiche Probleme und Fehlerstatuscodes mit möglichen Ursachen und Maßnahmen beschrieben, die Sie ergreifen können, um die Bereitstellung zu optimieren. Die vollständigen Fehlerspezifikationen und -behebungen für den Aggregationsdienst finden Sie in unserer aktuellen öffentlichen Anleitung.

Themen des Leitfadens:

Berechtigungs- und Autorisierungsfehler

Problem Berechtigungsprobleme, wenn Sie terraform plan oder terraform apply für Ihr öffentliches Cloud-Projekt ausführen.
Beispiel für einen Fehler Error: UnauthorizedOperation: You are not authorized to perform this operation.
Auflösung

Prüfen Sie, ob Sie in der Befehlszeile der von Ihnen verwendeten öffentlichen Cloud ordnungsgemäß authentifiziert sind.

Amazon Web Services

AWS erfordert Nutzerberechtigungen, um Instanzen und andere Dienste erstellen zu können, die für den Aggregationsdienst erforderlich sind. Danach sollten Sie terraform plan und apply ohne Probleme ausführen können.

Google Cloud Platform

In Google Cloud müssen Sie die Identität eines Dienstkontos übernehmen, um die zweite Hälfte des Terraform-Codes bereitzustellen. Wenn Sie diesen Schritt übersprungen haben, schlägt der Befehl „terraform apply“ möglicherweise fehl, da das Bereitstellungsdienstkonto alle erforderlichen Berechtigungen zum Erstellen von Ressourcen hat. Weitere Informationen finden Sie in der GitHub-Dokumentation unter Schritt 4 unter „Bereitstellungsumgebung einrichten“.

Fehler beim Datenschutzbudget

Fehler PRIVACY_BUDGET_ERROR
Ursache Das bedeutet, dass der Dienst die Berichte aufgrund eines Fehlers beim Datenschutzbudgetdienst nicht verarbeiten konnte.
Scheck Wenn Sie den Job noch einmal ausgeführt haben, um festzustellen, ob der Fehler sporadisch auftritt, wenden Sie sich über das Formular für den technischen Support an uns.
Fehler PRIVACY_BUDGET_AUTHORIZATION_ERROR
Ursache Möglicherweise verwenden Sie eine andere Berichtsquelle als die, die beim Onboarding angegeben wurde.
Scheck

Die Website, die Sie im Feld attribution_report_to der createJob-Anfrage einreichen, muss mit der Website übereinstimmen, die beim Onboarding eingereicht wurde.

Die Website muss mit der Domain übereinstimmen, die bei der Einrichtung verwendet wurde, oder eine Subdomain davon sein. Das Onboarding des Aggregationsdiensts erfolgt auf der Domainebene. Sobald die Domainebene eingerichtet ist, können alle Subdomains den Aggregationsdienst nutzen.

Fehler PRIVACY_BUDGET_AUTHENTICATION_ERROR
Ursache Möglicherweise verwenden Sie eine veraltete oder falsche ARN.
Scheck Google Cloud Platform

Prüfen Sie, ob das Dienstkonto, das in Ihrer Bereitstellung des Aggregationsdiensts verwendet wird, mit dem Dienstkonto übereinstimmt, das beim Onboarding angegeben wurde. Es muss genau übereinstimmen und nicht nur zum selben Projekt gehören.

Amazon Web Services

Sie sollten dieselben Koordinatoren verwenden, die Ihnen per E-Mail mitgeteilt wurden. Sollten weiterhin Probleme auftreten, rufen Sie die Datei „auto.tfvars“ auf und füllen Sie das Formular für den technischen Support aus.

Fehler PRIVACY_BUDGET_EXHAUSTED
Ursache Fehler:
            "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": 
            }
          

Das Problem tritt auf, wenn Sie versuchen, einen Bericht in einem Batch zu erstellen, dessen freigegebene ID bereits in einem zuvor erfolgreichen Batch enthalten war. Dieser Fehler tritt aufgrund der Regel „Keine Duplikate“ auf. Danach dürfen aggregierbare Berichte nur in einem einzigen Batch enthalten sein und nur zu einem zusammengefassten Bericht beitragen.

Jedem Bericht wird eine „gemeinsame ID“ zugewiesen, die aus den shared_info-Feldern API, reporting_origin, destination_site, source_registration_time (auf Tagesbasis gekürzt), scheduled_report_time (auf Stundenbasis gekürzt) und version besteht. Das bedeutet, dass mehrere Berichte derselben „gemeinsamen ID“ zugewiesen werden können, wenn sie dieselben Attribute des Felds shared_info haben.

Scheck

Wir empfehlen Ihnen, den Support für den Fall, dass das Datenschutzbudget aufgebraucht ist zu verwenden, der in der Jobantwort enthalten ist, um den Fehler zu prüfen und zu beheben. Dadurch wird eine neue JSON-Hilfsdatei erstellt, aus der hervorgeht, welche Berichte zum Fehler beigetragen haben.

Wenn Sie die Batch-Funktion richtig verwenden, haben Sie möglicherweise Anspruch auf eine Budgetwiederherstellung (weitere Informationen). Bitte ihn, die Erläuterung zu lesen und das Formular auszufüllen. Er muss aber wissen, dass sein Antrag genehmigt werden muss, damit das Budget wiederhergestellt und der Job noch einmal ausgeführt werden kann.

Fehler DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Ursache Das bedeutet, dass Sie den Job im Debug-Modus ausführen. Der job_parameters in der createJob-Anfrage enthält den debug_run: true. Wenn das Flag debug_run aktiviert ist, können Sie den Bericht zur Fehlerbehebung mehrmals ausführen. Diese Fehlermeldung informiert Sie darüber, dass der Job fehlgeschlagen wäre, weil das Datenschutzbudget des Berichts aufgebraucht ist, wenn er nicht im Debug-Modus ausgeführt worden wäre. Dieser Fehler gilt nur für Versionen 2.10.0 oder niedriger.
Scheck Der Anfragetext von createJob enthält 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"
              }
            }
          

Laufzeitfehler von Jobs

Fehler INVALID_JOB
Endpunkt createJob
Ursache Das kann passieren, wenn der angegebene Epsilon-Wert für den Datenschutz bei der Fehlerbehebung nicht im zulässigen Bereich [0,64] liegt oder die Jobparameter nicht validiert werden können.
Scheck Welcher Epsilonwert wurde verwendet? Welche Jobparameter wurden in der createJob-Anfrage verwendet und stimmen sie mit Ihrer Umgebung überein? Sind sie richtig formatiert? Nehmen Sie die erforderlichen Korrekturen vor und versuchen Sie es noch einmal.
Fehler INTERNAL_ERROR
Endpunkt getJob
Ursache Möglicherweise liegt ein Formatierungsproblem vor, das die Verarbeitung der Ausgabedomain oder der Berichte verhindert. Möglicherweise liegt auch ein Problem mit der Bereitstellung des Aggregationsdienstes vor.
Scheck Der Speicherort der Ausgabedomain muss ein gültiger Pfad sein. Wiederholen Sie den Job. Wenn der Fehler weiterhin auftritt, fordern Sie die auto.tfvars-Datei und die Terraform-Planausgabe an, um die Bereitstellung des Aggregationsdiensts zu beheben.
Fehler RESULT_WRITE_ERROR
Endpunkt getJob
Ursache Das kann passieren, wenn das Schreiben in das Ausgabeverzeichnis fehlschlägt, entweder vorübergehend oder aufgrund fehlender Schreibberechtigungen für das Verzeichnis. Schreibfehler beeinträchtigen das Datenschutzbudget und der Job kann nicht noch einmal ausgeführt werden. Dies kann zu einem weiteren Fehler führen, der als PRIVACY_BUDGET_EXHAUSTED-Fehler angezeigt wird.
Scheck Tritt dieser Fehler bei jedem Job oder nur gelegentlich auf? Wenn das bei jedem Job auftritt, prüfen Sie, ob Sie Schreibberechtigungen für das Ausgabeverzeichnis aktiviert haben. Wenn es sich um einen vorübergehenden Fehler handelt, sollten die Berechtigungen korrekt sein. Es ist ein bekanntes Problem, dass das Erstellen von Zusammenfassungsberichten fehlschlagen kann, das Datenschutzbudget aber trotzdem aufgebraucht wird. In diesem Fall können Sie eine Budgetwiederherstellung beantragen (weitere Informationen).
Problem Beim Ausführen eines Jobs und Abrufen eines Attestierungsdienste-Tokens treten 403-Fehler auf. Der Job wird immer mit dem Status „EMPFOHLEN“ zurückgegeben.
Fehler
            {
                "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": 
                }
            }
          
Auflösung

Wenn Jobs im Status RECEIVED hängen bleiben und der Fehler 403 auftritt, ist das Dienstkonto in der Regel noch nicht eingerichtet. Prüfen Sie, ob das von Ihnen verwendete Dienstkonto mit dem in Ihrer Onboarding-Anfrage angegebenen Konto übereinstimmt. Wenn Sie noch keinen Onboarding-Antrag gestellt haben, füllen Sie bitte das Onboarding-Formular und die Anmeldeformulare aus.

Nachdem Sie den Registrierungs- und Onboarding-Status überprüft haben, sehen Sie nach, was mit dem laufenden Job passiert ist.

Amazon Web Services

In diesem Fall wird die AWS-Enklave möglicherweise nicht ausgeführt oder ist abgestürzt, sodass die Jobs nicht abgerufen werden.

  1. Stellen Sie eine Verbindung zum EC2-Instanz-Sitzungsmanager her.
  2. Folgen Sie dieser AWS-Dokumentation, die die folgenden Schritte zum Herstellen einer Verbindung zum Session Manager enthält.
  3. Gehen Sie zu „AWS Console Manager“ > „EC2“ > „Instances“.
  4. Wählen Sie die Instanz-ID des laufenden Aggregationsdiensts aus.
  5. Wählen Sie den Tab „Session Manager“ > die Schaltfläche „Verbinden“ aus. Dadurch wird eine Verbindung zu Ihrer Instanz hergestellt.
  6. Führen Sie nach dem Starten der Enclave-Instanz im Terminal den folgenden Befehl aus:
    sudo nitro-cli describe-enclaves
    Wenn mit diesem Befehl keine Protokolle wie erwartet angezeigt werden, führen Sie Folgendes aus, bevor Sie es noch einmal versuchen:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die AWS-Enklave abgestürzt ist: sudo journalctl -u aggregate-worker.service
  8. Es sollten Ausgabeprotokolle wie die folgenden angezeigt werden:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Falls Fehler auftreten, sollten sie hier angezeigt werden.
Google Cloud Platform

Die verwaltete Instanzgruppe (Managed Instance Group, MIG) ist möglicherweise nicht fehlerfrei. Wenn Sie die adtech_setup zum ersten Mal einrichten oder sie gelöscht und neu erstellt haben, prüfen Sie, ob Ihr Dienstkonto eingerichtet ist. Wenn das Dienstkonto nicht eingerichtet ist, sind die MIGs nicht betriebsbereit.

  1. Cloud Console: „Compute Engine“ > „Instanzgruppen“
  2. Prüfen Sie die Statusspalten. Grüne Häkchen stehen für einen fehlerfreien Status.
  3. Klicken Sie auf eine der Instanzgruppen und sehen Sie sich den Tab „Fehler“ an, um mehr über das Problem zu erfahren. Klicken Sie auf den Instanznamen, um auf Informationen auf VM-Ebene zuzugreifen.
  4. Sie können auch über das Terminal mit der Instanzgruppe interagieren und dieselben Informationen abrufen. Verwenden Sie den Befehl „list-errors“:
    gcloud compute instance-groups managed list-errors --region=
    Hier ist eine Beispielausgabe.
                      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
                    
Wenn weiterhin Probleme auftreten, speichern Sie diese Informationen und senden Sie sie an unser Team. Fahren Sie mit den nächsten Schritten fort.

Entspricht die Anzahl der Conversions in Ihrem Zusammenfassungsbericht den Erwartungen?

Es kann vorkommen, dass der getJob-Aufruf erfolgreich ist, aber ein Problem mit dem vom Aggregationsdienst zurückgegebenen Zusammenfassungsbericht vorliegt. Der Zusammenfassungsbericht ist im AVRO-Format und muss in das JSON-Format konvertiert werden. Nach der Umwandlung in das JSON-Format sieht sie in etwa so aus:

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

Wenn bei der AVRO-Konvertierung Probleme auftreten, verwenden Sie die AVRO-Tools und führen Sie den folgenden Befehl für den AVRO-Bericht aus. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Stable Versionen können hier heruntergeladen werden. Wenn Sie weitere Unterstützung benötigen, fahren Sie mit den nächsten Schritten fort.

Nächste Schritte

Sehen Sie im Privacy Sandbox-Status-Dashboard oder im öffentlichen GitHub-Repository nach, ob andere Nutzer dasselbe Problem haben.

Wenn Sie das Problem mit dem Aggregationsdienst nicht lösen können, teilen Sie uns dies mit, indem Sie ein GitHub-Problem melden oder das Formular für den technischen Support einreichen.