تشخيص مهام التجميع

توضِّح الجداول التالية بالتفصيل العديد من المشاكل ورموز حالة الأخطاء مع الأسباب المحتملة للخطأ والإجراءات التي يمكنك اتّخاذها للتخفيف من عملية النشر. إذا أردت الاطّلاع على مواصفات الأخطاء وإجراءات الحدّ منها كاملةً لخدمة التجميع، يمكنك الاطّلاع على الإرشادات العامة الحالية.

مواضيع الدليل:

الأخطاء المتعلّقة بالأذونات والتفويض

المشكلة مشاكل في الأذونات عند تنفيذ terraform plan أو terraform apply في مشروعك على السحابة الإلكترونية العامة
مثال على الخطأ Error: UnauthorizedOperation: You are not authorized to perform this operation.
الدقة

تأكَّد من أنّك تمّت مصادقة حسابك بشكلٍ صحيح في واجهة سطر الأوامر (cli) للسحابة العامة التي تستخدِمها.

Amazon Web Services

تتطلّب AWS أذونات المستخدمين لكي يتمكّنوا من إنشاء النُسخ والحصول على الخدمات الأخرى المطلوبة لخدمة التجميع. بعد تطبيق ذلك، من المفترض أن تتمكّن من تنفيذ خطة terraform وتطبيقها بدون أي مشاكل.

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
السبب من المحتمل أنّك تستخدم رقم تعريف Amazon Resource (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، يمكنك تنفيذ التقرير عدة مرات لأغراض تصحيح الأخطاء. تُعلمك رسالة الخطأ هذه بأنّه كان من الممكن أن يتعذّر إكمال المهمة بسبب استنفاد ميزانية الخصوصية للتقرير في حال عدم تشغيلها في وضع تصحيح الأخطاء. لن يكون هذا الخطأ صالحًا إلا في الإصدارات 2.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
السبب يمكن أن يحدث ذلك عندما لا يكون مقياس الخصوصية epsilon الذي تم تقديمه لتصحيح الأخطاء ضمن الحدود (0.64]، أو عندما يتعذّر إثبات صحة مَعلمات المهمة.
شيك ما هي قيمة epsilon التي تم استخدامها؟ ما هي مَعلمات المهام المستخدَمة في طلب 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": 
                }
            }
          
الدقة

غالبًا ما يحدث خطأ 403 وتوقف المهام في حالة RECEIVED عندما لا يكون حساب الخدمة قد تم إعداده بعد. تأكَّد من أنّ حساب الخدمة الذي تستخدمه يتطابق مع الحساب الذي قدّمته في طلب الإعداد. إذا لم تكن قد أكملت طلب إعداد الحساب، يُرجى ملء نموذج الإعداد ونماذج التسجيل.

بعد التحقّق من حالة التسجيل والإعداد، تحقّق مما حدث لطلبك الجاري.

Amazon Web Services

عند حدوث ذلك، قد لا يكون مجمع AWS قيد التشغيل أو قد تعطّل، وبالتالي لا يتم اختيار المهام.

  1. اتصل بخدمة Session Manager في مثيل 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 Enclave، شغِّل الأمر التالي: sudo journalctl -u aggregate-worker.service
  8. من المفترض أن تظهر لك سجلّات النتائج، مثل:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    من المفترض أن تظهر الأخطاء هنا في حال حدوث أيّ تعذّر أو غير ذلك.
Google Cloud Platform

قد لا تكون مجموعة النُسخ المُدارة (MIG) في حالة جيدة. إذا كانت هذه هي المرة الأولى التي يتم فيها الإعداد، أو إذا أزلت adtech_setup Terraform وأعدتها، تأكَّد من إعداد حساب الخدمة. في حال عدم إعداد حساب الخدمة، لن تكون عمليات نقل البيانات في "الاستضافة في خدمات السحابة الإلكترونية" سليمة.

  1. في Cloud Console، انتقِل إلى Compute Engine > مجموعات المثيلات
  2. اطّلِع على أعمدة الحالة (العلامات الخضراء تشير إلى أنّ العناصر سليمة).
  3. انقر على إحدى مجموعات النُسخ، واطّلِع على علامة التبويب "الأخطاء" لمعرفة مزيد من المعلومات عن المشكلة. انقر على اسم المثيل للوصول إلى المعلومات على مستوى الجهاز الافتراضي.
  4. يمكنك أيضًا استخدام Terminal للتفاعل مع مجموعة النُسخ والحصول على المعلومات نفسها. جرِّب الأمر 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 أو إرسال نموذج الدعم الفني.