Aggregationsjobs diagnostizieren

In den folgenden Tabellen werden eine Vielzahl von Problemen und Fehlerstatuscodes mit potenziellen Ursachen und Maßnahmen aufgeführt, 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 beim Ausführen von terraform plan oder terraform apply für Ihr öffentliches Cloud-Projekt.
Beispiel für Fehler Error: UnauthorizedOperation: You are not authorized to perform this operation.
Auflösung

Prüfen Sie, ob Sie in der Befehlszeilenschnittstelle (Command-Line Interface, CLI) der von Ihnen verwendeten öffentlichen Cloud richtig authentifiziert sind.

Amazon Web Services

AWS erfordert Nutzerberechtigungen, um Instanzen und andere für den Aggregationsdienst erforderliche Dienste erstellen zu können. Danach sollten Sie „terraform plan“ und „apply“ problemlos 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. Ihr „terraform apply“-Befehl schlägt möglicherweise fehl, wenn Sie diesen Schritt übersprungen haben, da das Dienstkonto für die Bereitstellung alle erforderlichen Berechtigungen zum Erstellen von Ressourcen hat. Weitere Informationen finden Sie in der GitHub-Dokumentation unter Schritt 4: Bereitstellungsumgebung einrichten.

Fehler im Datenschutzbudget

Fehler PRIVACY_BUDGET_ERROR
Ursache Das würde darauf hindeuten, dass der Dienst die Berichte aufgrund eines Fehlers beim Datenschutzbudgetdienst nicht verarbeiten konnte.
Scheck Nachdem Sie den Job noch einmal ausgeführt haben, um zu prüfen, ob der Fehler nur vorübergehend war, wenden Sie sich über das Formular für den technischen Support an uns.
Fehler PRIVACY_BUDGET_AUTHORIZATION_ERROR
Ursache Möglicherweise verwenden Sie einen anderen Berichterstellungsursprung als den, den sie beim Onboarding angegeben haben.
Scheck

Prüfen Sie, ob die Website, die Sie im Feld attribution_report_to der createJob-Anfrage einreichen, mit der Website übereinstimmt, die beim Onboarding eingereicht wurde.

Die Website sollte mit der Website übereinstimmen, die für das Onboarding verwendet wurde, oder eine Subdomain davon sein. Das Onboarding für den Aggregation Service erfolgt auf der Ebene der Top-Level-Domain. Alle Subdomains können den Aggregation Service verwenden, sobald die Top-Level-Domain eingebunden ist.

Fehler PRIVACY_BUDGET_AUTHENTICATION_ERROR
Ursache Möglicherweise verwenden Sie einen veralteten oder falschen ARN.
Scheck Google Cloud Platform

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

Amazon Web Services

Sie sollten dieselben Koordinatoren verwenden, die Ihnen per E-Mail zur Verfügung gestellt wurden. Wenn weiterhin Probleme auftreten, sammeln Sie die Datei „auto.tfvars“ und Informationen zum Ursprung des Berichts und wenden Sie sich über das Formular für technischen Support an uns.

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 mit dem Aufbrauchen des Privacy-Budgets tritt auf, wenn Sie versuchen, einen Bericht in einem Batch zu verarbeiten, dessen freigegebene ID bereits in einem zuvor erfolgreichen Batch enthalten war. Dieser Fehler tritt aufgrund der Regel „Keine Duplikate“ auf. Aggregierbare Berichte dürfen nur in einem einzelnen Batch enthalten sein und können nur zu einem zusammenfassenden Bericht beitragen.

Jedem Bericht wird eine „gemeinsame ID“ zugewiesen, die aus den Feldern shared_info API, reporting_origin, destination_site, source_registration_time (nach Tag gekürzt), scheduled_report_time (nach Stunde gekürzt) und version besteht. Das bedeutet, dass mehrere Berichte zur selben „gemeinsamen ID“ gehören können, wenn sie dieselben Attribute des Felds shared_info haben.

Scheck

Wir empfehlen Ihnen, die Unterstützung bei ausgeschöpftem Datenschutzbudget zu nutzen, die in der Jobantwort bereitgestellt wird, um den Fehler zu untersuchen und zu beheben. Dadurch wird eine neue JSON-Hilfsdatei bereitgestellt, die Aufschluss darüber gibt, welche Berichte zum Fehler beigetragen haben.

Wenn Sie die Batch-Verarbeitung richtig anwenden, haben Sie möglicherweise Anspruch auf eine Budgetwiederherstellung (weitere Informationen). Schlage vor, dass sie sich die Erläuterung durchlesen und das Formular ausfüllen. Weise sie aber darauf hin, dass ihr 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. Das job_parameters in der createJob-Anfrage enthält das 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 erschöpft ist, wenn er nicht im Debug-Modus ausgeführt worden wäre. Dieser Fehler ist nur in Versionen bis einschließlich v2.10.0 gültig.
Scheck Der Anfragetext für 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"
              }
            }
          

Job-Laufzeitfehler

Fehler INVALID_JOB
Endpunkt createJob
Ursache Das kann passieren, wenn das bereitgestellte Debug-Datenschutz-Epsilon nicht innerhalb der Grenzen (0,64] liegt oder wenn die Jobparameter die Validierung nicht bestehen.
Scheck Welcher Epsilon-Wert wurde verwendet? Welche Jobparameter wurden in der createJob-Anfrage verwendet und stimmen diese 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 Kann ein Formatierungsproblem sein, das dazu führt, dass die Verarbeitung für die Ausgabedomäne oder Berichte fehlschlägt. Möglicherweise liegt auch ein Problem mit der Bereitstellung des Aggregationsdienstes vor.
Scheck Prüfen Sie, ob der Ausgabedomänenpfad ein gültiger Pfad ist. Wiederholen Sie den Job. Wenn der Fehler weiterhin besteht, fordern Sie die auto.tfvars-Datei und die Terraform-Planausgabe an, um die Bereitstellung des Aggregationsdienstes 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 verbrauchen Datenschutzbudget und der Job kann nicht wiederholt werden. Dies kann zu einem anderen Fehlerergebnis führen, nämlich dem PRIVACY_BUDGET_EXHAUSTED-Fehler.
Scheck Tritt dieser Fehler bei jedem Job oder nur gelegentlich auf? Wenn dies 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 Attestierungsdienst-Tokens treten 403-Fehler auf und der Job gibt immer den Status „RECEIVED“ zurück.
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, wurde das Dienstkonto in der Regel noch nicht eingerichtet. Prüfen Sie, ob das von Ihnen verwendete Dienstkonto mit dem übereinstimmt, das Sie in Ihrem Onboarding-Antrag angegeben haben. Wenn Sie noch keinen Antrag für die Einrichtung gestellt haben, füllen Sie bitte das Einrichtungsformular und die Anmeldeformulare aus.

Nachdem Sie den Status Ihrer Registrierung und Ihres Onboardings geprüft haben, sehen Sie nach, was mit Ihrem laufenden Job passiert ist.

Amazon Web Services

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

  1. Stellen Sie eine Verbindung zur EC2-Instanz über Session Manager her.
  2. Folgen Sie dieser AWS-Dokumentation, die die folgenden Schritte zum Herstellen einer Verbindung zu Session Manager enthält.
  3. Rufen Sie die AWS Console Manager > EC2 > Instances auf.
  4. Wählen Sie die Instanz-ID des ausgeführten Aggregationsdienstes aus.
  5. Wählen Sie den Tab „Session Manager“ (Sitzungsmanager) > Schaltfläche „Connect“ (Verbinden) aus. Dadurch wird eine Verbindung zur Instanz hergestellt.
  6. Sobald die Enclave-Instanz ausgeführt wird, führen Sie im Terminal Folgendes aus:
    sudo nitro-cli describe-enclaves
    Wenn mit diesem Befehl nicht wie erwartet Protokolle 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. Sie sollten sehen, dass Ausgabelogs wie die folgenden angezeigt werden:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Hier sollten Fehler angezeigt werden, falls es welche gibt.
Google Cloud Platform

Die verwaltete Instanzgruppe (Managed Instance Group, MIG) ist möglicherweise nicht fehlerfrei. Wenn Sie die Einrichtung zum ersten Mal vornehmen oder die adtech_setup-Terraform zerstört und neu erstellt haben, prüfen Sie, ob Ihr Dienstkonto eingerichtet ist. Wenn das Dienstkonto nicht eingerichtet ist, sind die MIGs nicht fehlerfrei.

  1. Rufen Sie in der Cloud Console „Compute Engine“ > „Instanzgruppen“ auf.
  2. Statusspalten prüfen (grüne Häkchen bedeuten, dass alles in Ordnung ist)
  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 Informationen auf VM-Ebene aufzurufen.
  4. Sie können auch über das Terminal mit der Instanzgruppe interagieren und dieselben Informationen abrufen. Versuchen Sie es mit dem Befehl „list-errors“:
    gcloud compute instance-groups managed list-errors --region=
    Hier sehen Sie ein Beispiel für die Ausgabe.
                      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 stellen Sie sie unserem Team zur Verfügung. Fahren Sie mit den nächsten Schritten fort.

Werden in Ihrem Zusammenfassungsbericht Conversions wie erwartet erfasst?

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

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

Wenn es Probleme bei der AVRO-Konvertierung gibt, versuchen Sie, die AVRO-Tools zu verwenden und den folgenden Befehl für den AVRO-Bericht auszuführen. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Stabile 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 Status-Dashboard für die Privacy Sandbox oder im öffentlichen GitHub-Repository nach, ob das Problem bereits bei anderen aufgetreten ist.

Wenn Sie keine Lösung für Ihr Problem mit dem Aggregationsdienst finden, benachrichtigen Sie uns, indem Sie ein GitHub-Problem melden oder das Formular für technischen Support einreichen.