درحال مشاهده اسناد 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 نرسد. بهدلیل این خطا، ممکن است متغیر سفارشی در «گزارش سفارشی» نشان داده نشود.
برای شناسایی مکان متغیر سفارشی که وجود ندارد:
- درخت 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 وارد شوید:
- بهاحتمال زیاد خواهید دید که ستون متغیر سفارشی در جدول حقیقت وجود ندارد و به همین دلیل در «ابعاد سفارشی» نشان داده نمیشود.
وضوح
راهحل ۱: بازراهاندازی سرور Postgres
- «سرور Postgres» را بازراهاندازی کنید تا مجبور شود همه اطلاعات مربوط به
«واکاوش» را از 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 تماس بگیرید.