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

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

पर क्लिक करें.

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

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

No traffic in the selected date range

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

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

संभावित कारण

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

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

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

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

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

रिज़ॉल्यूशन

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

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

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

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

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

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

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

  1. अपने Chrome ब्राउज़र में डेवलपर टूल चालू करें. इसके बाद, नीचे दिया गया तरीका अपनाकर, किसी एक Analytics डैशबोर्ड से इस्तेमाल किया गया एपीआई पाएं:
    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 का डेटा, Postgres डेटाबेस में पुश नहीं किया जा रहा है

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

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

  1. नीचे दिए गए निर्देश को लागू करके देखें कि Qpid सर्वर चालू है या नहीं:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. अगर कोई Qpid सर्वर काम नहीं कर रहा है, तो उसे रीस्टार्ट करें. अगर ऐसा नहीं है, तो सीधे पांचवें चरण पर जाएं.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. कुछ समय इंतज़ार करें. इसके बाद, फिर से देखें कि Postgres डेटाबेस में नया डेटा उपलब्ध है या नहीं.
    1. PostgreSQL में लॉग इन करें:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. यह देखने के लिए कि नया डेटा उपलब्ध है या नहीं, नीचे दी गई एसक्यूएल क्वेरी चलाएं:
      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: sorry, too many clients already". इन्हें नीचे दिए गए चित्र में दिखाया गया है:
    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 Server बहुत ज़्यादा SQL क्वेरी चला रहा हो या सीपीयू ज़्यादा चल रहा हो. इसलिए, वह Qpid Server को जवाब नहीं दे पा रहा हो.

रिज़ॉल्यूशन

  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. नीचे दिए गए एपीआई कॉल का इस्तेमाल करके, Analytics डिप्लॉयमेंट का स्टेटस पाएं:
    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" के तौर पर दिखाया गया है:

      ऐसा तब हो सकता है, जब Analytics को चालू करने के दौरान कोई गड़बड़ी हुई हो. इस वजह से, मैनेजमेंट सर्वर से Postgres सर्वर तक मैसेज नहीं पहुंच पाते.

रिज़ॉल्यूशन

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

  1. उन सभी सर्वर को रीस्टार्ट करें जिनके लिए, Analytics के साथ इंटिग्रेट करने की स्थिति "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 सर्वर पर समस्या दिखती है, तो मास्टर और स्लेव, दोनों Postgres सर्वर नोड को रीस्टार्ट करें:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. ऊपर दिए गए उदाहरण में, Postgres सर्वर के लिए "UNKNOWN" मैसेज दिखाया गया है. इसलिए, आपको मास्टर और स्लेव, दोनों Postgres सर्वर को रीस्टार्ट करना होगा:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

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

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

  1. नीचे दिए गए एपीआई कॉल का इस्तेमाल करके, Analytics कॉन्फ़िगरेशन पाएं:
    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. "scopes" एलिमेंट में org-env के नाम दिए गए हैं.
    2. Postgres सर्वर और Qpid सर्वर के यूयूआईडी.
      • Postgres सर्वर के यूयूआईडी पाने के लिए, Postgres सर्वर के हर नोड पर यह कमांड चलाएं:
        curl 0:8084/v1/servers/self/uuid
      • Qpid सर्वर के यूयूआईडी पाने के लिए, Qpid सर्वर के हर नोड पर यह कमांड चलाएं:
        curl 0:8083/v1/servers/self/uuid
  3. अगर सभी जानकारी सही है, तो Analytics का डेटा Postgres डेटाबेस में नहीं भेजा जा रहा है पर जाएं.
  4. अगर Postgres और/या Qpid सर्वर के यूयूआईडी गलत हैं, तो ऐसा हो सकता है कि मैनेजमेंट सर्वर, पुराने यूयूआईडी का इस्तेमाल कर रहे हों.

रिज़ॉल्यूशन

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