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

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

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

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

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

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

Amazon Web Services

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

Платформа Google Cloud

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

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

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

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

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

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

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

Amazon Web Services

Предполагается, что вы используете те же координаторы, которые были предоставлены вам по электронной почте. Если проблемы сохраняются, соберите файл 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": 
            }
          

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

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

Проверять

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

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

Ошибка DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Причина Это означает, что вы запускаете задание в режиме отладки. Параметр job_parameters в запросе createJob содержит debug_run: true . Когда флаг debug_run включен, вы можете запускать отчет несколько раз в целях отладки. Это сообщение об ошибке информирует вас о том, что задание завершилось бы с ошибкой из-за исчерпания бюджета конфиденциальности отчета, если бы оно не было запущено в режиме отладки. Эта ошибка будет актуальна только в версиях v2.10.0 и более ранних.
Проверять В теле запроса createJob в поле job_parameters будет содержаться debug_run .
            {
              "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
Причина Это может произойти, если предоставленное значение параметра конфиденциальности отладки (epsilon) выходит за пределы допустимых значений (0,64) или если параметры задания не проходят проверку.
Проверять Какое значение эпсилон было использовано? Какие параметры задания были использованы в запросе createJob , и соответствуют ли они вашей среде? Правильно ли они отформатированы? Внесите необходимые исправления и повторите попытку выполнения задания.
Ошибка INTERNAL_ERROR
Конечная точка getJob
Причина Причиной сбоя обработки выходного домена или отчетов может быть проблема с форматированием. Также это может быть проблема с развертыванием вашей службы агрегации.
Проверять Убедитесь, что путь к выходному домену является допустимым. Повторите задание. Если ошибка сохраняется, запросите файл auto.tfvars и выходные данные плана Terraform для устранения неполадок при развертывании службы агрегации.
Ошибка RESULT_WRITE_ERROR
Конечная точка getJob
Причина Это может произойти, когда запись в выходной каталог завершается неудачей, либо временно, либо из-за отсутствия прав на запись в каталог. Обратите внимание, что ошибки записи расходуют бюджет конфиденциальности, и повторная попытка выполнения задания невозможна. Это может привести к другой ошибке, например, ошибке PRIVACY_BUDGET_EXHAUSTED .
Проверять Эта ошибка возникает во всех заданиях или только периодически? Если она возникает во всех заданиях, убедитесь, что у вас включены права на запись в выходной каталог. Если это периодический сбой, права доступа должны быть правильными. Известна проблема, когда запись сводных отчетов может завершиться неудачей, но бюджет конфиденциальности все равно будет израсходован. В этом случае вы можете запросить восстановление бюджета ( пояснение ).
Проблема При выполнении задания и получении токена службы аттестации возникают ошибки 403 , и задание всегда возвращает статус "RECEIVED".
Ошибка
            {
                "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 Web Services

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

  1. Подключитесь к менеджеру сессий экземпляра EC2.
  2. Следуйте инструкциям в документации AWS , которая описывает шаги по подключению к Session Manager.
  3. Перейдите в AWS Console Manager > EC2 > Instances.
  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 Cloud

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

  1. В консоли Cloud перейдите в раздел Compute Engine > Группы экземпляров.
  2. Проверьте столбцы состояния (зеленые галочки означают исправность).
  3. Щелкните одну из групп экземпляров и перейдите на вкладку «Ошибки», чтобы узнать больше о проблеме. Щелкните имя экземпляра, чтобы получить доступ к информации на уровне виртуальной машины.
  4. Вы также можете использовать терминал для взаимодействия с группой экземпляров и получения той же информации. Попробуйте команду 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 проходит успешно, но возникает проблема с итоговым отчетом, возвращаемым службой агрегации. Итоговый отчет имеет формат 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 Стабильные версии можно скачать здесь. Если вам потребуется дополнительная помощь, перейдите к следующим шагам.

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

Проверьте, сталкивался ли кто-нибудь еще с подобной проблемой, на панели мониторинга состояния песочницы конфиденциальности или в общедоступном репозитории GitHub .

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