Analytics डैशबोर्ड पर डेटा नहीं दिख रहा है

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

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

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

No traffic in the selected date range

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

इस समस्या की वजह से, मॉनिटर की जा सकने वाली गड़बड़ियां नहीं होती हैं.

संभावित कारण

यहां दी गई टेबल में, इस समस्या की संभावित वजहों की सूची दी गई है:

वजह इसके लिए:
संगठन-एनवायरमेंट के लिए एपीआई ट्रैफ़िक नहीं है Private Cloud के उपयोगकर्ताओं के लिए Edge
यह डेटा Postgres डेटाबेस में उपलब्ध है, लेकिन यूज़र इंटरफ़ेस (यूआई) में नहीं दिख रहा है Private Cloud के उपयोगकर्ताओं के लिए Edge
Analytics डेटा को Postgres डेटाबेस में नहीं भेजा जा रहा है Private Cloud के उपयोगकर्ताओं के लिए Edge
Analytics का गलत डिप्लॉयमेंट Private Cloud के उपयोगकर्ताओं के लिए Edge
Analytics के पुराने सर्वर यूयूआईडी Private Cloud के उपयोगकर्ताओं के लिए Edge

संगठन-एनवायरमेंट के लिए कोई एपीआई ट्रैफ़िक नहीं है

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

  1. देखें कि किसी खास संगठन के एनवायरमेंट पर एपीआई प्रॉक्सी के लिए, उस खास अवधि तक ट्रैफ़िक है या नहीं जब आपने यहां दिए गए तरीकों में से किसी एक का इस्तेमाल करके, आंकड़ों का डेटा देखने की कोशिश की थी:
    1. अपने किसी भी ऐसे एपीआई के लिए ट्रेस चालू करें जिसे आपके उपयोगकर्ता फ़िलहाल इस्तेमाल कर रहे हैं. साथ ही, यह देखें कि आपको ट्रेस में कोई अनुरोध मिल रहा है या नहीं.
    2. NGINX ऐक्सेस लॉग देखें (/opt/apigee/var/log/edge-router/nginx/logs/access.log) और देखें कि किसी खास अवधि के लिए, एपीआई प्रॉक्सी के लिए कोई नई एंट्री तो नहीं की गई है.
    3. अगर API प्रॉक्सी से Syslog, Splunk, Loggly वगैरह जैसे किसी लॉग सर्वर की जानकारी को लॉग किया जाता है, तो यह देखा जा सकता है कि उस खास अवधि के लिए, एपीआई प्रॉक्सी के लिए इन लॉग सर्वर में कोई एंट्री है या नहीं.
  2. अगर किसी तय अवधि के लिए कोई ट्रैफ़िक (एपीआई के लिए कोई अनुरोध नहीं) नहीं है, तो आंकड़ों का डेटा उपलब्ध नहीं होता है. आपको Analytics के डैशबोर्ड में, "चुनी गई तारीख की सीमा में कोई ट्रैफ़िक नहीं है" दिखेगा.

रिज़ॉल्यूशन

  1. किसी खास संगठन के माहौल में एक या उससे ज़्यादा एपीआई प्रॉक्सी पर कुछ कॉल करें.
  2. कुछ सेकंड इंतज़ार करें और उसके बाद 'घंटा' टैब में, Analytics के डैशबोर्ड देखें और देखें कि डेटा दिखता है या नहीं.
  3. अगर समस्या बनी रहती है, तो Postgres Database में उपलब्ध डेटा, लेकिन यूज़र इंटरफ़ेस (यूआई) में नहीं दिख रहा पर जाएं.

यह डेटा Postgres डेटाबेस में उपलब्ध है, लेकिन यूज़र इंटरफ़ेस (यूआई) में नहीं दिख रहा है

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

सबसे पहले, Postgres डेटाबेस में Analytics के नए डेटा की उपलब्धता तय करें.

यह देखने के लिए कि Postgres मास्टर नोड में नया Analytics डेटा उपलब्ध है या नहीं:

  1. हर Postgres सर्वर में लॉग इन करें. इसके बाद, यह पुष्टि करने के लिए कि आप Master Postgres नोड पर हैं, नीचे दिए गए कमांड को चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    
  2. Master Postgres नोड पर, PostgreSQL में लॉग इन करें:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  3. Postgres डेटाबेस में, इस SQL क्वेरी का इस्तेमाल करके देखें कि आपके संगठन के एनवायरमेंट की टेबल मौजूद है या नहीं:
    \d analytics."orgname.envname.fact"
    
  4. नीचे दी गई एसक्यूएल क्वेरी का इस्तेमाल करके देखें कि Postgres डेटाबेस में नया डेटा उपलब्ध है या नहीं:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
    
  5. अगर नया टाइमस्टैंप बहुत पुराना या शून्य है, तो इसका मतलब है कि Postgres डेटाबेस में डेटा उपलब्ध नहीं है. इस समस्या की वजह यह हो सकती है कि डेटा Qpid सर्वर से Postgres डेटाबेस में न भेजा गया हो. Analytics डेटा को Postgres डेटाबेस में नहीं भेजा जा रहा पर जाएं.
  6. अगर मास्टर नोड पर मौजूद Postgres डेटाबेस में नया डेटा उपलब्ध है, तो Edge यूज़र इंटरफ़ेस (यूआई) में डेटा न दिखने की वजह जानने के लिए, नीचे दिया गया तरीका अपनाएं.

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

  1. अपने Chrome ब्राउज़र में डेवलपर टूल चालू करें. इसके बाद, नीचे दिए गए तरीके का इस्तेमाल करके, आंकड़ों के डैशबोर्ड में से किसी एक से एपीआई इस्तेमाल करें:
    1. डेवलपर टूल से नेटवर्क टैब चुनें.
    2. रिकॉर्डिंग शुरू करें.
    3. Analytics डैशबोर्ड फिर से लोड करें.
    4. डेवलपर टूल में बाएं पैनल में, "apiproxy?_optimized...". वाली पंक्ति चुनें.
    5. डेवलपर टूल में दाईं ओर मौजूद पैनल में, "हेडर" टैब चुनें और "यूआरएल का अनुरोध करें" पर ध्यान दें.
  2. यहां डेवलपर टूल से मिलने वाले आउटपुट का नमूना दिया गया है:

    प्रॉक्सी परफ़ॉर्मेंस डैशबोर्ड के लिए डेवलपर टूल के नेटवर्क टैब से, प्रॉक्सी परफ़ॉर्मेंस डैशबोर्ड में इस्तेमाल किए गए एपीआई को दिखाने वाला सैंपल आउटपुट

  3. मैनेजमेंट एपीआई कॉल को सीधे चलाएं और देखें कि आपको नतीजे मिलते हैं या नहीं. प्रॉक्सी परफ़ॉर्मेंस डैशबोर्ड में, दिन टैब के लिए उपलब्ध एपीआई कॉल का सैंपल:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
    
  4. अगर आपको कोई डेटा नहीं मिला है, लेकिन काम का रिस्पॉन्स मिलता है, तो इसका मतलब है कि नेटवर्क कनेक्टिविटी से जुड़ी समस्याओं की वजह से मैनेजमेंट सर्वर, Postgres सर्वर से डेटा फ़ेच नहीं कर पा रहा है.
  5. देखें कि मैनेजमेंट सर्वर से Postgres सर्वर को कनेक्ट किया जा सकता है या नहीं:
    telnet Postgres_server_IP_address 5432
    
  6. अगर आप Postgres सर्वर से कनेक्ट नहीं कर पा रहे हैं, तो देखें कि पोर्ट 5432 पर कोई फ़ायरवॉल प्रतिबंध है या नहीं.
  7. अगर फ़ायरवॉल की पाबंदियां हैं, तो इस वजह से मैनेजमेंट सर्वर, Postgres सर्वर से डेटा नहीं ले पा रहा है.

रिज़ॉल्यूशन

  1. अगर फ़ायरवॉल की पाबंदियां हैं, तो उन्हें हटा दें, ताकि मैनेजमेंट सर्वर Postgres सर्वर के साथ इंटरैक्ट कर सके.
  2. अगर फ़ायरवॉल की पाबंदी नहीं है, तो यह समस्या नेटवर्क में गड़बड़ी की वजह से हो सकती है.
  3. अगर मैनेजमेंट सर्वर पर नेटवर्क से जुड़ी कोई गड़बड़ी थी, तो उसे रीस्टार्ट करने से समस्या ठीक हो सकती है.
  4. नीचे दिए गए निर्देश का इस्तेमाल करके, सभी मैनेजमेंट सर्वर को एक-एक करके रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. देखें कि आपको Edge यूज़र इंटरफ़ेस (यूआई) में Analytics का डेटा दिख रहा है या नहीं.

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

Analytics डेटा पोस्टग्रेज़ डेटाबेस में पुश नहीं किया जा रहा है

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

अगर डेटा को Qpid सर्वर से Postgres डेटाबेस में पुश नहीं किया गया है, जैसा कि Postgres Database में उपलब्ध डेटा में उपलब्ध है, लेकिन यूज़र इंटरफ़ेस (यूआई) में नहीं दिखाया गया है में बताया गया है, तो यह तरीका अपनाएं:

  1. नीचे दिए गए निर्देश का इस्तेमाल करके, देखें कि हर Qpid सर्वर चालू है या नहीं:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. अगर कोई Qpid सर्वर काम नहीं कर रहा है, तो उसे रीस्टार्ट करें. अगर ऐसा नहीं है, तो सीधे चरण #5 पर जाएं.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. कुछ समय इंतज़ार करें और उसके बाद फिर से देखें कि Postgres डेटाबेस में नया डेटा उपलब्ध है या नहीं.
    1. PostgreSQL में लॉग इन करें:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
      
    2. नीचे दी गई SQL क्वेरी चलाकर देखें कि नया डेटा उपलब्ध है या नहीं:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
      
  4. अगर नया डेटा उपलब्ध है, तो नीचे दिया गया तरीका न अपनाएं और 'रिज़ॉल्यूशन' सेक्शन के आखिरी चरण पर जाएं. अगर नया डेटा उपलब्ध नहीं है, तो यह तरीका अपनाएं.
  5. देखें कि Qpid सर्वर की सूचियों से आने वाले मैसेज को Postgres डेटाबेस में भेजा जा रहा है या नहीं.
    1. qpid-stat -q command को लागू करें. साथ ही, msgIn और msgOut कॉलम की वैल्यू की जांच करें.
    2. यहां एक आउटपुट का नमूना दिया गया है जो दिखाता है कि msgIn और msgOut एक जैसे नहीं हैं. इससे पता चलता है कि मैसेज, Qpid सर्वर से Postgres डेटाबेस में नहीं भेजे जा रहे हैं.

  6. अगर msgIn और msgOut कॉलम में जानकारी मेल नहीं खाती है, तो Qpid सर्वर लॉग /opt/apigee/var/log/edge-qpid-server/system.log की जांच करें और देखें कि कोई गड़बड़ी हुई है या नहीं.
  7. आपको गड़बड़ी के मैसेज दिख सकते हैं. जैसे: "शायद PG अब भी नहीं है" या "FATAL: माफ़ करें, बहुत सारे क्लाइंट पहले से मौजूद हैं" जैसा कि यहां दिखाया गया है:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)
    

ऐसा तब हो सकता है, जब Postgres सर्वर बहुत ज़्यादा SQL क्वेरी चला रहा हो या सीपीयू बहुत ज़्यादा चला रहा हो और Qpid सर्वर को रिस्पॉन्स न दे पा रहा हो.

रिज़ॉल्यूशन

  1. नीचे दिखाए गए तरीके के मुताबिक, Postgres Server और PostgreSQL को रीस्टार्ट करें:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. रीस्टार्ट करने से यह पक्का होता है कि पिछली सभी एसक्यूएल क्वेरी रुक गई हैं. साथ ही, इससे Postgres डेटाबेस में नए कनेक्शन जोड़ने की अनुमति मिलनी चाहिए.
  3. Analytics डैशबोर्ड फिर से लोड करें और देखें कि Analytics डेटा दिखता है या नहीं.

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

Analytics का गलत डिप्लॉयमेंट

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

  1. नीचे दिए गए एपीआई कॉल का इस्तेमाल करके, आंकड़ों के डिप्लॉयमेंट स्टेटस की जानकारी पाएं:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
    
  2. एपीआई कॉल के नतीजों से, Qpid और Postgres सर्वर की स्थिति की जांच करें.
    1. अगर Qpid और Postgres सर्वर का स्टेटस "SUCCESS" के तौर पर दिखाया गया है, तो इससे पता चलता है कि Analytics के सर्वर सही तरीके से काम कर रहे हैं. Analytics सर्वर के पुराने यूयूआईडी पर जाएं.
    2. अगर Qpid/Postgres सर्वर का स्टेटस "UNKNOWN" या "FAILURE" के तौर पर दिखता है, तो इसका मतलब है कि इससे जुड़े सर्वर में कोई समस्या है.

      उदाहरण के लिए, नीचे दिया गया उदाहरण, Postgres सर्वर की स्थिति को "UNKNOWN" के रूप में दिखाता है:

      ऐसा तब हो सकता है, जब आंकड़ों को शामिल करने के दौरान किसी तरह की गड़बड़ी हो. यह गड़बड़ी मैनेजमेंट सर्वर के मैसेज को Postgres सर्वर तक पहुंचने से रोकती है.

रिज़ॉल्यूशन

आम तौर पर, इस समस्या को उन सर्वर को रीस्टार्ट करके हल किया जा सकता है जिनमें "FAILURE" या "UNKNOWN" दिखाया गया.

  1. उन सभी सर्वर को रीस्टार्ट करें जिनके आंकड़ों की वायरिंग के स्टेटस में, "FAILURE" या "UNKNOWN" बताया गया है. इसके लिए, यहां दिए गए निर्देश का इस्तेमाल करें:
    /opt/apigee/apigee-service/bin/apigee-service component restart
    
  2. उदाहरण के लिए:
    1. अगर आपको Qpid सर्वर पर समस्या दिखती है, तो Qpid सर्वर को रीस्टार्ट करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
      
    2. अगर आपको Postgres Servers पर समस्या दिखती है, तो मास्टर और स्लेव, दोनों नोड को रीस्टार्ट करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. ऊपर दिए गए उदाहरण में, Postgres सर्वर के लिए "UNKNOWN" मैसेज दिखाया गया है. इसलिए, आपको Master और Blave Postgres के सर्वर को रीस्टार्ट करना होगा:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

Analytics के पुराने सर्वर के यूयूआईडी

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

  1. इस एपीआई कॉल का इस्तेमाल करके, आंकड़ों को कॉन्फ़िगर करें:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
    

    यहां ऊपर दिए गए एपीआई से मिले आउटपुट का एक नमूना दिया गया है:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
    
  2. पक्का करें कि आउटपुट में दी गई जानकारी सही है:
    1. "स्कोप" एलिमेंट में लिस्ट किए गए org-env नाम.
    2. Postgres सर्वर और Qpid सर्वर के UUID.
      • हर Postgres सर्वर नोड पर नीचे दिया गया कमांड चलाकर, Postgres सर्वर यूयूआईडी पाएं:
        curl 0:8084/v1/servers/self/uuid
        
      • Qpid सर्वर यूयूआईडी पाएं. इसके लिए, हर Qpid सर्वर नोड पर यह कमांड दें:
        curl 0:8083/v1/servers/self/uuid
        
  3. अगर सभी जानकारी सही है, तो Analytics डेटा को Postgres डेटाबेस में नहीं भेजा जा रहा है पर जाएं.
  4. अगर Postgres और/या Qpid सर्वर के UUID गलत हैं, तो हो सकता है कि मैनेजमेंट सर्वर पुराने UUID का हवाला दे रहे हों.

रिज़ॉल्यूशन

पुराने यूयूआईडी हटाने और सर्वर के सही यूयूआईडी जोड़ने के लिए, Apigee Edge की सहायता टीम से संपर्क करें.