স্মার্ট হোমের জন্য লগ-ভিত্তিক মেট্রিক্স

১. শুরু করার আগে

যেমনটি আমরা "স্মার্ট হোম কোডল্যাব ডিবাগিং " বিভাগে আলোচনা করেছি, আমরা আপনার স্মার্ট হোম প্রকল্পগুলিতে মেট্রিক্স এবং লগ প্রকাশ করছি। মেট্রিক্স আপনাকে আপনার স্মার্ট হোম অ্যাকশনের কোথায় সমস্যা হচ্ছে তা নির্ধারণ করতে সহায়তা করে এবং এই সমস্যাগুলি সমাধানের জন্য গভীরভাবে অনুসন্ধান করার সময় লগগুলি কার্যকর।

848f483bfcd2997a.png সম্পর্কে

আপনার প্রকল্পে আমরা যে মেট্রিক্সগুলি উপলব্ধ করি তার পাশাপাশি, আপনি Google ক্লাউড থেকে লগ-ভিত্তিক মেট্রিক্স ব্যবহার করে আপনার নিজস্ব মেট্রিক্সও তৈরি করতে পারেন। এটি আপনাকে আপনার লগের মধ্যে নির্দিষ্ট প্যাটার্নগুলি পর্যবেক্ষণ করতে এবং মানের সমস্যাগুলি কার্যকরভাবে ডিবাগ করতে দেয়।

পূর্বশর্ত

তুমি কি শিখবে

  • স্মার্ট হোম ত্রুটি লগ ফিল্টার করার জন্য কার্যকর প্রশ্নগুলি কীভাবে লিখবেন
  • আপনার কোয়েরি থেকে মেট্রিক্স তৈরি করার জন্য লগ-ভিত্তিক মেট্রিক্স কীভাবে তৈরি করবেন
  • পর্যবেক্ষণের জন্য লগ-ভিত্তিক মেট্রিক্স থেকে চার্ট এবং ড্যাশবোর্ড কীভাবে তৈরি করবেন

2. লগ নিয়ে কাজ করা

"স্মার্ট হোম কোডল্যাব ডিবাগিং" বিভাগে আমরা সংক্ষেপে আলোচনা করেছি, লগ নিয়ে কাজ করা আপনার প্রকল্পের সাফল্যের মূল চাবিকাঠি। আপনার লগগুলি পর্যবেক্ষণ এবং বিশ্লেষণ করার জন্য গুগল ক্লাউডে দুর্দান্ত সরঞ্জাম উপলব্ধ। আপনার প্রকল্পে উপলব্ধ সমস্ত লগ অ্যাক্সেস করতে, আপনি লগস এক্সপ্লোরার ব্যবহার করতে পারেন।

লগ অ্যাক্সেস করা হচ্ছে

আপনার লগ অ্যাক্সেস করার প্রথম ধাপ হল গুগল ক্লাউডে সাইন ইন করা এবং আপনার প্রকল্পটি নির্বাচন করা। অপারেশনস > লগিং > লগস এক্সপ্লোরার এর মাধ্যমে সাইড মেনু ব্যবহার করে লগস এক্সপ্লোরারে নেভিগেট করুন। একবার আপনি টুলটি খুললে, আপনি এই দৃশ্যটি দেখতে পাবেন:

78982d8b6d19b827.png সম্পর্কে

লগস এক্সপ্লোরারে দুটি প্রধান বিভাগ রয়েছে: উপরে আপনার প্রশ্নগুলি লেখার জন্য একটি বিভাগ ( কোয়েরি বিল্ডার ), এবং মিলিত ফলাফলগুলি দেখানোর জন্য একটি অঞ্চল ( কোয়েরি ফলাফল )।

গুগলের বিভিন্ন কম্পোনেন্ট ডিফল্টভাবে আপনার প্রোজেক্টে লগ লেখে। আপনার স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা লগগুলি খুঁজে বের করতে এবং সেগুলি নিয়ে কাজ করতে, আপনাকে অবশ্যই কাস্টম কোয়েরি লিখতে হবে।

প্রশ্ন লেখা

লগগুলি একটি রিসোর্স ধরণের অধীনে প্রকল্পগুলিতে প্রকাশিত হয়। প্রতিটি রিসোর্স ধরণের Google এর মধ্যে একটি ভিন্ন প্ল্যাটফর্ম উপস্থাপন করে। স্মার্ট হোম প্ল্যাটফর্ম থেকে আসা লগগুলি assistant_action_project রিসোর্স ধরণের অধীনে আপনার প্রকল্পে উপলব্ধ।

এছাড়াও, সকল লগ তৈরির সময় একটি তীব্রতা স্তর নির্ধারণ করা হয়। স্মার্ট হোম লগের মাধ্যমে আমরা ত্রুটি এবং ব্যতিক্রমগুলি উপস্থাপনকারী লগগুলির জন্য ERROR স্তর এবং অন্য সবকিছুর জন্য DEBUG স্তর ব্যবহার করি।

নিম্নলিখিত উদাহরণে আমরা কেবলমাত্র আমাদের প্ল্যাটফর্ম থেকে আসা ত্রুটিগুলি উপস্থাপনকারী লগগুলি ফিল্টার করার জন্য একটি কোয়েরি লিখব, যা নিম্নরূপ:

753bfe72a9f8e959.png সম্পর্কে

কোয়েরি লেখা শেষ হয়ে গেলে, কোয়েরি শুরু করতে রান কোয়েরি বোতামে ক্লিক করুন। এর ফলে আপনার স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা ত্রুটিগুলি দেখা দেবে:

3ef42da5a6c322e1.png সম্পর্কে

As you see we have a number of errors that came at various times over the last hour. Each line represents a single error log. You can further click on the individual logs and expand nested fields to see the information contained within.

হিস্টোগ্রাম ব্যবহার করা

লগস এক্সপ্লোরার আপনার প্রশ্নের সাথে মেলে এমন লগের সময় বন্টন দেখার জন্য একটি কার্যকর হিস্টোগ্রাম বৈশিষ্ট্য প্রদান করে। হিস্টোগ্রাম সক্রিয় করতে, উপরের ডানদিকের কোণার বোতাম থেকে PAGE LAYOUT এ ক্লিক করুন এবং বৈশিষ্ট্যটি সক্ষম করতে হিস্টোগ্রামটি চেক করুন।

10eaf1d204decf3c.png সম্পর্কে

একবার সক্ষম হয়ে গেলে, আপনি আপনার প্রশ্নের সাথে মিলে যাওয়া লগগুলির একটি বিতরণ দেখতে পাবেন:

dd3410e65a83cf5d.png সম্পর্কে

উপরের ছবিতে আপনি দেখতে পাচ্ছেন, গত এক ঘন্টা ধরে আমাদের বেশ কয়েকটি ত্রুটি খুব কম সংখ্যক ক্লাস্টারে রয়েছে। এগুলি 1:45, 2:00 এবং 2:15 PM-এর দিকে তিনটি ক্লাস্টার তৈরি করে বলে মনে হচ্ছে। হিস্টোগ্রাম আপনাকে কেবল টাইমস্ট্যাম্প মান পরীক্ষা করে এমন প্যাটার্ন সনাক্ত করতে সাহায্য করতে পারে যা দেখা কঠিন।

বর্তমানে আমরা যে কোয়েরিটি ব্যবহার করি তা লগের মধ্যে পার্থক্য করে না এবং আমাদের স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা সমস্ত ত্রুটি দেখায়। অনেক সময় আপনি ত্রুটিগুলির মধ্যে পার্থক্য করতে চাইতে পারেন, উদাহরণস্বরূপ নির্দিষ্ট ডিভাইসের ধরণ বা বৈশিষ্ট্য থেকে উদ্ভূত ত্রুটির ধরণগুলি ট্র্যাক করা। এটি করার জন্য, আমরা উন্নত কোয়েরি লেখার দিকে নজর দেব।

উন্নত প্রশ্নাবলী

যখন আপনি একটি স্মার্ট হোম ইভেন্ট লগ পরিদর্শন করবেন, তখন আপনি বিভিন্ন ক্ষেত্র দেখতে পাবেন যেখান থেকে আপনি তথ্য সংগ্রহ করতে পারেন:

825c57c36800844e.png সম্পর্কে

action

  • trait : ব্যবহারকারীর দ্বারা লক্ষ্য ডিভাইস বৈশিষ্ট্য (উদাহরণস্বরূপ, অনঅফ, স্টার্টস্টপ, উজ্জ্বলতা)
  • actionType : বৈশিষ্ট্যের সূক্ষ্ম দানা অবস্থা (উদাহরণস্বরূপ, চালু, বন্ধ, বিরতি, বন্ধ, পুনঃসূচনা)

device

  • deviceType : ব্যবহারকারীর দ্বারা লক্ষ্য ডিভাইসের ধরণ (উদাহরণস্বরূপ, লাইট, সুইচ, ওয়াশার)

status

  • isSuccess : কর্মের ফলাফল সফল বলে বিবেচিত হবে কিনা (সত্য/মিথ্যা)
  • statusType : অ্যাকশন ফলাফলের জন্য স্ট্যাটাস কোড (যদি ব্যর্থ হয় তবে একটি ত্রুটি কোড নির্দেশ করে)
  • externalDebugString : অ্যাকশনের জন্য ডিবাগ স্ট্রিং (ত্রুটির বিস্তারিত বর্ণনা দেয়)

অন্যান্য ক্ষেত্র

এছাড়াও আরও কিছু ক্ষেত্র রয়েছে যেখান থেকে আপনি তথ্য পেতে পারেন:

  • requestId : অনুরোধের সাথে যুক্ত একটি অনন্য আইডি (Google দ্বারা তৈরি)
  • executionType : অনুরোধ দ্বারা ব্যবহৃত পথ (ক্লাউড নাকি স্থানীয় তা নির্দেশ করে)
  • latencyMsec : গুগল সার্ভারে অনুরোধের জন্য অনুভূত লেটেন্সি (msec-এ)
  • locale : কোন ভাষা/অঞ্চল জোড়া থেকে অনুরোধটি পাঠানো হয়েছে (উদাহরণস্বরূপ, en-US, fr-FR)

উপরের তালিকা থেকে বৈশিষ্ট্য ক্ষেত্রটি ব্যবহার করে, আমরা আমাদের কোয়েরিটি পরিবর্তন করব যাতে কেবলমাত্র OnOff বৈশিষ্ট্য থেকে আসা ত্রুটিগুলি নিম্নরূপ অন্তর্ভুক্ত করা যায়:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

আমাদের আপডেট করা কোয়েরি চালানোর পর, সিস্টেমটি লগগুলি সনাক্ত করে এবং আমাদের সংশ্লিষ্ট ফলাফল দেখায়:

76176d7a41962341.png সম্পর্কে

এখন পর্যন্ত আমরা আমাদের সমস্ত প্রশ্ন ম্যানুয়ালি করেছি। ত্রুটির অবস্থা দ্রুত পরীক্ষা করার এটি একটি দুর্দান্ত উপায়, তবে সময়ের সাথে সাথে ত্রুটির ধরণগুলির পরিবর্তনগুলি পর্যবেক্ষণ করার জন্য এটি খুব বেশি নয়। এই প্রবাহটি স্বয়ংক্রিয় করতে এবং দীর্ঘ সময়কাল থেকে ডেটা ক্যাপচার করতে আমরা লগ-ভিত্তিক মেট্রিক্স তৈরি করব।

৩. লগ-ভিত্তিক মেট্রিক্স

সময়ের সাথে সাথে আপনার প্রশ্নের সাথে মেলে এমন লগের সংখ্যা গণনা করার জন্য আপনি লগ-ভিত্তিক মেট্রিক্স ব্যবহার করতে পারেন। এটি আপনাকে প্যাটার্ন এবং আপনার লগ জুড়ে দেখতে এবং অন্তর্নিহিত সমস্যাগুলির উপর ভাল অন্তর্দৃষ্টি প্রদান করবে।

লগ-ভিত্তিক মেট্রিক তৈরি করা

লগ-ভিত্তিক মেট্রিক তৈরি করতে, Operations > Logging > Log-based Metrics এ যান। এটি আপনাকে আপনার প্রকল্পে ইতিমধ্যে উপলব্ধ লগ-ভিত্তিক মেট্রিক্সের তালিকা দেখাবে। একবার আপনি CREATE METRIC বোতামে ক্লিক করলে, আপনাকে লগ-ভিত্তিক মেট্রিক তৈরির স্ক্রিনটি দেখানো হবে:

296af6e7d8dcf6cf.png সম্পর্কে

দুটি প্রাথমিক মেট্রিক প্রকার রয়েছে: একটি কাউন্টার মেট্রিক আপনার প্রশ্নের সাথে মেলে এমন লগের সংখ্যা গণনা করে। একটি বিতরণ মেট্রিক অন্তর্নিহিত বিতরণের উপর নজর রাখে এবং গড়, মধ্যমা এবং 95 তম শতাংশের মতো পরিসংখ্যানগত ক্রিয়াকলাপগুলিকে অনুমতি দেয়।

নিচে স্ক্রোল করলে আপনি একটি ফিল্টার বিভাগ দেখতে পাবেন যেখানে আপনি আপনার কোয়েরি টাইপ করতে পারবেন।

f7f2093fa1bce2ac.png সম্পর্কে

আমরা পূর্ববর্তী বিভাগ থেকে আমাদের কোয়েরিটি বিল্ড ফিল্টার টেক্সট এরিয়ায় পেস্ট করব।

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

আপনার ফিল্টারের সাথে মিলে যাওয়া অতীতের লগগুলির একটি দ্রুত দৃশ্য দেখতে আপনি "PREVIEW LOGS" বোতামটিও ক্লিক করতে পারেন। একবার আপনার কাজ শেষ হয়ে গেলে, আপনি "METRIC তৈরি করুন" বোতামে ক্লিক করতে পারেন এবং পরবর্তী বিভাগে যেতে পারেন।

লগ-ভিত্তিক মেট্রিক ডেটা দেখা

এখন যেহেতু আমাদের লগ-ভিত্তিক মেট্রিক তৈরি করা হয়েছে, এটি লগ-ভিত্তিক মেট্রিক্স পৃষ্ঠার ব্যবহারকারী-সংজ্ঞায়িত মেট্রিক্স বিভাগে উপলব্ধ হবে।

1b2c88c18533fbcd.png সম্পর্কে

লগ-ভিত্তিক মেট্রিকের সাথে সম্পর্কিত মেনু (৩টি বিন্দু) থেকে, লগ-ভিত্তিক মেট্রিকে সংগৃহীত ডেটা দেখতে মেট্রিক্স এক্সপ্লোরারে দেখুন নির্বাচন করুন:

54a836fdc3a666a3.png সম্পর্কে

একবার আমাদের একটি নতুন ত্রুটি হলে, এটি আমাদের লগ-ভিত্তিক মেট্রিক দ্বারা ক্যাপচার করা হবে এবং মেট্রিক্স এক্সপ্লোরারের চার্ট উইন্ডোতে প্রদর্শিত হবে।

কাস্টম ড্যাশবোর্ডের মাধ্যমে পর্যবেক্ষণ

একবার আমরা দেখতে পাবো যে আমাদের নতুন লগ-ভিত্তিক মেট্রিকটি উদ্দেশ্য অনুসারে কাজ করছে, তাহলে এই চার্ট ভিউটি একটি কাস্টম ড্যাশবোর্ডে সংরক্ষণ করার সময় এসেছে। এর জন্য, মেট্রিক্স এক্সপ্লোরারের উপরের ডানদিকে কোণায় "চার্ট সংরক্ষণ করুন" বোতামে ক্লিক করুন। এটি চার্টটির নামকরণ এবং আপনি যে ড্যাশবোর্ডে সংরক্ষণ করতে চান তা নির্বাচন করার জন্য একটি প্রম্পট আনবে:

52329085f841782e.png সম্পর্কে

একবার আমরা চার্টটি ড্যাশবোর্ডে সংরক্ষণ করলে, আমরা সেখান থেকে সহজেই এটি অ্যাক্সেস করতে পারব। আপনার প্রকল্পে উপলব্ধ ড্যাশবোর্ডের তালিকা অ্যাক্সেস করতে, অপারেশনস > মনিটরিং > ড্যাশবোর্ডে নেভিগেট করুন।

44961e7cb3663341.png সম্পর্কে

আমরা আমাদের চার্টটি "Codelab Dashboard" নামক একটি ড্যাশবোর্ডে সংরক্ষণ করেছি। এটি খুললে নিম্নলিখিত দৃশ্যটি প্রদর্শিত হবে:

f7e025c27f30f996.png সম্পর্কে

আপনি দেখতে পাচ্ছেন যে লগ-ভিত্তিক মেট্রিক প্রতিনিধিত্বকারী চার্টটি এখানে নতুন সংগৃহীত ডেটা সহ প্রদর্শিত হচ্ছে। স্মার্ট হোম লগগুলি রিয়েলটাইমে আপনার প্রকল্পে প্রকাশিত হয়। যখন একটি নতুন লগ উপলব্ধ হয়, তখন আপনি তাৎক্ষণিকভাবে আপনার লগ-ভিত্তিক মেট্রিক দ্বারা গণনা করা দেখতে পাবেন।

৪. অভিনন্দন

674c4f4392e98c1.png সম্পর্কে

অভিনন্দন! আপনি সফলভাবে শিখেছেন কিভাবে আপনার প্রশ্নগুলিকে লগ-ভিত্তিক মেট্রিক্সে রূপান্তর করতে হয় এবং পর্যবেক্ষণের জন্য কাস্টম ড্যাশবোর্ডে সংরক্ষণ করতে হয়।

পরবর্তী পদক্ষেপ

এই কোডল্যাবটি তৈরি করে, নিম্নলিখিত অনুশীলনগুলি চেষ্টা করে দেখুন এবং অতিরিক্ত সংস্থানগুলি অন্বেষণ করুন:

  • ল্যাটেন্সির মতো সংখ্যাসূচক ক্ষেত্রগুলিতে লগ-ভিত্তিক মেট্রিক্স তৈরি করতে Creating Distribution Metrics নির্দেশিকাটি দেখুন।
  • লগ-ভিত্তিক মেট্রিক্সের জন্য আপনি যে জটিল ফিল্টারগুলি ব্যবহার করতে পারেন তার কিছু দেখতে Google Cloud দ্বারা প্রদত্ত নমুনা কোয়েরি লাইব্রেরি পর্যালোচনা করুন।