Qpidd डेड लेटर सूची में अटके हुए Analytics डेटा

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

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

Edge के यूज़र इंटरफ़ेस (यूआई) में Analytics डेटा मौजूद नहीं है, क्योंकि Qpidd सर्वर, Analytics मैसेज को PostgreSQL को ट्रांसफ़र नहीं कर रहा है. Edge में, edge-qpid-server कॉम्पोनेंट, Qpidd सर्वर से जुड़ा होता है.

Qpidd, हर ऐनलिटिक्स ग्रुप के लिए दो सूची बनाकर रखता है:

  • ax-q-axgroup001-consumer-group-001

    इस सूची में, मैसेज प्रोसेसर और राऊटर से पुश किए गए आंकड़ों की जानकारी वाले मैसेज शामिल होते हैं. edge-qpid-server, मैसेज यहां से लाए जाते हैं. यह मैसेज को पार्स करके, उन्हें PostgreSQL में डालता है. मैसेज प्रोसेस हो जाने के बाद, उन्हें सूची से हटा दिया जाता है.

  • ax-q-axgroup001-consumer-group-001-dl

    यह सूची पूरी तरह से बंद हो चुकी सूची है. यह उन मैसेज के लिए डेस्टिनेशन के तौर पर काम करता है जिन्हें edge-qpid-server प्रोसेस नहीं कर पाया. इसलिए, अब वह उन मैसेज को पाना नहीं चाहता. आम तौर पर, डिलीवरी की ज़्यादा से ज़्यादा संख्या पार होने पर या PostgreSQL ने रनटाइम की गड़बड़ियों की वजह से, नया डेटा शामिल करने का अनुरोध अस्वीकार कर दिया.

गड़बड़ी संदेश

इसकी असल वजह, edge-qpid-server कॉम्पोनेंट से रनटाइम की कई गड़बड़ियां हो सकती हैं. आम तौर पर, अगर edge-qpid-server को PostgreSQL से रनटाइम की गड़बड़ी मिलती है, तो पहले से मौजूद न होने पर, यह खराब अक्षर वाली सूची बना देता है. इसके बाद, यह नीचे दिया गया मैसेज भेजता है:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

संभावित वजहें

वजह ब्यौरा समस्या हल करने के निर्देश इनके लिए लागू होते हैं
Qpidd के खत्म हो चुके अक्षर की सूची में मैसेज अटक गए हैं edge-qpid-server, Qpidd ब्रोकर से पढ़े गए मैसेज नहीं समझ सका या PostgreSQL को मैसेज नहीं भेज सका. Edge के प्राइवेट क्लाउड उपयोगकर्ता

डायग्नोसिस के सामान्य चरण

Qpidd सूची के आंकड़े देखने के लिए निम्न कमांड चलाएं:

qpid-stat -q

आउटपुट, ब्रोकर के साथ रजिस्टर की गई सूचियों का सेट दिखाता है. अगर सूची में नाम के आखिर में "-dl" है में मैसेज पॉप्यूलेट हो जाते हैं, फिर डेड लेटर की सूची में मैसेज अटक जाते हैं.

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

कारण: संदेश qpidd के निष्क्रिय अक्षर सूची में अटक गए हैं

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

इन स्थितियों में ऐसा हो सकता है:

  1. इस दौरान, PostgreSQL के सिस्टम को अपग्रेड किया गया था.
  2. नेटवर्क की समस्याओं की वजह से, PostgreSQL में कुछ समय के लिए समस्या थी.
  3. edge-qpid-server ने PostgreSQL को मैसेज भेजने की कोशिश की, लेकिन PostgreSQL ने रनटाइम की गड़बड़ी दिखाई.

रिज़ॉल्यूशन

  1. गड़बड़ी का आसानी से पता लगाने का तरीका लेख में दी गई सूचियों के नाम नोट कर लें. उदाहरण के लिए:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. कोई इंटरैक्टिव qpidप्रॉम्प्ट डालने के लिए, qpid-tool निर्देश दें:

    qpid-tool

    इस मैसेज से ये नतीजे मिलते हैं:

    Management Tool for QPID
    qpid:
  3. सक्रिय ब्रोकर की सूची पाने के लिए, list broker चलाएं:

    list broker

    इस मैसेज से ये नतीजे मिलते हैं:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    जहां ID कॉलम से ब्रोकर का आईडी पता चलता है.

  4. ब्रोकर का आईडी नोट कर लें. उदाहरण में यह 125 है.

  5. मैसेज को बंद अक्षर की सूची से वापस असली सूची में ले जाने के लिए, नीचे दिया गया निर्देश चलाएं:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    इस मैसेज से ये नतीजे मिलते हैं:

    OK (0) - {}

    अगर कोई आउटपुट नहीं मिलता, तो कुछ करने की ज़रूरत नहीं थी. इसका मतलब है कि किसी मैसेज को दूसरी जगह नहीं ले जाना है. अगर आपको OK(0) नहीं दिखता है, तो आपको Apigee Edge की सहायता टीम से संपर्क करना चाहिए.

  6. Qpid-टूल टर्मिनल से बाहर निकलें.

    quit
  7. 5 मिनट इंतज़ार करें और फिर सामान्य विश्लेषण चरणों से विश्लेषण के चरणों को दोबारा चलाएं. पुष्टि करें कि असली सूची में मौजूद मैसेज प्रोसेस किए जा रहे हैं. साथ ही, यह भी पक्का करें कि मृत अक्षर वाले मैसेज की संख्या शून्य ही रहे.

अगर इसके बाद भी समस्या बनी रहती है, तो अगले सेक्शन पर जाएं.

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

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

  • Qpidd लॉग: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Postgresql के लॉग: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Edge-qpid-सर्वर लॉग: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Edge-postgres-सर्वर लॉग:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Qpidd सूची के आंकड़े:

    qpid-stat -q
  • नीचे दिए गए कर्ल निर्देश से मिला Analytics ग्रुप:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax