شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
علامت
متغیر سفارشی ایجاد شده با استفاده از خطمشی StatisticsCollector در بخش ابعاد سفارشی در گزارشهای سفارشی آنالیتیکس در رابط کاربری Edge قابل مشاهده نیست.
پیامهای خطا
هیچ خطایی مشاهده نمیشود.
علل احتمالی
جدول زیر علل احتمالی این مشکل را فهرست میکند:
| علت | برای |
|---|---|
| متغیر سفارشی که از دستورالعملهای استاندارد پیروی نمیکند | کاربران Edge Private و Public Cloud |
| هیچ ترافیکی روی API Proxy که سیاست StatisticsCollector را اجرا میکند، وجود ندارد | کاربران Edge Private و Public Cloud |
| متغیر سفارشی به سرور Postgres ارسال نشده است | کاربران فضای ابری خصوصی اج |
برای مشاهده راهحلهای ممکن برای آن علت، روی پیوندی در جدول کلیک کنید.
متغیر سفارشی که از دستورالعملهای استاندارد پیروی نمیکند
تشخیص
اگر نام متغیر سفارشی استفاده شده در سیاست StatisticsCollector با دستورالعملهای استاندارد (به بخش راهحل مراجعه کنید) مطابقت نداشته باشد، در گزارشهای سفارشی نمایش داده نخواهد شد.
قطعه کد زیر نشان میدهد که نام متغیر "product id" دارای فاصله است، بنابراین در گزارش سفارشی، در زیر ابعاد سفارشی نمایش داده نمیشود.
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
وضوح تصویر
نامهای متغیر سفارشی که در سیاست StatisticsCollector در پروکسی API استفاده میشوند، باید از دستورالعملهای زیر پیروی کنند:
- نامها میتوانند شامل [az][0-9] و '_' باشند.
- نامها نمیتوانند شامل فاصله باشند. برای مثال، در نمونه کد نشان داده شده در بالا، نام متغیر باید به "product_id" تغییر یابد.
- مورد نادیده گرفته میشود.
- کلمات کلیدی رزرو شده که در جدول لینک زیر فهرست شدهاند، مجاز نیستند. برای مثال، "user" مجاز نیست. برای اطلاعات بیشتر، به کلمات کلیدی SQL مراجعه کنید.
اگر مشکل همچنان ادامه داشت، به بخش «بدون ترافیک روی پروکسی API» بروید و سیاست StatisticsCollector را پیادهسازی کنید .
هیچ ترافیکی روی API Proxy که سیاست StatisticsCollector را اجرا میکند، وجود ندارد
تشخیص
اگر هیچ ترافیکی روی پروکسی API که سیاست StatisticsCollector را پیادهسازی میکند، وجود نداشته باشد، متغیر سفارشی در گزارشهای سفارشی ظاهر نمیشود.
وضوح تصویر
چند فراخوانی به پروکسی API که سیاست StatisticsCollector را پیادهسازی میکند، انجام دهید.
کمی صبر کنید و بررسی کنید که آیا متغیر(های) سفارشی در ابعاد سفارشی در گزارش سفارشی ظاهر میشوند یا خیر.
اگر مشکل همچنان ادامه داشت، به بخش Custom Variable not pushed to Postgres Server بروید.
متغیر سفارشی به سرور 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 شوید:
- به احتمال زیاد خواهید دید که ستون متغیر سفارشی در جدول fact وجود ندارد و به همین دلیل در Custom Dimensions ظاهر نمیشود.
وضوح تصویر
راه حل شماره ۱: سرور Postgres را مجدداً راه اندازی کنید
- سرور Postgres را مجدداً راهاندازی کنید تا مجبور شود تمام اطلاعات مربوط به Analytics را از Zookeeper بخواند:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
اگر مشکل همچنان ادامه داشت، راه حل شماره ۲ را اعمال کنید.
راه حل شماره ۲: فعال کردن ویژگی 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 تماس بگیرید.