شما در حال مشاهده اسناد 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 نرسد. به دلیل این خطا، متغیر سفارشی ممکن است در گزارش سفارشی ظاهر نشود.
برای شناسایی جایی که متغیر سفارشی گم شده است:
- با استفاده از دستور زیر درخت ZooKeeper را ایجاد کنید:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- متغیر سفارشی را در خروجی درخت ZooKeeper جستجو کنید.
- اگر متغیر سفارشی در درخت ZooKeeper وجود دارد، دستورات زیر را برای بررسی اینکه آیا متغیر سفارشی به پایگاه داده Postgres اضافه شده است را اجرا کنید:
- در گره Postgres، وارد PostgreSQL شوید:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- پرس و جوی SQL زیر را اجرا کنید:
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'orgname.envname.fact';
- در گره Postgres، وارد PostgreSQL شوید:
- به احتمال زیاد خواهید دید که ستون متغیر سفارشی در جدول واقعیت وجود ندارد که دلیل آن عدم نمایش آن در ابعاد سفارشی است.
قطعنامه
راه حل شماره 1: سرور Postgres را مجددا راه اندازی کنید
- سرور Postgres را مجددا راه اندازی کنید تا مجبور شود تمام اطلاعات مربوط به Analytics را از Zookeeper بخواند:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
اگر مشکل ادامه داشت، راه حل شماره 2 را اعمال کنید.
راه حل شماره 2: ویژگی forceonboard را فعال کنید
با استفاده از مراحل زیر، ویژگی forceonboard را فعال کنید:
- فایل
/opt/apigee/customer/application/postgres-server.properties
را در دستگاه سرور Postgres ایجاد کنید، اگر قبلاً وجود نداشته باشد. - خط زیر را به این فایل اضافه کنید:
conf_pg-agent_forceonboard=true
- با استفاده از دستور زیر مطمئن شوید که این فایل متعلق به Apigee است:
chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
- سرور Postgres را مجددا راه اندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- اگر بیش از یک سرور Postgres دارید، مراحل بالا را در تمام سرورهای Postgres تکرار کنید.
- پراکسی API خود را که از خطمشی StatisticsCollector استفاده میکند، لغو و مستقر کنید.
- تماس های API را اجرا کنید.
- بررسی کنید که آیا متغیر(های) سفارشی در ابعاد سفارشی در گزارش سفارشی ظاهر میشوند یا خیر.
اگر مشکل ادامه داشت، با پشتیبانی Apigee Edge تماس بگیرید.