متغیر سفارشی برای گزارش‌های سفارشی Analytics قابل‌مشاهده نیست

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نشانه

متغیر سفارشی ایجادشده بااستفاده از خط‌مشی StatisticsCollector در بخش «ابعاد سفارشی» در «گزارش‌های سفارشی Analytics» در «رابط کاربری Edge» جدید قابل‌مشاهده نیست.

پیام‌های خطا

هیچ خطایی مشاهده نشد.

علل احتمالی

جدول زیر دلایل احتمالی این مشکل را فهرست می‌کند:

علت برای
متغیر سفارشی از دستورالعمل‌های استاندارد پیروی نمی‌کند کاربران Edge Private و Public Cloud
هیچ ترافیکی در «میانجی میانای برنامه‌سازی کاربردی» که خط‌مشی StatisticsCollector را اجرا می‌کند وجود ندارد کاربران Edge Private و Public Cloud
متغیر سفارشی به سرور Postgres ارسال نشد کاربران Edge Private Cloud

روی پیوندی در جدول کلیک کنید تا راه‌حل‌های احتمالی برای آن علت را ببینید.

متغیر سفارشی از رهنمودهای استاندارد پیروی نمی‌کند

تشخیص

اگر نام متغیر سفارشی استفاده‌شده در خط‌مشی StatisticsCollector از رهنمودهای استاندارد پیروی نکند (به وضوح مراجعه کنید)، در «گزارش‌های سفارشی» نشان داده نخواهد شد.

تکه‌کد زیر نشان می‌دهد که نام متغیر «شناسه محصول» دارای فاصله است، بنابراین در «بُعد سفارشی» در «گزارش سفارشی» نشان داده نخواهد شد.

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

وضوح

نام‌های متغیر سفارشی استفاده‌شده در خط‌مشی StatisticsCollector در پراکسی میانای برنامه‌سازی کاربردی باید از دستورالعمل‌های زیر پیروی کنند:

  • نام‌ها می‌توانند شامل [a-z][0-9] و «_» باشند.
  • نام‌ها نمی‌توانند شامل فاصله باشند. برای مثال، در نمونه کد نشان‌داده‌شده در بالا، نام متغیر باید به «product_id» تغییر کند.
  • اندازه حروف نادیده گرفته می‌شود.
  • کلیدواژه‌های رزروشده فهرست‌شده در جدول پیوند زیر مجاز نیستند. برای مثال، «کاربر» مجاز نیست. برای اطلاعات بیشتر، به کلمات کلیدی SQL مراجعه کنید.

اگر مشکل برطرف نشد، به بدون ترافیک در API Proxy که خط‌مشی StatisticsCollector را اجرا می‌کند بروید.

هیچ ترافیکی در «پراکسی میانای برنامه‌سازی کاربردی» که خط‌مشی StatisticsCollector را اجرا می‌کند وجود ندارد

تشخیص

اگر ترافیکی در پراکسی میانای برنامه‌سازی کاربردی که خط‌مشی StatisticsCollector را پیاده‌سازی می‌کند وجود نداشته باشد، متغیر سفارشی در «گزارش‌های سفارشی» نشان داده نخواهد شد.

وضوح

چند فراخوانی به پراکسی میانای برنامه‌سازی کاربردی که خط‌مشی StatisticsCollector را پیاده‌سازی می‌کند انجام دهید.

مدتی صبر کنید و بررسی کنید که آیا متغیر(های) سفارشی در ابعاد سفارشی در «گزارش سفارشی» ظاهر می‌شود یا نه.

اگر مشکل برطرف نشد، به متغیر سفارشی به سرور Postgres ارسال نشد بروید.

متغیر سفارشی به سرور Postgres ارسال نشد

تشخیص

وقتی متغیر سفارشی در پراکسی API ایجاد می‌شود و تماس‌های API برقرار می‌شود، متغیر ابتدا در حافظه «پردازشگر پیام» ذخیره می‌شود. سپس «پردازشگر پیام» اطلاعات مربوط به متغیر جدید را به ZooKeeper ارسال می‌کند و ZooKeeper نیز به‌نوبه خود آن را به سرور Postgres ارسال می‌کند تا به‌عنوان ستونی در پایگاه داده Postgres اضافه شود.

گاهی اوقات، به‌دلیل مشکلات شبکه، ممکن است اعلان ZooKeeper به سرور Postgres نرسد. به‌دلیل این خطا، ممکن است متغیر سفارشی در «گزارش سفارشی» نشان داده نشود.

برای شناسایی مکان متغیر سفارشی که وجود ندارد:

  1. درخت ZooKeeper را بااستفاده از فرمان زیر تولید کنید:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. متغیر سفارشی را در خروجی درخت ZooKeeper جستجو کنید.
  3. اگر متغیر سفارشی در درخت ZooKeeper وجود دارد، سپس فرمان‌های زیر را اجرا کنید تا بررسی کنید که آیا متغیر سفارشی به پایگاه داده Postgres اضافه شده است یا نه:
    1. در گره Postgres، به PostgreSQL وارد شوید:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. پُرسمان SQL زیر را اجرا کنید:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. به‌احتمال زیاد خواهید دید که ستون متغیر سفارشی در جدول حقیقت وجود ندارد و به همین دلیل در «ابعاد سفارشی» نشان داده نمی‌شود.

وضوح

راه‌حل ۱: بازراه‌اندازی سرور Postgres

  1. «سرور Postgres» را بازراه‌اندازی کنید تا مجبور شود همه اطلاعات مربوط به «واکاوش» را از Zookeeper بخواند:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    اگر مشکل برطرف نشد، «راهکار ۲» را اعمال کنید.

راه‌حل ۲: فعال کردن ویژگی forceonboard

دارایی forceonboard را بااستفاده از مراحل زیر فعال کنید:

  1. اگر فایل /opt/apigee/customer/application/postgres-server.properties ازقبل وجود ندارد، آن را در دستگاه سرور Postgres ایجاد کنید.
  2. خط زیر را به این فایل اضافه کنید:
    conf_pg-agent_forceonboard=true
  3. بااستفاده از فرمان زیر مطمئن شوید که این فایل متعلق به Apigee است:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. سرور Postgres را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. اگر بیش‌از یک سرور Postgres دارید، مراحل بالا را در همه سرورهای Postgres تکرار کنید.
  6. پراکسی API خود را که از خط‌مشی StatisticsCollector استفاده می‌کند، لغو استقرار و استقرار کنید.
  7. فراخوانی‌های API را اجرا کنید.
  8. بررسی کنید که آیا متغیر(های) سفارشی در ابعاد سفارشی در «گزارش سفارشی» ظاهر می‌شوند یا نه.

اگر مشکل برطرف نشد، با پشتیبانی Apigee Edge تماس بگیرید.