วินิจฉัยงานการรวมข้อมูล

ตารางต่อไปนี้แสดงรายละเอียดปัญหาและรหัสสถานะข้อผิดพลาดมากมาย พร้อมสาเหตุที่เป็นไปได้ และสิ่งที่คุณทำได้เพื่อลดความเสี่ยงในการติดตั้งใช้งาน หากต้องการดูข้อกำหนดของข้อผิดพลาดและการลดผลกระทบทั้งหมด สำหรับบริการรวบรวมข้อมูล โปรดดูคำแนะนำสาธารณะปัจจุบันของเรา

หัวข้อในคู่มือ:

ข้อผิดพลาดเกี่ยวกับสิทธิ์และการให้สิทธิ์

ปัญหา ปัญหาเกี่ยวกับสิทธิ์เมื่อคุณเรียกใช้ terraform plan หรือ terraform apply ไปยังโปรเจ็กต์ระบบคลาวด์สาธารณะ
ตัวอย่างข้อผิดพลาด Error: UnauthorizedOperation: You are not authorized to perform this operation.
ความละเอียด

ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์อย่างถูกต้องใน CLI (อินเทอร์เฟซบรรทัดคำสั่ง) ของระบบคลาวด์สาธารณะที่คุณใช้

Amazon Web Services

AWS กำหนดให้ผู้ใช้ต้องมีสิทธิ์เพื่อสร้างอินสแตนซ์และบริการอื่นๆ ที่จำเป็นสำหรับบริการรวบรวมข้อมูล เมื่อใช้แล้ว คุณควรจะเรียกใช้ terraform plan และ apply ได้โดยไม่มีปัญหา

Google Cloud Platform

ใน 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 Platform

ตรวจสอบว่าบัญชีบริการที่ใช้ในการติดตั้งใช้งานบริการรวบรวมข้อมูลตรงกับบัญชีบริการที่ได้รับในระหว่างการเริ่มต้นใช้งาน ซึ่งต้องตรงกันทุกประการ ไม่ใช่แค่เป็นของโปรเจ็กต์เดียวกัน

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": 
            }
          

ปัญหาการใช้งบประมาณความเป็นส่วนตัวจนหมดเกิดขึ้นเมื่อคุณพยายามจัดกลุ่มรายงานที่มีรหัสที่แชร์ซึ่งรวมอยู่ในกลุ่มที่สำเร็จก่อนหน้านี้แล้ว ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากกฎ"ไม่มีรายการที่ซ้ำกัน" ซึ่งอนุญาตให้รายงานที่รวบรวมได้ปรากฏในกลุ่มเดียวเท่านั้น และมีส่วนร่วมในรายงานสรุปได้เพียงรายงานเดียว

แต่ละรายงานจะได้รับ "รหัสที่แชร์" ซึ่งประกอบด้วยฟิลด์ shared_info API, 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 จะมี 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
สาเหตุ อาจเป็นปัญหาการจัดรูปแบบที่ทำให้การประมวลผลโดเมนเอาต์พุตหรือรายงานล้มเหลว อาจเป็นปัญหาเกี่ยวกับการติดตั้งใช้งานบริการรวมข้อมูลด้วย
ตรวจสอบ ตรวจสอบว่าตำแหน่งโดเมนเอาต์พุตเป็นเส้นทางที่ถูกต้อง ลองเรียกใช้งานอีกครั้ง หากข้อผิดพลาดยังคงอยู่ ให้ขอauto.tfvarsไฟล์และเอาต์พุตของแผน Terraform เพื่อแก้ปัญหาการติดตั้งใช้งานบริการรวบรวมข้อมูล
ข้อผิดพลาด RESULT_WRITE_ERROR
ปลายทาง getJob
สาเหตุ กรณีนี้อาจเกิดขึ้นเมื่อการเขียนไปยังไดเรกทอรีเอาต์พุตล้มเหลว ไม่ว่าจะเป็นชั่วคราวหรือเนื่องจากไม่มีสิทธิ์เขียนในไดเรกทอรี โปรดทราบว่าข้อผิดพลาดในการเขียนจะใช้โควต้าความเป็นส่วนตัว และจะลองงานอีกครั้งไม่ได้ ซึ่งอาจทำให้เกิดข้อผิดพลาดอีกอย่างหนึ่งคือข้อผิดพลาด PRIVACY_BUDGET_EXHAUSTED
ตรวจสอบ ข้อผิดพลาดนี้เกิดขึ้นกับทุกงานหรือเกิดขึ้นเป็นระยะๆ เท่านั้น หากปัญหานี้เกิดขึ้นในทุกงาน ให้ตรวจสอบว่าคุณได้เปิดใช้สิทธิ์เขียนในไดเรกทอรีเอาต์พุตแล้ว หากเป็นความล้มเหลวเป็นครั้งคราว สิทธิ์ควรจะถูกต้อง เราทราบว่าการเขียนรายงานสรุปอาจล้มเหลว แต่ระบบจะยังคงใช้จ่ายงบประมาณส่วนตัว ในกรณีนี้ คุณสามารถขอการกู้คืนงบประมาณ (คำอธิบาย) ได้
ปัญหา พบข้อผิดพลาด 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 Web Services

เมื่อเกิดกรณีนี้ขึ้น อาจเป็นไปได้ว่า Enclave ของ AWS ไม่ได้ทำงานหรือขัดข้อง จึงไม่มีการเลือกงาน

  1. เชื่อมต่อกับ Session Manager ของอินสแตนซ์ EC2
  2. ทำตามเอกสารประกอบของ AWS ซึ่งมีขั้นตอนต่อไปนี้สำหรับการเชื่อมต่อกับ Session Manager
  3. ไปที่ AWS Console Manager > EC2 > อินสแตนซ์
  4. เลือกรหัสอินสแตนซ์ของบริการรวบรวมข้อมูลที่กำลังทำงาน
  5. เลือกแท็บ "Session Manager" > ปุ่ม "Connect" ซึ่งจะเชื่อมต่อคุณกับอินสแตนซ์
  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. หากต้องการตรวจสอบว่า Enclave ของ AWS ขัดข้องหรือไม่ ให้เรียกใช้คำสั่งต่อไปนี้ sudo journalctl -u aggregate-worker.service
  8. คุณควรเห็นบันทึกเอาต์พุตที่กรอกข้อมูล เช่น
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    ข้อผิดพลาดควรปรากฏที่นี่หากมีข้อผิดพลาด เป็นต้น
Google Cloud Platform

กลุ่มอินสแตนซ์ที่มีการจัดการ (MIG) อาจไม่สมบูรณ์ หากเป็นการตั้งค่าครั้งแรก หรือคุณทำลายและสร้าง adtech_setup Terraform ใหม่ ให้ยืนยันว่าบัญชีบริการของคุณได้รับการเริ่มต้นใช้งานแล้ว หากไม่ได้เริ่มต้นใช้งานบัญชีบริการ MIG จะไม่สมบูรณ์

  1. Cloud Console ให้ไปที่ Compute Engine > กลุ่มอินสแตนซ์
  2. ดูคอลัมน์สถานะ (เครื่องหมายถูกสีเขียวหมายถึงสถานะปกติ)
  3. คลิกกลุ่มอินสแตนซ์ใดกลุ่มหนึ่ง แล้วดูแท็บข้อผิดพลาดเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับปัญหา คลิกชื่ออินสแตนซ์เพื่อเข้าถึงข้อมูลระดับ VM
  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 ดาวน์โหลดเวอร์ชันที่มีความเสถียรได้ที่นี่ หากต้องการความช่วยเหลือเพิ่มเติม โปรดทำตามขั้นตอนถัดไป

ขั้นตอนถัดไป

ตรวจสอบว่ามีใครพบปัญหาเดียวกันนี้ในแดชบอร์ดสถานะของ Privacy Sandbox หรือในที่เก็บ GitHub สาธารณะหรือไม่

หากไม่เห็นวิธีแก้ไขปัญหาเกี่ยวกับบริการรวบรวมข้อมูล โปรดแจ้งให้เราทราบโดยการส่งปัญหาใน GitHub หรือส่งแบบฟอร์มขอรับการสนับสนุนด้านเทคนิค