وقتی چندین گروه محوری پیکربندی شده اند، ابعاد سفارشی ظاهر نمی شوند

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

علامت

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

پیغام خطا

گزارش سیستم edge-postgres-server پس از راه‌اندازی مجدد برای هر ترکیب سازمان/محیط که در آن مسیر وجود ندارد، خطای زیر را خواهد داشت:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

علل احتمالی

علت توضیحات دستورالعمل های عیب یابی قابل اجرا برای
مسیر خصوصیات Zookeeper برای ترکیب سازمان و محیط وجود ندارد. وقتی مسیر ZooKeeper /organizations/ /environments/ /properties /organizations/ /environments/ /properties /organizations/ /environments/ /properties وجود ندارد، ابعاد سفارشی را نمی توان ایجاد کرد. کاربران ابر خصوصی Edge

علت: مسیر ویژگی ZooKeeper برای ترکیب سازمان و محیط وجود ندارد

تشخیص

تجزیه و تحلیل برای ترکیب سازمان-محیط از طریق Enable Analytics API فعال می شود که /organizations/ /environments/ /properties را پر می کند. /organizations/ /environments/ /properties /organizations/ /environments/ /properties در درخت ZooKeeper. هنگامی که این API خراب می شود، مؤلفه edge-postgres-server نمی تواند ابعاد سفارشی ایجاد کند و خطای زیر در system.log آن ظاهر می شود:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

این معمولاً زمانی اتفاق می‌افتد که یک سازمان در زمانی که بیش از یک گروه تحلیلی وجود داشت که از همان UUID‌های سرور postgres استفاده می‌کردند، روی تخته بود. برای بررسی تعداد گروه های تحلیلی، فراخوانی API زیر را اجرا کنید:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

اگر این API چندین گروه را برگرداند، به احتمال زیاد علت این مشکل است. در مثال زیر توجه کنید که دو گروه وجود دارد که فقط با خط فاصله از یکدیگر متمایز می شوند: axgroup-001 و axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

به طور خاص، اگر UUID سرور postgres که برای هر axgroup پیکربندی شده یکسان باشد، مشکل ایجاد می‌شود. یک راه سریع برای تعیین این، اجرای موارد زیر است:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

خروجی نمونه زیر به سرعت UUID های سرور postgres را مقایسه می کند تا مشخص شود که یکسان هستند:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

قطعنامه

مجموعه مشابهی از سرورهای PostgreSQL را نمی توان به دو گروه ax اختصاص داد. سریعترین راه حل این است که اطلاعات سرور postgres را از یک گروه ax حذف کنید و تمام دامنه ها (سازمان، ترکیبات محیطی) را به گروه دیگر اختصاص دهید. برای این کار مراحل زیر را دنبال کنید:

  1. اجزای سرور postgres را از یکی از دو گروه ax با استفاده از دستورالعمل‌های موجود در افزودن و حذف مؤلفه‌های تجزیه و تحلیل در گروه‌های تحلیلی حذف کنید. اگر فقط در زمینه‌های غیر تولیدی مشکل دارید، آکس‌گروپی را انتخاب کنید که هیچ محدوده تولیدی برای این تمرین ندارد. در غیر این صورت، axgroup را با کمترین تعداد محدوده انتخاب کنید.
  2. همه دامنه‌ها را از گروه ax که دیگر هیچ سرور postgres ندارند، و آن‌هایی که مشکل ابعاد سفارشی برای آن‌ها را می‌بینید را از گروه ax حذف کنید. با فرض اینکه axgroup-001 از مثال بالا گروهی است که می خواهید استفاده کنید، باید از موارد زیر برای حذف محدوده سازمان myorg و محیط prod استفاده کنید:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. با استفاده از Enable analytics API ، تجزیه و تحلیل ها را فعال کنید.
  4. کامپوننت edge-postgres-server را در گره اصلی postgres و تمام اجزای edge-qpid-server را که ممکن است نصب کرده باشید، با استفاده از دستورات زیر راه اندازی مجدد کنید:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. بررسی کنید که خطای ارائه شده در بخش پیام خطا در بالا دیگر در فایل گزارش سرور Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log رخ نمی دهد.
  6. تأیید کنید که آیا ابعاد سفارشی در رابط کاربری Edge نشان داده می شود.

اگر مشکل ادامه داشت، به Must Gather Diagnostic Information بروید.

باید اطلاعات تشخیصی را جمع آوری کرد

اگر حتی پس از پیروی از دستورالعمل های قبلی، مشکل همچنان ادامه داشت، لطفاً اطلاعات تشخیصی زیر را جمع آوری کنید. تماس بگیرید و آنها را با پشتیبانی Apigee Edge به اشتراک بگذارید:

  1. edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log از زمان آخرین راه‌اندازی مجدد.
  2. خروجی تماس مدیریت API زیر:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. خروجی درخت ZooKeeper با استفاده از دستور زیر به دست می آید:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt