ফাইলে অ্যানালিটিক্স ডেটা লেখা

ডিফল্ট হিসেবে, মেসেজ প্রসেসর দ্বারা সংগ্রহ করা অ্যানালিটিক্স ডেটা প্রসেস করার জন্য Qpid এবং Postgres-এ আপলোড করা হয়। তারপরে, আপনি Edge UI-তে অ্যানালিটিক্স ডেটা দেখতে পারবেন।

অথবা, আপনি ডিস্কে অ্যানালিটিক্স ডেটা লেখার জন্য মেসেজ প্রসেসর কনফিগার করতে পারেন। তারপরে, আপনি সেই ডেটা বিশ্লেষণ করার জন্য নিজের অ্যানালিটিক্স সিস্টেমে আপলোড করতে পারবেন। যেমন, আপনি 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 Message Processor কনফিগারেশন প্রপার্টির সেটিংয়ের উপর ভিত্তি করে নিম্নলিখিত ডিরেক্টরিগুলির মধ্যে যেকোনও একটিতে সরিয়ে দেয়:

  • uploadToCloud = false: ফাইল /opt/apigee/var/log/edge-message-processor/ax/staging-এ সরানো হয়েছে
  • uploadToCloud = true: (ডিফল্ট): ফাইল /opt/apigee/var/log/edge-message-processor/ax/failed-এ সরানো হয়

/staging বা /failed ডিরেক্টরি থেকে ডেটা আনজিপ করে অ্যানালিটিক্স ডেটা ফাইল পান।

কনফিগারেশন প্রপার্টি

ডিস্কে অ্যানালিটিক্স ডেটা লেখার জন্য মেসেজ প্রসেসর কনফিগার করতে নিম্নলিখিত প্রপার্টি ব্যবহার করুন। এইসব প্রপার্টি ঐচ্ছিক:

প্রপার্টি বিবরণ
conf_analytics_analytics.saveToDisk

ডিস্ক ফাইলে অ্যানালিটিক্স ডেটা লেখার জন্য মেসেজ প্রসেসর কনফিগার করতে true হিসেবে সেট করুন।

ডিফল্ট ভ্যালু হল false।

conf_analytics_analytics.sendToQueue

Message Processor-কে Qpid/Postgres-এ ডেটা আপলোড করার জন্য কনফিগার করতে true-এ সেট করুন। Qpid/Postgres-এ অ্যানালিটিক্স ডেটা লেখা বন্ধ করতে 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 অ্যানালিটিক্স গ্রুপের জন্য 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

    ডিফল্ট হিসেবে, অ্যানালিটিক্স গ্রুপের নাম হল axgroup-001। Edge ইনস্টলেশনের জন্য কনফিগারেশন ফাইলে, আপনি AXGROUP প্রপার্টি ব্যবহার করে অ্যানালিটিক্স গ্রুপের নাম সেট করতে পারবেন। অ্যানালিটিক্স গ্রুপের নাম সম্পর্কে নিশ্চিত না হলে, এটি দেখতে ম্যানেজমেন্ট সার্ভার নোডে নিম্নলিখিত কমান্ডটি রান করুন:

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

    এই কমান্ডটি name ফিল্ডে অ্যানালিটিক্স গ্রুপের নাম রিটার্ন করে।

  6. মেসেজ প্রসেসর রিস্টার্ট করুন:

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

    রিস্টার্ট করার পরে, মেসেজ প্রসেসর ডেটা ফাইলে অ্যানালিটিক্স ডেটা লেখে।

  7. সব মেসেজ প্রসেসরের জন্য এই ধাপগুলি আবার করুন।