Диагностика ваших заданий агрегирования

В следующих таблицах подробно описывается множество проблем и кодов состояния ошибок с потенциальными причинами и действиями, которые вы можете предпринять для смягчения вашего развертывания. Если вы хотите ознакомиться с полными спецификациями ошибок и смягчением для Aggregation Service, ознакомьтесь с нашим текущим публичным руководством.

Темы руководства:

Ошибки разрешений и авторизации

Проблема Проблемы с разрешениями при выполнении terraform plan или terraform apply к вашему проекту публичного облака.
Пример ошибки Error: UnauthorizedOperation: You are not authorized to perform this operation.
Разрешение

Проверьте, правильно ли вы аутентифицировались в cli (интерфейсе командной строки) публичного облака, которое вы используете.

Веб-сервисы Amazon

AWS требует разрешения пользователя для создания экземпляров и других служб, необходимых для Aggregation Service. После того, как вы примените это, вы сможете выполнить план terraform и применить без каких-либо проблем.

Облачная платформа Google

Обратите внимание, что в Google Cloud вам придется выдавать себя за учетную запись службы для развертывания второй половины Terraform. Ваша команда terraform apply может не сработать, если вы пропустили этот шаг, поскольку учетная запись службы развертывания имеет все необходимые разрешения для создания ресурсов. См. шаг 4 в разделе «Настройте среду развертывания» в документации GitHub.

Ошибки бюджета конфиденциальности

Ошибка PRIVACY_BUDGET_ERROR
Причина Это будет означать, что служба не смогла обработать отчеты из-за ошибки в службе бюджета конфиденциальности.
Проверять После того, как вы повторите задание, чтобы проверить, была ли ошибка случайной, свяжитесь с нами через форму технической поддержки .
Ошибка PRIVACY_BUDGET_AUTHORIZATION_ERROR
Причина Возможно, вы используете другой источник отчетов, нежели тот, который был указан при регистрации.
Проверять

Убедитесь, что сайт, указанный вами в поле attribution_report_to запроса createJob — это тот же сайт, который был указан во время регистрации.

Сайт должен соответствовать или быть поддоменом того, что было подключено. Обратите внимание, что подключение Aggregation Service обрабатывается на домене верхнего уровня, и все поддомены могут использовать Aggregation Service после подключения домена верхнего уровня.

Ошибка PRIVACY_BUDGET_AUTHENTICATION_ERROR
Причина Возможно, вы используете устаревший или неправильный ARN.
Проверять Облачная платформа Google

Проверьте, что учетная запись службы, используемая в развертывании Aggregation Service, совпадает с учетной записью службы, предоставленной во время подключения. Она должна полностью совпадать, а не просто принадлежать к тому же проекту.

Веб-сервисы Amazon

Ожидается, что вы используете тех же координаторов, которые были предоставлены вам по электронной почте. Если у вас все еще есть проблемы, соберите файл auto.tfvars и информацию об источнике отчетности и свяжитесь с нами по форме технической поддержки .

Ошибка PRIVACY_BUDGET_EXHAUSTED
Причина Ошибка:
            "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": 
            }
          

Проблема исчерпания бюджета конфиденциальности возникает, когда вы пытаетесь объединить отчет, общий идентификатор которого уже был включен в ранее успешный пакет. Эта ошибка возникает из-за правила «Нет дубликатов» , согласно которому агрегируемые отчеты могут появляться только в одном пакете и могут вносить вклад только в один сводный отчет.

Каждому отчету будет назначен "общий идентификатор", который будет состоять из полей shared_info API, reporting_origin , destination_site , source_registration_time (сокращено по дню), scheduled_report_time (сокращено по часу) и version . Это будет означать, что несколько отчетов могут принадлежать одному и тому же "общему идентификатору", если они совместно используют одни и те же атрибуты поля shared_info .

Проверять

Мы рекомендуем вам попробовать поддержку Privacy Budget Exhausted, предоставляемую в ответе на задание, чтобы проверить и устранить вашу ошибку. Это предоставляет новый вспомогательный файл JSON, который обеспечит видимость того, какие отчеты способствовали ошибке.

Обратите внимание, что если вы правильно распределяете партии, вы можете иметь право на восстановление бюджета ( объяснитель ). Предложите им прочитать объяснение и заполнить форму, но учтите, что их запрос должен быть одобрен для успешного восстановления бюджета и повторного запуска работы.

Ошибка DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Причина Это означает, что вы запускаете задание в режиме отладки. job_parameters в запросе createJob содержит debug_run: true . Когда флаг debug_run включен, вы можете запускать отчет несколько раз в целях отладки. Это сообщение об ошибке информирует вас о том, что задание не было бы выполнено из-за исчерпания бюджета конфиденциальности отчета, если бы оно не было запущено в режиме отладки. Эта ошибка будет действительна только в выпусках v2.10.0 или более ранних.
Проверять Тело запроса createJob будет содержать debug_run в 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"
              }
            }
          

Ошибки выполнения задания

Ошибка INVALID_JOB
Конечная точка createJob
Причина Это может произойти, если указанный эпсилон конфиденциальности отладки выходит за пределы (0,64) или если параметры задания не проходят проверку.
Проверять Какое значение эпсилон использовалось? Какие параметры задания использовались в запросе createJob и соответствуют ли они вашей среде? Правильно ли они отформатированы? Внесите необходимые исправления и повторите задание.
Ошибка INTERNAL_ERROR
Конечная точка getJob
Причина Может быть проблема форматирования, которая приводит к сбою обработки выходного домена или отчетов. Также может быть проблема с развертыванием вашего Aggregation Service.
Проверять Проверьте, что выходной домен — это допустимый путь. Повторите задание. Если ошибка сохраняется, запросите файл auto.tfvars и выходной план Terraform для устранения неполадок в развертывании Aggregation Service.
Ошибка RESULT_WRITE_ERROR
Конечная точка getJob
Причина Это может произойти, когда запись в выходной каталог не удается, либо временно, либо из-за отсутствия разрешения на запись в каталог. Обратите внимание, что ошибки записи потребляют бюджет конфиденциальности, и задание не может быть повторено. Это может способствовать возникновению другого результата ошибки PRIVACY_BUDGET_EXHAUSTED .
Проверять Эта ошибка возникает в каждом задании или только время от времени? Если это происходит в каждом задании, проверьте, что вы включили разрешения на запись в выходной каталог. Если это периодический сбой, разрешения должны быть правильными. Это известная проблема, когда запись сводных отчетов может не удаться, но бюджет конфиденциальности все равно будет израсходован. В этом случае вы можете запросить восстановление бюджета ( Explainer ).
Проблема Возникают ошибки 403 при выполнении задания и получении токена службы подтверждения, и задание всегда возвращается со статусом «ПОЛУЧЕНО».
Ошибка
            {
                "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": 
                }
            }
          
Разрешение

Зависание заданий в статусе RECEIVED и ошибка 403 обычно возникают, когда учетная запись службы еще не подключена. Убедитесь, что используемая учетная запись службы соответствует той, которую вы указали в запросе на подключение. Если вы не выполнили запрос на подключение, заполните форму подключения и формы регистрации.

После того, как вы подтвердите свою регистрацию и статус приема на работу , проверьте, что произошло с вашей работой.

Веб-сервисы Amazon

Если это происходит, возможно, анклав AWS не запущен или произошел сбой, и поэтому задания не выполняются.

  1. Подключитесь к диспетчеру сеансов экземпляра EC2.
  2. Следуйте этой документации AWS , которая включает следующие шаги по подключению к Session Manager.
  3. Перейдите в AWS Console Manager > EC2 > Экземпляры.
  4. Выберите идентификатор экземпляра запущенной службы агрегации.
  5. Выберите вкладку «Диспетчер сеансов» > кнопку «Подключиться». Это позволит вам подключиться к вашему экземпляру.
  6. После запуска экземпляра Enclave выполните в терминале:
    sudo nitro-cli describe-enclaves
    Если эта команда не отображает журналы должным образом, выполните следующее, прежде чем повторить попытку:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Чтобы проверить, произошел ли сбой в работе анклава AWS, выполните команду: sudo journalctl -u aggregate-worker.service
  8. Вы должны увидеть выходные журналы, такие как:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Здесь должны быть видны ошибки, если есть какие-либо сбои и т.п.
Облачная платформа Google

Группа управляемых экземпляров (MIG) может быть нездоровой. Если это первая настройка или вы уничтожили и заново создали adtech_setup Terraform, подтвердите, что ваша учетная запись службы подключена. Если учетная запись службы не подключена, MIG не будут работоспособными.

  1. Cloud Console, перейдите в Compute Engine > Группы экземпляров.
  2. Проверьте столбцы статуса (зеленые галочки означают, что вы здоровы)
  3. Нажмите на одну из групп экземпляров и посмотрите на вкладку Ошибки, чтобы узнать больше о проблеме. Нажмите на имя экземпляра, чтобы получить доступ к информации на уровне виртуальной машины.
  4. Вы также можете использовать свой Терминал для взаимодействия с группой Instance и получить ту же информацию. Попробуйте команду list-errors:
    gcloud compute instance-groups managed list-errors --region=
    Ниже приведен пример вывода.
                      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
                    
Если вы продолжаете видеть проблемы, сохраните это и отправьте нашей команде. Перейдите к следующим шагам.

Соответствует ли ваш сводный отчет ожидаемым показателям?

Может возникнуть ситуация, когда вызов getJob успешен, но есть проблема с итоговым отчетом, возвращаемым Aggregation Service. Итоговый отчет отформатирован в формате AVRO и должен быть преобразован в формат JSON . После преобразования в формат json он будет выглядеть примерно так.

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

Если при конвертации AVRO возникли какие-либо проблемы, попробуйте использовать инструменты AVRO и следующую команду в отчете AVRO. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Стабильные версии можно загрузить здесь. Если вам требуется дополнительная помощь, перейдите к нашим следующим шагам.

Следующие шаги

Проверьте, сталкивался ли кто-нибудь еще с такой же проблемой на панели мониторинга состояния Privacy Sandbox или в общедоступном репозитории GitHub .

Если вы не видите решения вашей проблемы со службой агрегации, сообщите нам об этом, опубликовав сообщение о проблеме на GitHub или отправив форму технической поддержки .