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

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

علامت

متغیر سفارشی ایجاد شده با استفاده از خط‌مشی جمع‌آوری آمار، در بخش ابعاد سفارشی در گزارش‌های سفارشی تحلیلی در رابط کاربری Edge قابل مشاهده نیست.

پیام خطا

گزارش سیستم 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 وجود ندارد، ابعاد سفارشی قابل ایجاد نیست. کاربران ابر خصوصی Edge

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

تشخیص

تجزیه و تحلیل برای ترکیبی از سازمان و محیط از طریق فعال کردن API تجزیه و تحلیل ، که /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-server استفاده می‌کردند، به سیستم اضافه شده باشد. برای بررسی تعداد گروه‌های تحلیلی موجود، فراخوانی 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-server را مقایسه می‌کند تا مشخص شود که آنها یکسان هستند:

{  "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 حذف کنید. اگر فقط در حوزه‌های غیرتولیدی مشکل دارید، برای این تمرین، گروه ax را انتخاب کنید که هیچ حوزه تولیدی ندارد. در غیر این صورت، گروه ax با کمترین تعداد حوزه را انتخاب کنید.
  2. تمام محدوده‌هایی را که دیگر هیچ سرور postgres ندارند از axgroup و آن‌هایی را که مشکل ابعاد سفارشی را در آن‌ها مشاهده می‌کنید، از axgroup خود حذف کنید. با فرض اینکه 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. با استفاده از رابط برنامه‌نویسی کاربردی «فعال کردن تحلیل‌ها» ، تحلیل‌ها را فعال کنید.
  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 نمایش داده می‌شوند یا خیر.

اگر مشکل همچنان ادامه داشت، به «باید اطلاعات تشخیصی را جمع‌آوری کنید» بروید.

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

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