متغیر سفارشی برای گزارش های سفارشی تجزیه و تحلیل قابل مشاهده نیست

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

علامت

متغیر سفارشی ایجاد شده با استفاده از خط مشی StatisticsCollector در بخش Custom Dimensions در Analytics Custom Reports در Edge UI قابل مشاهده نیست.

پیام های خطا

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

علل احتمالی

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

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

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

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

تشخیص

اگر نام متغیر سفارشی مورد استفاده در خط‌مشی StatisticsCollector با دستورالعمل‌های استاندارد مطابقت نداشته باشد (به Resolution مراجعه کنید)، در گزارش‌های سفارشی ظاهر نمی‌شود.

قطعه کد زیر نشان می دهد که نام متغیر "شناسه محصول" دارای یک فاصله است، بنابراین در زیر بعد سفارشی در گزارش سفارشی ظاهر نمی شود.

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

قطعنامه

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

  • نام ها می توانند شامل [az][0-9] و '_' باشند.
  • نام ها نمی توانند شامل فاصله باشند. به عنوان مثال، در نمونه کد نشان داده شده در بالا، نام متغیر باید به "product_id" تغییر یابد.
  • مورد نادیده گرفته می شود.
  • کلمات کلیدی رزرو شده مندرج در جدول در لینک زیر مجاز نیستند. به عنوان مثال، "کاربر" مجاز نیست. برای اطلاعات بیشتر، SQL Keywords را ببینید.

اگر مشکل همچنان ادامه داشت، با اجرای سیاست StatisticsCollector به مسیر بدون ترافیک در پروکسی API بروید.

هیچ ترافیکی در پروکسی API وجود ندارد که خط مشی StatisticsCollector را اجرا می کند

تشخیص

اگر در پروکسی API که سیاست StatisticsCollector را اجرا می کند، ترافیکی وجود نداشته باشد، متغیر سفارشی در گزارش های سفارشی ظاهر نمی شود.

قطعنامه

با پراکسی API که خط مشی StatisticsCollector را اجرا می کند، تماس بگیرید.

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

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

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

تشخیص

هنگامی که یک متغیر سفارشی در پراکسی API ایجاد می شود و فراخوانی های API انجام می شود، متغیر ابتدا در حافظه پردازشگر پیام ذخیره می شود. سپس پردازشگر پیام، اطلاعات مربوط به متغیر جدید را به 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. به احتمال زیاد خواهید دید که ستون متغیر سفارشی در جدول واقعیت وجود ندارد که دلیل آن عدم نمایش آن در ابعاد سفارشی است.

قطعنامه

راه حل شماره 1: سرور Postgres را مجددا راه اندازی کنید

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

    اگر مشکل ادامه داشت، راه حل شماره 2 را اعمال کنید.

راه حل شماره 2: ویژگی 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 تماس بگیرید.