एक से ज़्यादा ऐक्सग्रुप कॉन्फ़िगर करने पर कस्टम डाइमेंशन नहीं दिख रहे हैं

यह Apigee Edge के दस्तावेज़ हैं.
पर जाएं Apigee X दस्तावेज़.
info

समस्या का ब्यौरा

Statistics Collector नीति का इस्तेमाल करके बनाया गया कस्टम वैरिएबल, New Edge यूज़र इंटरफ़ेस (यूआई) में Analytics की कस्टम रिपोर्ट में, कस्टम डाइमेंशन के तहत नहीं दिखता.

गड़बड़ी का मैसेज

हर संगठन/एनवायरमेंट के कॉम्बिनेशन के लिए, 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 Private Cloud के उपयोगकर्ता

वजह: संगठन और एनवायरमेंट के कॉम्बिनेशन के लिए, ZooKeeper की प्रॉपर्टी का पाथ मौजूद नहीं है

संक्रमण की जांच

किसी संगठन-एनवायरमेंट के कॉम्बिनेशन के लिए, Enable analytics API की मदद से Analytics चालू किया जाता है. इससे /organizations//environments//properties ZooKeeper ट्री में भर जाता है. जब यह एपीआई काम नहीं करता है, तब 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

आम तौर पर, ऐसा तब होता है, जब किसी संगठन को ऐसे समय में जोड़ा गया हो, जब एक से ज़्यादा Analytics ग्रुप मौजूद थे. इन ग्रुप में, postgres-server के एक ही यूयूआईडी इस्तेमाल किए जाते थे. यह देखने के लिए कि कितने Analytics ग्रुप मौजूद हैं, यह एपीआई कॉल करें:

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

अगर यह एपीआई एक से ज़्यादा ग्रुप दिखाता है, तो ज़्यादातर मामलों में, यही समस्या की वजह होती है. यहां दिए गए उदाहरण में, ध्यान दें कि दो ग्रुप मौजूद हैं. इनमें सिर्फ़ एक हाइफ़न का अंतर है: 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" : {
  }

खास तौर पर, यह समस्या तब होती है, जब हर axgroup के लिए कॉन्फ़िगर किया गया postgres-server का यूयूआईडी एक ही हो. यह पता करने के लिए, यह कमांड चलाएं:

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

यहां दिए गए सैंपल आउटपुट से, 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 सर्वर के एक ही सेट को दो axgroup असाइन नहीं किया जा सकता. समस्या को हल करने का सबसे आसान तरीका यह है कि किसी एक axgroup से postgres सर्वर की जानकारी मिटा दी जाए और सभी स्कोप (संगठन, एनवायरमेंट के कॉम्बिनेशन) दूसरे ग्रुप को असाइन कर दिए जाएं. इसके लिए, यह तरीका अपनाएं:

  1. दो axgroup में से किसी एक से, postgres सर्वर के कॉम्पोनेंट हटाएं. इसके लिए, Analytics ग्रुप में Analytics कॉम्पोनेंट जोड़ना और मिटाना में दिए गए निर्देशों का पालन करें. अगर आपको सिर्फ़ नॉन-प्रॉडक्शन स्कोप में समस्याएं दिख रही हैं, तो इस काम के लिए वह axgroup चुनें जिसमें प्रॉडक्शन स्कोप न हो. इसके अलावा, वह axgroup चुनें जिसमें सबसे कम स्कोप हों.
  2. उस axgroup से सभी स्कोप हटाएं जिसमें अब कोई postgres सर्वर नहीं है. साथ ही, उन स्कोप को भी हटाएं जिनके लिए आपको कस्टम डाइमेंशन की समस्या दिख रही है . मान लें कि 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 का इस्तेमाल करके, Analytics चालू करें.
  4. postgres मास्टर नोड पर, edge-postgres-server कॉम्पोनेंट और इंस्टॉल किए गए सभी 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. पुष्टि करें कि New Edge यूज़र इंटरफ़ेस (यूआई) में कस्टम डाइमेंशन दिख रहे हैं.

अगर समस्या बनी रहती है, तो गड़बड़ी की जानकारी इकट्ठा करने का तरीका पर जाएं.

गड़बड़ी की जानकारी इकट्ठा करने का तरीका

अगर पिछली समस्याएं हल करने के निर्देश का पालन करने के बाद भी समस्या बनी रहती है, तो कृपया गड़बड़ी की यह जानकारी इकट्ठा करें. Apigee Edge की सहायता टीम से संपर्क करें और उन्हें यह जानकारी शेयर करें:

  1. edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log की जानकारी, आखिरी बार रीस्टार्ट करने के समय से.
  2. Management 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