किसी फ़ाइल में आंकड़े का डेटा लिखना

डिफ़ॉल्ट रूप से, मैसेज प्रोसेसर से इकट्ठा किया गया आंकड़ों का डेटा, प्रोसेस करने के लिए Qpid और Postgres पर अपलोड किया जाता है. इसके बाद, Edge के यूज़र इंटरफ़ेस (यूआई) में Analytics का डेटा देखा जा सकता है.

इसके अलावा, मैसेज प्रोसेसर को कॉन्फ़िगर करके, डिस्क में आंकड़े वाला डेटा सेव किया जा सकता है. इसके बाद, उस डेटा को विश्लेषण के लिए अपने Analytics सिस्टम में अपलोड किया जा सकता है. उदाहरण के लिए, डेटा को Google Cloud BigQuery में अपलोड किया जा सकता है. इसके बाद, BigQuery और TensorFlow की बेहतरीन क्वेरी और मशीन लर्निंग की सुविधाओं का फ़ायदा लिया जा सकता है. इससे आपको अपने डेटा का विश्लेषण करने में मदद मिलेगी.

आपके पास दोनों विकल्पों को चुनने की सुविधा भी है. इसका मतलब है कि आंकड़ों का डेटा, Qpid/Postgres पर अपलोड किया जा सकता है. साथ ही, डेटा को डिस्क में सेव किया जा सकता है.

फ़ाइलों के नाम और इनके सेव होने की जगह

डिफ़ॉल्ट रूप से, डिस्क फ़ाइलों में आंकड़े का डेटा लिखने की सुविधा चालू करने पर, फ़ाइलें इस डायरेक्ट्री में लिखी जाती हैं:

/opt/apigee/var/log/edge-message-processor/ax/tmp

Edge, डेटा फ़ाइलों के लिए /tmp में एक नई डायरेक्ट्री बनाता है. यह डायरेक्ट्री एक मिनट के अंतराल पर बनती है. डायरेक्ट्री के नाम का फ़ॉर्मैट:

org~env~yyyyMMddhhmmss

उदाहरण के लिए:

myorg~prod~20190909163500
myorg~prod~20190909163600

हर डायरेक्ट्री में एक .gz फ़ाइल होती है. इसमें उस समयावधि की अलग-अलग डेटा फ़ाइलें होती हैं. .gz फ़ाइल के नाम का फ़ॉर्मैट यह है:

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Edge, डायरेक्ट्री और उसमें मौजूद .gz फ़ाइल को नियमित अंतराल पर /tmp से इनमें से किसी एक डायरेक्ट्री में ले जाता है. ऐसा uploadToCloud मैसेज प्रोसेसर की कॉन्फ़िगरेशन प्रॉपर्टी की सेटिंग के आधार पर किया जाता है:

  • uploadToCloud = false: फ़ाइलें, /opt/apigee/var/log/edge-message-processor/ax/staging में भेजी गईं
  • uploadToCloud = true: (डिफ़ॉल्ट): फ़ाइलें /opt/apigee/var/log/edge-message-processor/ax/failed में ट्रांसफ़र हो जाती हैं

एनालिटिक्स डेटा फ़ाइलें पाने के लिए, /staging या /failed डायरेक्ट्री से डेटा को अनज़िप करें.

कॉन्फ़िगरेशन प्रॉपर्टी

मैसेज प्रोसेसर को कॉन्फ़िगर करने के लिए, इन प्रॉपर्टी का इस्तेमाल करें, ताकि वह डिस्क में Analytics डेटा सेव कर सके. इनमें से कोई भी प्रॉपर्टी ज़रूरी नहीं है:

प्रॉपर्टी ब्यौरा
conf_analytics_analytics.saveToDisk

मैसेज प्रोसेसर को डिस्क फ़ाइलों में Analytics डेटा लिखने के लिए कॉन्फ़िगर करने के लिए, true पर सेट करें.

डिफ़ॉल्ट वैल्यूfalse है

conf_analytics_analytics.sendToQueue

मैसेज प्रोसेसर को Qpid/Postgres पर डेटा अपलोड करने के लिए कॉन्फ़िगर करने के लिए, इसे true पर सेट करें. Qpid/Postgres में Analytics डेटा को लिखने की सुविधा बंद करने के लिए, इसे false पर सेट करें.

डिफ़ॉल्ट वैल्यूtrue है

conf_analytics_analytics.baseDataDirectoryPath

यह उस बेस पाथ के बारे में बताता है जहां आंकड़ों की डेटा फ़ाइलें लिखी जाती हैं.

डिफ़ॉल्ट वैल्यू /opt/apigee/var/log/edge-message-processor/ax. है

conf_analytics_analytics.allocatedDiskSpaceInMBytes

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

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

conf_analytics_analytics.uploadToCloud

इससे यह कंट्रोल किया जाता है कि आंकड़ों वाली फ़ाइलें कहां सेव होंगी.

  • false: फ़ाइलें /opt/apigee/var/log/edge-message-processor/ax/staging में भेजी गईं
  • true (डिफ़ॉल्ट): फ़ाइलें /opt/apigee/var/log/edge-message-processor/ax/failed में ट्रांसफ़र हो जाती हैं

ध्यान दें: भले ही इस प्रॉपर्टी को uploadToCloud कहा जाता है, लेकिन क्लाउड पर कोई डेटा अपलोड नहीं किया जाता. सभी आंकड़ों का डेटा, आपके इंस्टॉल किए गए ऐप्लिकेशन में ही सेव रहता है.

इन प्रॉपर्टी को सेट करने के लिए:

  1. message-processor.properties फ़ाइल को किसी एडिटर में खोलें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं:

    vi /opt/apigee/customer/application/message-processor.properties
  2. अपनी पसंद के मुताबिक प्रॉपर्टी सेट करें:

    # Enable writing analytics data to disk.
    conf_analytics_analytics.saveToDisk=true
    # Disable writing analytics data to Qpid/Postgres.
    conf_analytics_analytics.sendToQueue=false
    
    # Specify base directory for analytics data files.
    conf_analytics_analytics.baseDataDirectoryPath=/opt/apigee/var/smg
    
    # Set the disk space available for analytics files.
    conf_analytics_analytics.allocatedDiskSpaceInMBytes=3072
    # Move final analytics data to files to the /staging directory.
    conf_analytics_analytics.uploadToCloud=false
  3. बदलावों को सेव करें.
  4. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक "apigee" उपयोगकर्ता के पास हो:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. axgroup-001 Analytics ग्रुप के लिए, consumer-type प्रॉपर्टी की वैल्यू को ax पर सेट करें:

    curl -X POST -H "Content-Type:application/json" \
    "http://ms-ip:8080/v1/analytics/groups/ax/axgroup-001/properties?propName=consumer-type&propValue=ax" \
    -u sysAdminEmail:sysAdminPWord

    डिफ़ॉल्ट रूप से, Analytics ग्रुप का नाम axgroup-001 होता है. Edge इंस्टॉलेशन की कॉन्फ़िगरेशन फ़ाइल में, AXGROUP प्रॉपर्टी का इस्तेमाल करके, Analytics ग्रुप का नाम सेट किया जा सकता है. अगर आपको Analytics ग्रुप के नाम नहीं पता हैं, तो उन्हें देखने के लिए मैनेजमेंट सर्वर नोड पर यह कमांड चलाएं:

    apigee-adminapi.sh analytics groups list \
      --admin sysAdminEmail --pwd sysAdminPword --host localhost

    यह कमांड, name फ़ील्ड में Analytics ग्रुप का नाम दिखाता है.

  6. मैसेज प्रोसेसर को रीस्टार्ट करें:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    रीस्टार्ट करने के बाद, मैसेज प्रोसेसर, डेटा फ़ाइलों में Analytics डेटा को सेव करता है.

  7. सभी मैसेज प्रोसेसर के लिए, यह तरीका दोहराएं.