Diagnozowanie zadań agregacji

W tabelach poniżej znajdziesz szczegółowe informacje o różnych problemach i kodach stanu błędu wraz z potencjalnymi przyczynami i działaniami, które możesz podjąć, aby ograniczyć problemy z wdrożeniem. Jeśli chcesz zapoznać się z pełną specyfikacją błędów i sposobami ich rozwiązywania w przypadku usługi agregacji, zapoznaj się z naszymi aktualnymi publicznymi wskazówkami.

Tematy przewodnika:

Błędy uprawnień i autoryzacji

Problem Problemy z uprawnieniami podczas wykonywania poleceń terraform plan lub terraform apply w projekcie chmury publicznej.
Przykładowy błąd Error: UnauthorizedOperation: You are not authorized to perform this operation.
Rozdzielczość

Sprawdź, czy masz prawidłowo uwierzytelniony interfejs wiersza poleceń chmury publicznej, z której korzystasz.

Amazon Web Services

AWS wymaga uprawnień użytkownika, aby móc tworzyć instancje i inne usługi potrzebne do działania usługi agregacji. Po zastosowaniu tej zmiany powinna być możliwa realizacja poleceń terraform plan i apply bez żadnych problemów.

Google Cloud Platform

Pamiętaj, że w Google Cloud musisz podszyć się pod konto usługi, aby wdrożyć drugą część Terraform. Jeśli pominiesz ten krok, polecenie terraform apply może się nie powieść, ponieważ konto usługi wdrożenia ma wszystkie uprawnienia niezbędne do tworzenia zasobów. Zapoznaj się z krokiem 4 w sekcji „Set up your deployment environment” w dokumentacji na GitHubie.

Błędy budżetu na potrzeby prywatności

Błąd PRIVACY_BUDGET_ERROR
Przyczyna Oznacza to, że usługa nie mogła przetworzyć raportów z powodu błędu usługi budżetu prywatności.
Czek Po ponowieniu próby wykonania zadania, aby sprawdzić, czy błąd był przejściowy, skontaktuj się z nami za pomocą formularza pomocy technicznej.
Błąd PRIVACY_BUDGET_AUTHORIZATION_ERROR
Przyczyna Możesz używać innego źródła raportowania niż to, które zostało podane podczas procesu wprowadzania.
Czek

Sprawdź, czy witryna, którą przesyłasz w attribution_report_tocreateJob żądania, jest tą samą witryną, która została przesłana podczas wprowadzania.

Witryna powinna być zgodna z zarejestrowaną witryną lub być jej subdomeną. Pamiętaj, że proces wprowadzania do usługi agregacji odbywa się na poziomie domeny najwyższego poziomu, a wszystkie subdomeny mogą korzystać z usługi agregacji po wprowadzeniu do niej domeny najwyższego poziomu.

Błąd PRIVACY_BUDGET_AUTHENTICATION_ERROR
Przyczyna Być może używasz nieaktualnego lub nieprawidłowego numeru ARN.
Czek Google Cloud Platform

Sprawdź, czy konto usługi używane we wdrożeniu usługi agregacji jest zgodne z kontem usługi podanym podczas rejestracji. Musi być dokładnie taki sam, a nie tylko należeć do tego samego projektu.

Amazon Web Services

Oczekujemy, że używasz tych samych koordynatorów, którzy zostali Ci udostępnieni w e-mailu. Jeśli nadal masz problemy, zbierz plik auto.tfvars i informacje o źródle raportowania, a następnie skontaktuj się z nami za pomocą formularza pomocy technicznej.

Błąd PRIVACY_BUDGET_EXHAUSTED
Przyczyna Błąd:
            "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": 
            }
          

Problem z wyczerpaniem budżetu prywatności występuje, gdy próbujesz wysłać pakiet raportów, którego udostępniony identyfikator został już uwzględniony w poprzednim pakiecie. Ten błąd występuje z powodu reguły „Bez duplikatów”, zgodnie z którą raporty podlegające agregacji mogą pojawiać się tylko w jednej partii i mogą być uwzględniane tylko w jednym raporcie zbiorczym.

Każdy raport będzie miał przypisany „udostępniony identyfikator”, który będzie się składać z pól shared_info API, reporting_origin, destination_site, source_registration_time (skróconych do dnia), scheduled_report_time (skróconych do godziny) i version. Oznacza to, że wiele raportów może należeć do tego samego „udostępnionego identyfikatora”, jeśli mają te same atrybuty pola shared_info.

Czek

Aby sprawdzić i rozwiązać problem, skorzystaj z pomocy dotyczącej wyczerpania budżetu na ochronę prywatności, która jest dostępna w odpowiedzi na zadanie. Dzięki temu uzyskasz nowy pomocniczy plik JSON, który pozwoli Ci sprawdzić, które raporty przyczyniły się do wystąpienia błędu.

Pamiętaj, że jeśli prawidłowo stosujesz grupowanie, możesz kwalifikować się do odzyskania budżetu (wyjaśnienie). Zaproponuj, aby zapoznali się z wyjaśnieniem i wypełnili formularz, ale zaznacz, że ich prośba musi zostać zatwierdzona, aby można było odzyskać budżet i ponownie uruchomić zadanie.

Błąd DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Przyczyna Oznacza to, że zadanie jest uruchomione w trybie debugowania. Element job_parameters w żądaniu createJob zawiera debug_run: true. Gdy flaga debug_run jest włączona, możesz uruchamiać raport wiele razy w celu debugowania. Ten komunikat o błędzie informuje, że zadanie zakończyłoby się niepowodzeniem z powodu wyczerpania budżetu prywatności raportu, gdyby nie zostało uruchomione w trybie debugowania. Ten błąd będzie występować tylko w wersjach 2.10.0 lub starszych.
Czek Treść żądania createJob będzie zawierać debug_runjob_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"
              }
            }
          

Błędy środowiska wykonawczego zadań

Błąd INVALID_JOB
Punkt końcowy createJob
Przyczyna Może się tak zdarzyć, gdy podany parametr debugowania epsilon prywatności nie mieści się w zakresie (0,64] lub gdy parametry zadania nie przejdą weryfikacji.
Czek Jakiej wartości epsilona użyto? Jakie parametry zadania zostały użyte w żądaniu createJob i czy są one zgodne z Twoim środowiskiem? Czy są one prawidłowo sformatowane? Wprowadź niezbędne poprawki i ponownie uruchom zadanie.
Błąd INTERNAL_ERROR
Punkt końcowy getJob
Przyczyna Może to być problem z formatowaniem, który powoduje niepowodzenie przetwarzania domeny wyjściowej lub raportów. Może to być też problem z wdrożeniem usługi agregacji.
Czek Sprawdź, czy lokalizacja domeny wyjściowej jest prawidłową ścieżką. Ponów zadanie. Jeśli błąd będzie się powtarzał, poproś o plik auto.tfvars i dane wyjściowe planu Terraform, aby rozwiązać problemy z wdrożeniem usługi agregacji.
Błąd RESULT_WRITE_ERROR
Punkt końcowy getJob
Przyczyna Może się tak zdarzyć, gdy zapis do katalogu wyjściowego nie powiedzie się tymczasowo lub z powodu braku uprawnień do zapisu w katalogu. Pamiętaj, że błędy zapisu wykorzystują budżet prywatności i nie można ponownie uruchomić zadania. Może to przyczynić się do wystąpienia innego błędu, czyli PRIVACY_BUDGET_EXHAUSTED.
Czek Czy ten błąd występuje w przypadku każdego zadania, czy tylko czasami? Jeśli występuje to w przypadku każdego zadania, sprawdź, czy masz włączone uprawnienia do zapisu w katalogu wyjściowym. Jeśli błąd występuje sporadycznie, uprawnienia powinny być prawidłowe. Wiadomo, że tworzenie raportów podsumowujących może się nie udać, ale budżet ochrony prywatności zostanie wykorzystany. W takim przypadku możesz poprosić o odzyskanie budżetu (wyjaśnienie).
Problem Podczas uruchamiania zadania i pobierania tokena usługi atestowania występują błędy 403, a zadanie zawsze zwraca stan „RECEIVED”.
Błąd
            {
                "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": 
                }
            }
          
Rozdzielczość

Zadania, które utknęły w stanie RECEIVED, i błąd 403 występują zwykle wtedy, gdy konto usługi nie zostało jeszcze zarejestrowane. Sprawdź, czy konto usługi, którego używasz, jest zgodne z kontem podanym w prośbie o wdrożenie. Jeśli nie masz jeszcze prośby o wprowadzenie, wypełnij formularz wprowadzenia i formularze rejestracji.

Po sprawdzeniu stanu rejestracji i wdrażania sprawdź, co się stało z uruchomionym zadaniem.

Amazon Web Services

W takiej sytuacji enklawa AWS może nie działać lub ulec awarii, przez co zadania nie są pobierane.

  1. Połącz się z menedżerem sesji instancji EC2.
  2. Postępuj zgodnie z instrukcjami w dokumentacji AWS, która zawiera te czynności umożliwiające połączenie z Session Manager:
  3. Otwórz AWS Console Manager > EC2 > Instances (Instancje).
  4. Wybierz identyfikator instancji uruchomionej usługi agregacji.
  5. Kliknij kartę „Menedżer sesji” > przycisk „Połącz”. Spowoduje to połączenie z instancją.
  6. Gdy instancja Enclave będzie działać, wykonaj w terminalu to polecenie:
    sudo nitro-cli describe-enclaves
    Jeśli to polecenie nie wyświetla logów zgodnie z oczekiwaniami, przed ponowną próbą wykonaj to polecenie:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Aby sprawdzić, czy enklawa AWS uległa awarii, uruchom to polecenie:sudo journalctl -u aggregate-worker.service
  8. Powinny pojawić się logi wyjściowe, np.:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Jeśli wystąpią jakieś błędy, będą one widoczne w tym miejscu.
Google Cloud Platform

Zarządzana grupa instancji może być w złym stanie. Jeśli konfigurujesz usługę po raz pierwszy lub po usunięciu i ponownym utworzeniu adtech_setup Terraform, sprawdź, czy Twoje konto usługi zostało zarejestrowane. Jeśli konto usługi nie zostanie zarejestrowane, grupy instancji nie będą w dobrym stanie.

  1. W konsoli Cloud otwórz Compute Engine > Grupy instancji.
  2. Sprawdź kolumny stanu (zielone znaczniki wyboru oznaczają, że wszystko jest w porządku).
  3. Kliknij jedną z grup instancji i otwórz kartę Błędy, aby dowiedzieć się więcej o problemie. Kliknij nazwę instancji, aby uzyskać dostęp do informacji na poziomie maszyny wirtualnej.
  4. Możesz też użyć terminala, aby wchodzić w interakcje z grupą instancji i uzyskiwać te same informacje. Wypróbuj polecenie list-errors:
    gcloud compute instance-groups managed list-errors --region=
    Poniżej znajdziesz przykładowe dane wyjściowe.
                      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
                    
Jeśli problemy nadal występują, zapisz te informacje i przekaż je naszemu zespołowi. Wykonaj kolejne czynności.

Czy raport podsumowujący generuje konwersje zgodnie z oczekiwaniami?

Może się zdarzyć, że wywołanie getJob zakończy się powodzeniem, ale raport podsumowujący zwrócony przez usługę do agregacji będzie zawierać błędy. Raport podsumowujący jest sformatowany w formacie AVRO i musi zostać przekonwertowany na format JSON. Po przekształceniu na format JSON będzie wyglądać mniej więcej tak.

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

Jeśli konwersja AVRO sprawia problemy, spróbuj użyć narzędzi AVRO i wykonaj to polecenie w raporcie AVRO. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Stabilne wersje możesz pobrać tutaj. Jeśli potrzebujesz dalszej pomocy, przejdź do kolejnych kroków.

Następne kroki

Sprawdź, czy ktoś inny napotkał ten sam problem na panelu stanu Privacy Sandbox lub w publicznym repozytorium GitHub.

Jeśli nie widzisz rozwiązania problemu z usługą agregacji, poinformuj nas o tym, zgłaszając problem na GitHubie lub przesyłając formularz pomocy technicznej.