कस्टम वैरिएबल, Analytics की कस्टम रिपोर्ट में नहीं दिख रहा है

यह Apigee Edge का दस्तावेज़ है.
Go to the Apigee X documentation.
info

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

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

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

कोई गड़बड़ी नहीं देखी गई.

संभावित कारण

इस समस्या की ये वजहें हो सकती हैं:

वजह इसके लिए:
कस्टम वैरिएबल, स्टैंडर्ड दिशा-निर्देशों के मुताबिक नहीं है Edge Private और Public Cloud के उपयोगकर्ता
StatisticsCollector नीति लागू करने वाले एपीआई प्रॉक्सी पर कोई ट्रैफ़िक नहीं है Edge Private और Public Cloud के उपयोगकर्ता
कस्टम वैरिएबल को Postgres सर्वर पर पुश नहीं किया गया है Edge Private Cloud के उपयोगकर्ता

वजह के हिसाब से संभावित समाधान देखने के लिए, टेबल में मौजूद किसी लिंक पर क्लिक करें.

कस्टम वैरिएबल, स्टैंडर्ड दिशा-निर्देशों के मुताबिक नहीं है

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

अगर StatisticsCollector नीति में इस्तेमाल किया गया कस्टम वैरिएबल का नाम, स्टैंडर्ड दिशा-निर्देशों के मुताबिक नहीं है ( रिज़ॉल्यूशन देखें), तो वह कस्टम रिपोर्ट में नहीं दिखेगा.

नीचे दिए गए कोड स्निपेट से पता चलता है कि वैरिएबल के नाम "product id" में स्पेस है. इसलिए, यह कस्टम रिपोर्ट में कस्टम डाइमेंशन के तहत नहीं दिखेगा.

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

रिज़ॉल्यूशन

एपीआई प्रॉक्सी में, StatisticsCollector नीति में इस्तेमाल किए गए कस्टम वैरिएबल के नाम, इन दिशा-निर्देशों के मुताबिक होने चाहिए:

  • नामों में [a-z][0-9] और '_' शामिल हो सकते हैं.
  • नामों में स्पेस नहीं हो सकता. उदाहरण के लिए, ऊपर दिखाए गए कोड सैंपल में, वैरिएबल के नाम को "product_id" में बदला जाना चाहिए.
  • केस को अनदेखा किया जाता है.
  • यहां दिए गए लिंक पर मौजूद टेबल में शामिल रिज़र्व किए गए कीवर्ड इस्तेमाल नहीं किए जा सकते. उदाहरण के लिए, "user" का इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, SQL कीवर्ड देखें.

अगर समस्या बनी रहती है, तो StatisticsCollector नीति लागू करने वाले एपीआई प्रॉक्सी पर कोई ट्रैफ़िक नहीं है पर जाएं.

StatisticsCollector नीति लागू करने वाले एपीआई प्रॉक्सी पर कोई ट्रैफ़िक नहीं है

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

अगर StatisticsCollector नीति लागू करने वाले एपीआई प्रॉक्सी पर कोई ट्रैफ़िक नहीं है, तो कस्टम वैरिएबल, कस्टम रिपोर्ट में नहीं दिखेगा.

रिज़ॉल्यूशन

StatisticsCollector नीति लागू करने वाले एपीआई प्रॉक्सी को कुछ कॉल करें.

कुछ समय इंतज़ार करें और देखें कि कस्टम रिपोर्ट में, कस्टम डाइमेंशन में कस्टम वैरिएबल दिखते हैं या नहीं.

अगर समस्या बनी रहती है, तो कस्टम वैरिएबल को Postgres सर्वर पर पुश नहीं किया गया है पर जाएं.

कस्टम वैरिएबल को Postgres सर्वर पर पुश नहीं किया गया है

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

जब एपीआई प्रॉक्सी में कोई कस्टम वैरिएबल बनाया जाता है और एपीआई कॉल किए जाते हैं, तो वैरिएबल सबसे पहले मैसेज प्रोसेसर पर इन-मेमोरी सेव होता है. इसके बाद, मैसेज प्रोसेसर, नए वैरिएबल के बारे में जानकारी ZooKeeper को भेजता है. ZooKeeper, इस जानकारी को Postgres सर्वर को भेजता है, ताकि इसे Postgres डेटाबेस में कॉलम के तौर पर जोड़ा जा सके.

कई बार, नेटवर्क की समस्याओं की वजह से, ZooKeeper से मिलने वाली सूचना, Postgres सर्वर तक नहीं पहुंच पाती. इस गड़बड़ी की वजह से, कस्टम रिपोर्ट में कस्टम वैरिएबल नहीं दिख सकता.

यह पता लगाने के लिए कि कस्टम वैरिएबल कहां मौजूद नहीं है:

  1. ZooKeeper ट्री जनरेट करने के लिए, यह निर्देश इस्तेमाल करें:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. ZooKeeper ट्री के आउटपुट में, कस्टम वैरिएबल खोजें.
  3. अगर कस्टम वैरिएबल, ZooKeeper ट्री में मौजूद है, तो यह देखने के लिए कि कस्टम वैरिएबल को Postgres डेटाबेस में जोड़ा गया है या नहीं, ये निर्देश चलाएं:
    1. Postgres नोड पर, PostgreSQL में लॉग इन करें:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. यह एसक्यूएल क्वेरी चलाएं:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. ज़्यादातर मामलों में, आपको दिखेगा कि फ़ैक्ट टेबल में कस्टम वैरिएबल कॉलम मौजूद नहीं है. इसी वजह से, यह कस्टम डाइमेंशन में नहीं दिखता है.

रिज़ॉल्यूशन

पहला समाधान: Postgres सर्वर को रीस्टार्ट करना

  1. Postgres सर्वर को रीस्टार्ट करें, ताकि वह ZooKeeper से Analytics से जुड़ी सभी जानकारी पढ़ सके:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    अगर समस्या बनी रहती है, तो दूसरा समाधान लागू करें.

दूसरा समाधान: forceonboard प्रॉपर्टी को चालू करना

forceonboard प्रॉपर्टी को चालू करने के लिए, यह तरीका अपनाएं:

  1. अगर Postgres सर्वर मशीन पर /opt/apigee/customer/application/postgres-server.properties फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  2. इस फ़ाइल में यह लाइन जोड़ें:
    conf_pg-agent_forceonboard=true
  3. यह पक्का करें कि इस फ़ाइल का मालिकाना हक Apigee के पास हो. इसके लिए, यह निर्देश इस्तेमाल करें:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Postgres सर्वर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. अगर आपके पास एक से ज़्यादा Postgres सर्वर हैं, तो ऊपर दिया गया तरीका सभी Postgres सर्वर पर दोहराएं.
  6. StatisticsCollector नीति का इस्तेमाल करने वाले एपीआई प्रॉक्सी को अनडिप्लॉय करें और फिर से डिप्लॉय करें.
  7. एपीआई कॉल करें.
  8. देखें कि कस्टम रिपोर्ट में, कस्टम डाइमेंशन में कस्टम वैरिएबल दिखते हैं या नहीं.

अगर समस्या बनी रहती है, तो Apigee Edge की सहायता टीम से संपर्क करें.