1. আপনি শুরু করার আগে
আমরা যেমন স্মার্ট হোম কোডল্যাব ডিবাগিং এ কভার করেছি, আমরা আপনার স্মার্ট হোম প্রোজেক্টে মেট্রিক্স এবং লগ প্রকাশ করছি। আপনার স্মার্ট হোম অ্যাকশনে কোথায় সমস্যা হচ্ছে তা নির্ধারণ করতে মেট্রিক্স আপনাকে সাহায্য করে এবং এই সমস্যাগুলি সমাধান করার জন্য গভীর ডুব দেওয়ার সময় লগগুলি দরকারী।
আমরা আপনার প্রকল্পে যে মেট্রিকগুলি উপলব্ধ করি তার পাশাপাশি, আপনি Google ক্লাউড থেকে লগ-ভিত্তিক মেট্রিক্স ব্যবহার করে আপনার নিজস্ব মেট্রিক্সও তৈরি করতে পারেন৷ এটি আপনাকে আপনার লগগুলির মধ্যে নির্দিষ্ট প্যাটার্নগুলি নিরীক্ষণ করতে এবং গুণমানের সমস্যাগুলি কার্যকরভাবে ডিবাগ করতে দেয়৷
পূর্বশর্ত
- স্মার্ট হোম ইন্টিগ্রেশনের সাথে একটি কাজ করুন
- স্মার্ট হোম কোডল্যাব ডিবাগিং সম্পূর্ণ করুন
আপনি কি শিখবেন
- স্মার্ট হোম ত্রুটির লগগুলি ফিল্টার করার জন্য কীভাবে কার্যকর প্রশ্নগুলি লিখবেন৷
- কিভাবে লগ-ভিত্তিক মেট্রিক্স তৈরি করতে হয় আপনার প্রশ্ন থেকে মেট্রিক্স তৈরি করতে
- নিরীক্ষণের জন্য লগ-ভিত্তিক মেট্রিক্স থেকে চার্ট এবং ড্যাশবোর্ড কীভাবে তৈরি করবেন
2. লগ সঙ্গে কাজ
স্মার্ট হোম কোডল্যাব ডিবাগিং -এ আমরা সংক্ষিপ্তভাবে কভার করেছি, লগের সাথে কাজ করা আপনার প্রজেক্টের সাফল্যের চাবিকাঠি। আপনার লগগুলি নিরীক্ষণ এবং বিশ্লেষণ করার জন্য Google ক্লাউডে দুর্দান্ত সরঞ্জাম উপলব্ধ রয়েছে৷ আপনার প্রকল্পে উপলব্ধ সমস্ত লগ অ্যাক্সেস করতে, আপনি লগ এক্সপ্লোরার ব্যবহার করতে পারেন।
লগ অ্যাক্সেস করা হচ্ছে
আপনার লগগুলি অ্যাক্সেস করার প্রথম ধাপ হল Google ক্লাউডে লগ ইন করা এবং আপনার প্রকল্পটি বেছে নেওয়া৷ সাইড মেনু ব্যবহার করে লগ এক্সপ্লোরার -এ নেভিগেট করুন, অপারেশনস > লগিং > লগ এক্সপ্লোরার দিয়ে। একবার আপনি টুলটি খুললে, আপনার এই দৃশ্যটি দেখতে হবে:
লগ এক্সপ্লোরার দুটি প্রধান বিভাগ নিয়ে গঠিত: আপনার প্রশ্নগুলি উপরে লেখার জন্য একটি বিভাগ ( ক্যোয়ারী নির্মাতা ), এবং মিল ফলাফল দেখানোর জন্য একটি এলাকা ( কোয়েরি ফলাফল )।
Google জুড়ে অনেকগুলি বিভিন্ন উপাদান ডিফল্টরূপে আপনার প্রকল্পে লগ লেখে। আপনার স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা লগগুলি খুঁজে পেতে এবং কাজ করার জন্য, আপনাকে অবশ্যই কাস্টম কোয়েরি লিখতে হবে।
প্রশ্ন লেখা
লগ একটি সম্পদ ধরনের অধীনে প্রকল্পে প্রকাশ করা হয়. প্রতিটি সম্পদের ধরন Google-এর মধ্যে একটি ভিন্ন প্ল্যাটফর্মের প্রতিনিধিত্ব করে। Smart Home প্ল্যাটফর্ম থেকে আসা লগগুলি assistant_action_project
রিসোর্স টাইপের অধীনে আপনার প্রোজেক্টে উপলব্ধ।
এছাড়াও, সমস্ত লগ সৃষ্টির সময় একটি তীব্রতা স্তর বরাদ্দ করা হয়। স্মার্ট হোম লগগুলির সাথে আমরা ত্রুটি এবং ব্যতিক্রমগুলি প্রতিনিধিত্বকারী লগগুলির জন্য ERROR
স্তর এবং অন্য সবকিছুর জন্য DEBUG
স্তর ব্যবহার করি৷
নিম্নলিখিত উদাহরণে আমরা শুধুমাত্র আমাদের প্ল্যাটফর্ম থেকে আসা ফিল্টার লগগুলির জন্য একটি প্রশ্ন লিখব যা নিম্নরূপ ত্রুটিগুলিকে উপস্থাপন করে:
একবার আপনি ক্যোয়ারী লেখা শেষ করলে, ক্যোয়ারী শুরু করতে রান ক্যোয়ারী বোতামে ক্লিক করুন। এটি আপনার স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা ত্রুটিগুলি আনতে হবে:
আপনি দেখতে পাচ্ছেন যে আমাদের বেশ কয়েকটি ত্রুটি রয়েছে যা গত ঘন্টায় বিভিন্ন সময়ে এসেছে। প্রতিটি লাইন একটি একক ত্রুটি লগ প্রতিনিধিত্ব করে। আপনি পৃথক লগগুলিতে আরও ক্লিক করতে পারেন এবং ভিতরে থাকা তথ্য দেখতে নেস্টেড ক্ষেত্রগুলি প্রসারিত করতে পারেন।
হিস্টোগ্রাম ব্যবহার করে
লগ এক্সপ্লোরার আপনার প্রশ্নের সাথে মেলে এমন লগগুলির সময় বন্টন দেখতে একটি দরকারী হিস্টোগ্রাম বৈশিষ্ট্য প্রদান করে৷ হিস্টোগ্রাম সক্রিয় করতে, উপরের-ডান কোণার বোতামগুলি থেকে পেজ লেআউটে ক্লিক করুন এবং বৈশিষ্ট্যটি সক্ষম করতে হিস্টোগ্রামটি পরীক্ষা করুন।
একবার সক্ষম হলে, আপনি আপনার প্রশ্নের সাথে মেলে লগগুলির একটি বিতরণ দেখতে পাবেন:
আপনি উপরের চিত্রটিতে দেখতে পাচ্ছেন, আমাদের বেশ কয়েকটি ত্রুটি রয়েছে যা গত এক ঘন্টা জুড়ে বিচ্ছিন্নভাবে ক্লাস্টার করা হয়েছে। তারা 1:45, 2:00 এবং 2:15 PM এর কাছাকাছি তিনটি ক্লাস্টার গঠন করে বলে মনে হচ্ছে। হিস্টোগ্রাম আপনাকে প্যাটার্ন শনাক্ত করতে সাহায্য করতে পারে যা শুধুমাত্র টাইমস্ট্যাম্প মান পরীক্ষা করে দেখতে কঠিন হবে।
এই মুহূর্তে আমরা যে ক্যোয়ারী ব্যবহার করি তা লগের মধ্যে পার্থক্য করে না এবং আমাদের স্মার্ট হোম ইন্টিগ্রেশন থেকে আসা সমস্ত ত্রুটি দেখায়। অনেক সময় আছে যেখানে আপনি ত্রুটিগুলির মধ্যে পার্থক্য করতে চাইতে পারেন, উদাহরণস্বরূপ নির্দিষ্ট ডিভাইসের প্রকার বা বৈশিষ্ট্য থেকে উদ্ভূত ত্রুটির ধরণগুলি ট্র্যাক করা৷ এটি করার জন্য, আমরা উন্নত প্রশ্ন লেখার দিকে নজর দেব।
উন্নত প্রশ্ন
আপনি যখন একটি স্মার্ট হোম ইভেন্ট লগ পরিদর্শন করেন, তখন আপনি দেখতে পাবেন বিভিন্ন ক্ষেত্র রয়েছে যেগুলি থেকে আপনি তথ্য সংগ্রহ করতে পারেন:
action
-
trait
: ব্যবহারকারীর দ্বারা লক্ষ্য ডিভাইস বৈশিষ্ট্য (উদাহরণস্বরূপ, অনঅফ, স্টার্টস্টপ, উজ্জ্বলতা) -
actionType
: বৈশিষ্ট্যের সূক্ষ্ম দানা অবস্থা (উদাহরণস্বরূপ, চালু, বন্ধ, বিরতি, থামান, পুনরায় শুরু করুন)
device
-
deviceType
: ব্যবহারকারীর দ্বারা লক্ষ্য ডিভাইসের ধরন (উদাহরণস্বরূপ, লাইট, সুইচ, ওয়াশার)
status
-
isSuccess
: কর্মের ফলাফল সফল বলে বিবেচিত হবে কিনা (সত্য/মিথ্যা) -
statusType
: কর্মের ফলাফলের জন্য স্ট্যাটাস কোড (অসফল হলে একটি ত্রুটি কোড নির্দেশ করে) -
externalDebugString
: কর্মের জন্য ডিবাগ স্ট্রিং (বিস্তারিত ত্রুটি বর্ণনা করে)
অন্যান্য ক্ষেত্র
এছাড়াও অতিরিক্ত ক্ষেত্র রয়েছে যেগুলি থেকে আপনি তথ্য পেতে পারেন:
-
requestId
: অনুরোধের সাথে যুক্ত একটি অনন্য আইডি (গুগল দ্বারা তৈরি) -
executionType
: অনুরোধ দ্বারা ব্যবহৃত পথ (ক্লাউড বা স্থানীয় কিনা তা নির্দেশ করে) -
latencyMsec
: Google সার্ভারে অনুরোধের জন্য অনুভূত বিলম্বিতা (msec এ) -
locale
: কোন ভাষা/অঞ্চল জোড়া থেকে অনুরোধ পাঠানো হয়েছে (উদাহরণস্বরূপ, en-US, fr-FR)
উপরের তালিকা থেকে বৈশিষ্ট্য ক্ষেত্রটি ব্যবহার করে, আমরা আমাদের ক্যোয়ারীটি পরিবর্তন করব যাতে কেবলমাত্র অনঅফ বৈশিষ্ট্য থেকে আসা ত্রুটিগুলি অন্তর্ভুক্ত করা যায়:
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
আমাদের আপডেট করা ক্যোয়ারী চালানোর পরে, সিস্টেম লগগুলি সনাক্ত করে এবং আমাদের সংশ্লিষ্ট ফলাফল দেখায়:
এখন পর্যন্ত আমরা আমাদের সমস্ত প্রশ্ন ম্যানুয়ালি করেছি। এটি ত্রুটির অবস্থা দ্রুত পরীক্ষা করার একটি দুর্দান্ত উপায়, তবে সময়ের সাথে ত্রুটির ধরণগুলির পরিবর্তনগুলি নিরীক্ষণ করার জন্য এত বেশি নয়। এই প্রবাহ স্বয়ংক্রিয় করতে এবং দীর্ঘ সময়ের থেকে ডেটা ক্যাপচার করতে আমরা লগ-ভিত্তিক মেট্রিক্স তৈরি করব।
3. লগ-ভিত্তিক মেট্রিক্স
সময়ের সাথে সাথে আপনার প্রশ্নের সাথে মেলে এমন লগের সংখ্যা গণনা করতে আপনি লগ-ভিত্তিক মেট্রিক্স ব্যবহার করতে পারেন। এটি আপনাকে প্যাটার্ন এবং আপনার লগ জুড়ে দেখতে এবং অন্তর্নিহিত সমস্যাগুলির উপর ভাল অন্তর্দৃষ্টি দিতে অনুমতি দেবে।
একটি লগ-ভিত্তিক মেট্রিক তৈরি করা
একটি লগ-ভিত্তিক মেট্রিক তৈরি করতে, অপারেশন > লগিং > লগ-ভিত্তিক মেট্রিক্সে নেভিগেট করুন। এটি আপনাকে আপনার প্রকল্পে ইতিমধ্যে উপলব্ধ লগ-ভিত্তিক মেট্রিকগুলির তালিকা দেখাবে৷ একবার আপনি মেট্রিক তৈরি করুন বোতামে ক্লিক করলে, আপনাকে লগ-ভিত্তিক মেট্রিক তৈরির স্ক্রীনটি উপস্থাপন করা হবে:
দুটি প্রাথমিক মেট্রিক প্রকার রয়েছে: একটি কাউন্টার মেট্রিক আপনার প্রশ্নের সাথে মেলে এমন লগের সংখ্যা গণনা করে। একটি ডিস্ট্রিবিউশন মেট্রিক অন্তর্নিহিত ডিস্ট্রিবিউশনের ট্র্যাক রাখে এবং পরিসংখ্যানগত ক্রিয়াকলাপ যেমন গড়, মধ্য এবং 95 তম পার্সেন্টাইলের অনুমতি দেয়।
নীচে স্ক্রোল করলে আপনি একটি ফিল্টার বিভাগ দেখতে পাবেন যেখানে আপনি আপনার ক্যোয়ারী টাইপ করতে পারেন।
আমরা বিল্ড ফিল্টার টেক্সট এলাকায় পূর্ববর্তী বিভাগ থেকে আমাদের ক্যোয়ারী পেস্ট করব।
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
আপনার ফিল্টারের সাথে মিলে যাওয়া অতীতের লগগুলির একটি দ্রুত দৃশ্য দেখতে আপনি প্রিভিউ লগ বোতামে ক্লিক করতে পারেন৷ একবার আপনার হয়ে গেলে, আপনি মেট্রিক তৈরি করুন বোতামে ক্লিক করতে পারেন এবং পরবর্তী বিভাগে যেতে পারেন।
লগ-ভিত্তিক মেট্রিক ডেটা দেখা হচ্ছে
এখন আমাদের লগ-ভিত্তিক মেট্রিক তৈরি করা হয়েছে, এটি লগ-ভিত্তিক মেট্রিক্স পৃষ্ঠার ব্যবহারকারী-সংজ্ঞায়িত মেট্রিক্স বিভাগে উপলব্ধ হবে।
লগ-ভিত্তিক মেট্রিকের সাথে সম্পর্কিত মেনু থেকে (3 ডট), লগ-ভিত্তিক মেট্রিকে সংগৃহীত ডেটা দেখতে মেট্রিক্স এক্সপ্লোরারে দেখুন নির্বাচন করুন:
একবার আমাদের একটি নতুন ত্রুটি দেখা দিলে, এটি আমাদের লগ-ভিত্তিক মেট্রিক দ্বারা ক্যাপচার করা হবে এবং মেট্রিক্স এক্সপ্লোরারের চার্ট উইন্ডোতে প্রদর্শিত হবে।
কাস্টম ড্যাশবোর্ডের মাধ্যমে পর্যবেক্ষণ
একবার আমরা দেখতে পাই যে আমাদের নতুন লগ-ভিত্তিক মেট্রিক উদ্দেশ্য অনুযায়ী কাজ করছে, এটি একটি কাস্টম ড্যাশবোর্ডে এই চার্ট ভিউ সংরক্ষণ করার সময়। এর জন্য, মেট্রিক্স এক্সপ্লোরারের উপরের-ডান কোণে সেভ চার্ট বোতামে ক্লিক করুন। এটি চার্টের নাম দেওয়ার জন্য একটি প্রম্পট নিয়ে আসবে এবং আপনি যে ড্যাশবোর্ডটি সংরক্ষণ করতে চান সেটি নির্বাচন করুন:
একবার আমরা একটি ড্যাশবোর্ডে চার্ট সংরক্ষণ করলে, সেখান থেকে আমরা সহজেই এটি অ্যাক্সেস করতে পারি। আপনার প্রকল্পে উপলব্ধ ড্যাশবোর্ডগুলির তালিকা অ্যাক্সেস করতে, অপারেশন > মনিটরিং > ড্যাশবোর্ডগুলিতে নেভিগেট করুন।
আমরা আমাদের চার্টটি "কোডেল্যাব ড্যাশবোর্ড" নামে একটি ড্যাশবোর্ডে সংরক্ষণ করেছি। এটি খুললে নিম্নলিখিত ভিউ দেখাবে:
আপনি দেখতে পাচ্ছেন যে লগ-ভিত্তিক মেট্রিকের প্রতিনিধিত্বকারী চার্টটি নতুন সংগৃহীত ডেটা সহ এখানে প্রদর্শিত হয়েছে। স্মার্ট হোম লগগুলি রিয়েলটাইমে আপনার প্রকল্পে প্রকাশিত হয়। যখন একটি নতুন লগ উপলব্ধ হয়, তখন আপনি এটিকে আপনার লগ-ভিত্তিক মেট্রিক দ্বারা অবিলম্বে গণনা দেখতে পাবেন।
4. অভিনন্দন
অভিনন্দন! আপনি সফলভাবে শিখেছেন কিভাবে আপনার প্রশ্নগুলিকে লগ-ভিত্তিক মেট্রিক্সে পরিণত করতে হয় এবং সেগুলিকে পর্যবেক্ষণের জন্য কাস্টম ড্যাশবোর্ডে সংরক্ষণ করতে হয়৷
পরবর্তী পদক্ষেপ
এই কোডল্যাবটি তৈরি করে, নিম্নলিখিত অনুশীলনগুলি চেষ্টা করুন এবং অতিরিক্ত সংস্থানগুলি অন্বেষণ করুন:
- সংখ্যার ক্ষেত্রে লগ-ভিত্তিক মেট্রিক্স তৈরি করতে বিতরণ মেট্রিক্স তৈরির নির্দেশিকাটি দেখুন যেমন লেটেন্সি।
- আপনি লগ-ভিত্তিক মেট্রিক্সের জন্য ব্যবহার করতে পারেন এমন কিছু জটিল ফিল্টার দেখতে Google ক্লাউড দ্বারা প্রদত্ত নমুনা ক্যোয়ারী লাইব্রেরি পর্যালোচনা করুন৷