Chẩn đoán Công việc tổng hợp

Các bảng sau đây trình bày chi tiết vô số vấn đề và mã trạng thái lỗi cùng với các lý do có thể gây ra lỗi và những hành động mà bạn có thể thực hiện để giảm thiểu việc triển khai. Nếu bạn muốn xem toàn bộ quy cách lỗi và cách giảm thiểu cho Dịch vụ tổng hợp, hãy xem hướng dẫn công khai hiện tại của chúng tôi.

Chủ đề hướng dẫn:

Lỗi về quyền và uỷ quyền

Vấn đề Vấn đề về quyền khi bạn đang thực thi terraform plan hoặc terraform apply cho dự án trên đám mây công khai.
Ví dụ về lỗi Error: UnauthorizedOperation: You are not authorized to perform this operation.
Độ phân giải

Kiểm tra để đảm bảo rằng bạn đã xác thực đúng vào cli (giao diện dòng lệnh) của đám mây công cộng mà bạn đang tận dụng.

Amazon Web Services

AWS yêu cầu người dùng có quyền để có thể tạo các phiên bản và dịch vụ khác cần thiết cho Dịch vụ tổng hợp. Sau khi áp dụng, bạn sẽ có thể thực hiện kế hoạch và áp dụng terraform mà không gặp vấn đề gì.

Google Cloud Platform

Trong Google Cloud, lưu ý rằng bạn sẽ phải mạo danh một tài khoản dịch vụ để triển khai nửa sau của Terraform. Lệnh terraform apply của bạn có thể không thành công nếu bạn bỏ qua bước này vì tài khoản dịch vụ triển khai có tất cả các quyền cần thiết để tạo tài nguyên. Hãy xem bước 4 trong phần "Thiết lập môi trường triển khai" trong tài liệu trên GitHub.

Lỗi về hạn mức quyền riêng tư

Lỗi PRIVACY_BUDGET_ERROR
Nguyên nhân Điều này cho thấy dịch vụ không thể xử lý các báo cáo do lỗi với dịch vụ ngân sách quyền riêng tư.
Séc Sau khi bạn thử lại lệnh để xem lỗi có xảy ra không liên tục hay không, hãy liên hệ với chúng tôi thông qua biểu mẫu hỗ trợ kỹ thuật.
Lỗi PRIVACY_BUDGET_AUTHORIZATION_ERROR
Nguyên nhân Bạn có thể đang sử dụng một nguồn báo cáo khác với nguồn mà họ cung cấp trong quá trình tham gia.
Séc

Xác minh rằng trang web mà bạn đang gửi trong trường attribution_report_to của yêu cầu createJob là trang web mà bạn đã gửi trong quá trình tham gia.

Trang web phải khớp hoặc là một miền con của trang web đã được tham gia. Xin lưu ý rằng quy trình tham gia Dịch vụ tổng hợp được xử lý ở miền cấp cao nhất và tất cả miền con đều đủ điều kiện sử dụng Dịch vụ tổng hợp sau khi miền cấp cao nhất tham gia.

Lỗi PRIVACY_BUDGET_AUTHENTICATION_ERROR
Nguyên nhân Có thể bạn đang sử dụng ARN không chính xác hoặc đã lỗi thời.
Séc Google Cloud Platform

Kiểm tra để đảm bảo rằng tài khoản dịch vụ đang được dùng trong quá trình triển khai Dịch vụ tổng hợp khớp với tài khoản dịch vụ đã được cung cấp trong quá trình tham gia. Tên này phải khớp chính xác, chứ không chỉ thuộc cùng một dự án.

Amazon Web Services

Bạn nên sử dụng chính những người điều phối đã được cung cấp cho bạn qua email. Nếu bạn vẫn gặp vấn đề, hãy thu thập tệp auto.tfvars và thông tin về nguồn báo cáo rồi liên hệ với chúng tôi qua biểu mẫu hỗ trợ kỹ thuật.

Lỗi PRIVACY_BUDGET_EXHAUSTED
Nguyên nhân Lỗi:
            "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": 
            }
          

Vấn đề cạn kiệt Ngân sách quyền riêng tư xảy ra khi bạn cố gắng xử lý hàng loạt một báo cáo có mã nhận dạng dùng chung đã được đưa vào một lô thành công trước đó. Lỗi này xảy ra do quy tắc "Không có dữ liệu trùng lặp", trong đó các báo cáo có thể tổng hợp chỉ được phép xuất hiện trong một lô duy nhất và chỉ có thể đóng góp vào một báo cáo tóm tắt.

Mỗi báo cáo sẽ được chỉ định một "mã nhận dạng được chia sẻ" bao gồm API các trường shared_info, reporting_origin, destination_site, source_registration_time (bị cắt bớt theo ngày), scheduled_report_time (bị cắt bớt theo giờ) và version. Điều này có nghĩa là nhiều báo cáo có thể thuộc cùng một "mã nhận dạng được chia sẻ" nếu chúng có cùng thuộc tính của trường shared_info.

Séc

Bạn nên dùng thử dịch vụ hỗ trợ về việc hết hạn mức quyền riêng tư được cung cấp trong phản hồi của lệnh để kiểm tra và giải quyết lỗi. Điều này cung cấp một tệp JSON trợ giúp mới, giúp bạn biết được những báo cáo nào đã gây ra lỗi.

Xin lưu ý rằng nếu đang phân nhóm đúng cách, bạn có thể đủ điều kiện nhận lại ngân sách (thông tin giải thích). Đề nghị họ đọc thông tin giải thích và điền vào biểu mẫu, nhưng lưu ý rằng yêu cầu của họ cần được phê duyệt để có thể khôi phục ngân sách và chạy lại lệnh.

Lỗi DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
Nguyên nhân Điều này cho biết bạn đang chạy tác vụ ở chế độ gỡ lỗi. job_parameters trong yêu cầu createJob chứa debug_run: true. Khi bật cờ debug_run, bạn có thể chạy báo cáo nhiều lần cho mục đích gỡ lỗi. Thông báo lỗi này cho biết rằng nếu không chạy ở chế độ gỡ lỗi, thì công việc sẽ không thành công do hết hạn mức quyền riêng tư của báo cáo. Lỗi này sẽ chỉ có hiệu lực trong các bản phát hành v2.10.0 trở xuống.
Séc Nội dung yêu cầu createJob sẽ chứa debug_run trong 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"
              }
            }
          

Lỗi thời gian chạy của công việc

Lỗi INVALID_JOB
Điểm cuối createJob
Nguyên nhân Điều này có thể xảy ra khi epsilon quyền riêng tư gỡ lỗi được cung cấp không nằm trong phạm vi (0,64] hoặc khi các tham số của công việc không xác thực được.
Séc Giá trị epsilon nào đã được sử dụng? Những tham số công việc nào đã được dùng trong yêu cầu createJob và những tham số đó có phù hợp với môi trường của bạn không? Chúng có được định dạng đúng cách không? Chỉnh sửa những chỗ cần thiết rồi thử lại.
Lỗi INTERNAL_ERROR
Điểm cuối getJob
Nguyên nhân Có thể là vấn đề về định dạng khiến quá trình xử lý không thành công đối với miền đầu ra hoặc báo cáo. Cũng có thể là vấn đề với việc triển khai Dịch vụ tổng hợp.
Séc Xác minh rằng vị trí miền đầu ra là một đường dẫn hợp lệ. Thử lại công việc. Nếu lỗi vẫn tiếp diễn, hãy yêu cầu tệp auto.tfvars và đầu ra kế hoạch Terraform để khắc phục sự cố triển khai Dịch vụ tổng hợp.
Lỗi RESULT_WRITE_ERROR
Điểm cuối getJob
Nguyên nhân Điều này có thể xảy ra khi quá trình ghi vào thư mục đầu ra không thành công, có thể là tạm thời hoặc do thiếu quyền ghi vào thư mục. Xin lưu ý rằng lỗi ghi sẽ tiêu tốn ngân sách quyền riêng tư và bạn không thể thử lại công việc. Điều này có thể dẫn đến một kết quả lỗi khác là lỗi PRIVACY_BUDGET_EXHAUSTED.
Séc Lỗi này xảy ra ở mọi công việc hay chỉ xảy ra không liên tục? Nếu điều này xảy ra trong mọi công việc, hãy xác minh rằng bạn đã bật quyền ghi trên thư mục đầu ra. Nếu đây là lỗi không liên tục, thì các quyền phải chính xác. Đây là một vấn đề đã biết: việc viết báo cáo tóm tắt có thể không thành công nhưng ngân sách quyền riêng tư vẫn sẽ được sử dụng. Trong trường hợp này, bạn có thể yêu cầu khôi phục ngân sách (thông tin giải thích).
Vấn đề Gặp phải lỗi 403 trong khi chạy một công việc và truy xuất mã thông báo dịch vụ chứng thực, đồng thời công việc luôn trả về trạng thái "ĐÃ NHẬN".
Lỗi
            {
                "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": 
                }
            }
          
Độ phân giải

Các lệnh đang bị kẹt ở trạng thái RECEIVED và lỗi 403 thường xảy ra khi tài khoản dịch vụ chưa được tham gia. Xác minh rằng tài khoản dịch vụ bạn đang sử dụng khớp với tài khoản bạn đã cung cấp trong yêu cầu tham gia. Nếu bạn chưa hoàn tất yêu cầu tham gia, vui lòng điền vào biểu mẫu tham gia và biểu mẫu đăng ký.

Sau khi bạn xác minh trạng thái đăng ký và tham gia, hãy kiểm tra xem điều gì đã xảy ra với công việc đang chạy của bạn.

Amazon Web Services

Khi điều này xảy ra, có thể vùng cô lập AWS không chạy hoặc gặp sự cố, do đó các công việc không được chọn.

  1. Kết nối với Trình quản lý phiên của phiên bản EC2.
  2. Hãy tham khảo tài liệu của AWS này, trong đó có các bước sau để kết nối với Session Manager.
  3. Chuyển đến AWS Console Manager > EC2 > Instances (AWS Console Manager > EC2 > Phiên bản).
  4. Chọn Mã phiên bản của Dịch vụ tổng hợp đang chạy.
  5. Chọn thẻ "Session Manager" (Trình quản lý phiên) > nút "Connect" (Kết nối). Thao tác này sẽ kết nối bạn với phiên bản của bạn.
  6. Sau khi chạy phiên bản Enclave, hãy thực thi trong thiết bị đầu cuối:
    sudo nitro-cli describe-enclaves
    Nếu lệnh này không hiển thị nhật ký như mong đợi, hãy thực thi lệnh sau trước khi thử lại:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. Để kiểm tra xem vùng cô lập AWS có bị lỗi hay không, hãy chạy lệnh: sudo journalctl -u aggregate-worker.service
  8. Bạn sẽ thấy nhật ký đầu ra được điền vào, chẳng hạn như:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    Lỗi sẽ xuất hiện ở đây nếu có lỗi, v.v.
Google Cloud Platform

Nhóm phiên bản được quản lý (MIG) có thể không hoạt động bình thường. Nếu đây là lần thiết lập đầu tiên hoặc bạn đã huỷ và tạo lại adtech_setup Terraform, hãy xác nhận rằng tài khoản dịch vụ của bạn đã được tham gia. Nếu tài khoản dịch vụ chưa được tham gia, thì các MIG sẽ không hoạt động bình thường.

  1. Cloud Console, chuyển đến Compute Engine > Nhóm đối tượng
  2. Kiểm tra các cột trạng thái (dấu kiểm màu xanh lục là trạng thái tốt)
  3. Nhấp vào một trong các nhóm phiên bản rồi xem thẻ Lỗi để tìm hiểu thêm về vấn đề. Nhấp vào Tên phiên bản để truy cập vào thông tin cấp máy ảo.
  4. Bạn cũng có thể sử dụng Terminal để tương tác với Nhóm phiên bản và nhận được thông tin tương tự. Hãy thử lệnh list-errors:
    gcloud compute instance-groups managed list-errors --region=
    Sau đây là một ví dụ về kết quả đầu ra.
                      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
                    
Nếu bạn vẫn gặp vấn đề, hãy lưu thông tin này và cung cấp cho nhóm của chúng tôi. Tiếp tục thực hiện các bước tiếp theo.

Báo cáo tóm tắt của bạn có chuyển đổi như mong đợi không?

Có thể xảy ra trường hợp lệnh gọi getJob của bạn thành công, nhưng có vấn đề với báo cáo tóm tắt do Dịch vụ tổng hợp trả về. Báo cáo tóm tắt có định dạng AVRO và bạn cần chuyển đổi sang định dạng JSON. Sau khi chuyển đổi sang định dạng JSON, tệp sẽ có dạng như sau.

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

Nếu quá trình chuyển đổi AVRO gặp vấn đề, hãy thử dùng các công cụ AVRO và dùng lệnh sau trên báo cáo AVRO. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json Bạn có thể tải các phiên bản ổn định xuống tại đây. Nếu bạn cần được hỗ trợ thêm, hãy tiếp tục thực hiện các bước tiếp theo.

Các bước tiếp theo

Kiểm tra xem có ai khác gặp phải vấn đề tương tự trên Trang tổng quan về trạng thái của Privacy Sandbox hoặc trên kho lưu trữ GitHub công khai hay không.

Nếu bạn không thấy giải pháp cho vấn đề về Dịch vụ tổng hợp, hãy thông báo cho chúng tôi bằng cách gửi vấn đề trên GitHub hoặc gửi biểu mẫu hỗ trợ kỹ thuật.