Google ক্লাউড প্লাগইন Firebase Genkit টেলিমেট্রি এবং লগিং ডেটা ক্লাউড অবজারভেবিলিটি স্যুটে রপ্তানি করে, যা Firebase AI মনিটরিং ড্যাশবোর্ডকে শক্তি দেয়।
ইনস্টলেশন
npm i --save @genkit-ai/google-cloud
এই প্লাগইনটি অন্তর্ভুক্ত করে স্থানীয়ভাবে জেনকিট কোড চালানোর সময়, আপনাকে Google ক্লাউড CLI টুল ইনস্টল করতে হবে।
একটি Google ক্লাউড অ্যাকাউন্ট সেট আপ করুন৷
এই প্লাগইনটির জন্য একটি Google ক্লাউড অ্যাকাউন্ট/প্রকল্প প্রয়োজন। সমস্ত ফায়ারবেস প্রকল্পে ডিফল্টভাবে একটি অন্তর্ভুক্ত থাকে ( GCP কনসোল ), অথবা আপনি https://cloud.google.com-এ সাইন আপ করতে পারেন৷
প্লাগইন যোগ করার আগে, নিশ্চিত করুন যে আপনার GCP প্রকল্পের জন্য নিম্নলিখিত APIগুলি সক্ষম করা আছে:
এই APIগুলি আপনার প্রকল্পের জন্য API ড্যাশবোর্ডে তালিকাভুক্ত করা উচিত।
API সক্রিয় এবং নিষ্ক্রিয় সম্পর্কে আরও জানতে এখানে ক্লিক করুন৷
জেনকিট কনফিগারেশন
ক্লাউড ট্রেসিং, লগিং এবং মনিটরিং (মেট্রিক্স) সক্ষম করতে, কেবল কল করুন enableGoogleCloudTelemetry()
:
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
উৎপাদনে চলাকালীন, টেলিমেট্রি স্বয়ংক্রিয়ভাবে রপ্তানি হবে।
প্রমাণীকরণ এবং অনুমোদন
প্লাগইনটির জন্য একটি Google ক্লাউড প্রকল্প আইডি এবং অ্যাপ্লিকেশন শংসাপত্র প্রয়োজন৷
গুগল ক্লাউড
Google ক্লাউড পরিবেশে (ক্লাউড ফাংশন, ক্লাউড রান, ইত্যাদি) আপনার কোড স্থাপন করলে, প্রজেক্ট আইডি এবং শংসাপত্রগুলি অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের মাধ্যমে স্বয়ংক্রিয়ভাবে আবিষ্কৃত হবে।
IAM কনসোলের মাধ্যমে আপনার কোডটি (যেমন 'সংযুক্ত পরিষেবা অ্যাকাউন্ট') চালাচ্ছে এমন পরিষেবা অ্যাকাউন্টে আপনাকে নিম্নলিখিত ভূমিকাগুলি প্রয়োগ করতে হবে:
-
roles/monitoring.metricWriter
-
roles/cloudtrace.agent
-
roles/logging.logWriter
স্থানীয় উন্নয়ন
স্থানীয় উন্নয়ন করার সময়, আপনার ব্যবহারকারীর শংসাপত্রগুলি প্লাগইনে উপলব্ধ হওয়ার জন্য, অতিরিক্ত পদক্ষেপের প্রয়োজন।
আপনার Google ক্লাউড প্রকল্পে
GCLOUD_PROJECT
পরিবেশ পরিবর্তনশীল সেট করুন।gcloud
CLI ব্যবহার করে প্রমাণীকরণ করুন:gcloud auth application-default login
Google ক্লাউডের বাইরে উৎপাদন পরিবেশ
যদি সম্ভব হয়, প্লাগইনে শংসাপত্রগুলি উপলব্ধ করার জন্য অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র প্রক্রিয়াটি ব্যবহার করার পরামর্শ দেওয়া হয়।
সাধারণত এর মধ্যে একটি পরিষেবা অ্যাকাউন্ট কী/জোড়া তৈরি করা এবং সেই শংসাপত্রগুলি আপনার উত্পাদন পরিবেশে স্থাপন করা জড়িত।
একটি পরিষেবা অ্যাকাউন্ট কী সেট আপ করতে নির্দেশাবলী অনুসরণ করুন৷
পরিষেবা অ্যাকাউন্টের নিম্নলিখিত ভূমিকা রয়েছে তা নিশ্চিত করুন:
-
roles/monitoring.metricWriter
-
roles/cloudtrace.agent
-
roles/logging.logWriter
-
প্রোডাকশনে শংসাপত্র ফাইলটি স্থাপন করুন (সোর্স কোডে চেক করবেন না )
শংসাপত্র ফাইলের পথ হিসাবে
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ পরিবর্তনশীল সেট করুন৷GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
কিছু সার্ভারহীন পরিবেশে, আপনি একটি শংসাপত্র ফাইল স্থাপন করতে সক্ষম নাও হতে পারেন। এই ক্ষেত্রে, উপরের ধাপ 3 এবং 4 এর বিকল্প হিসাবে, আপনি নিম্নোক্তভাবে শংসাপত্র ফাইলের বিষয়বস্তুর সাথে GCLOUD_SERVICE_ACCOUNT_CREDS
পরিবেশ পরিবর্তনশীল সেট করতে পারেন:
GCLOUD_SERVICE_ACCOUNT_CREDS='{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "your-private-key",
"client_email": "your-client-email",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "your-cert-url"
}'
প্লাগইন কনফিগারেশন
enableGoogleCloudTelemetry()
ফাংশনটি একটি ঐচ্ছিক কনফিগারেশন অবজেক্ট নেয় যা OpenTelemetry NodeSDK ইনস্ট্যান্স কনফিগার করে।
import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
enableGoogleCloudTelemetry({
forceDevExport: false, // Set this to true to export telemetry for local runs
sampler: new AlwaysOnSampler(),
autoInstrumentation: true,
autoInstrumentationConfig: {
'@opentelemetry/instrumentation-fs': { enabled: false },
'@opentelemetry/instrumentation-dns': { enabled: false },
'@opentelemetry/instrumentation-net': { enabled: false },
},
metricExportIntervalMillis: 5_000,
});
কনফিগারেশন অবজেক্টগুলি নীচে বর্ণিত টেলিমেট্রি এক্সপোর্টের বিভিন্ন দিকের উপর সূক্ষ্ম দানাদার নিয়ন্ত্রণের অনুমতি দেয়।
শংসাপত্র
google-auth লাইব্রেরি থেকে সরাসরি JWTInput ব্যবহার করে শংসাপত্রগুলি নির্দিষ্ট করার অনুমতি দেয়৷
নমুনা
এমন ক্ষেত্রে যেখানে সমস্ত ট্রেস রপ্তানি করা ব্যবহারিক নয়, OpenTelemetry ট্রেস স্যাম্পলিংয়ের অনুমতি দেয়।
চারটি পূর্ব-কনফিগার করা নমুনা রয়েছে:
- AlwaysOnSampler - নমুনা সব ট্রেস
- সর্বদা অফ স্যাম্পলার - নমুনার কোন চিহ্ন নেই
- প্যারেন্ট ভিত্তিক - প্যারেন্ট স্প্যানের উপর ভিত্তি করে নমুনা
- TraceIdRatio-ভিত্তিক - ট্রেসগুলির একটি কনফিগারযোগ্য শতাংশের নমুনা
অটোইন্সট্রুমেন্টেশন এবং অটোইন্সট্রুমেন্টেশন কনফিগারেশন
স্বয়ংক্রিয় ইন্সট্রুমেন্টেশন সক্ষম করা ওপেনটেলিমেট্রিকে কোড পরিবর্তন করার প্রয়োজন ছাড়াই তৃতীয় পক্ষের লাইব্রেরি থেকে টেলিমেট্রি ডেটা ক্যাপচার করতে দেয়।
মেট্রিক এক্সপোর্ট ইন্টারভালমিলিস
এই ক্ষেত্রটি মিলিসেকেন্ডে মেট্রিক্স এক্সপোর্ট ব্যবধান নির্দিষ্ট করে।
metricExportTimeoutMillis
এই ক্ষেত্রটি মিলিসেকেন্ডে মেট্রিক্স এক্সপোর্টের সময়সীমা নির্দিষ্ট করে।
নিষ্ক্রিয় মেট্রিক্স
একটি ওভাররাইড প্রদান করে যা এখনও ট্রেস এবং লগ রপ্তানি করার সময় মেট্রিক্স এক্সপোর্ট অক্ষম করে।
নিষ্ক্রিয় ট্রেস
একটি ওভাররাইড প্রদান করে যা মেট্রিক্স এবং লগ এক্সপোর্ট করার সময় রপ্তানি ট্রেস অক্ষম করে।
লগিংআইও অক্ষম করুন
একটি ওভাররাইড প্রদান করে যা ইনপুট এবং আউটপুট লগ সংগ্রহ করা অক্ষম করে।
forceDevExport
এই বিকল্পটি জেনকিটকে dev
পরিবেশে (যেমন স্থানীয়ভাবে) চালানোর সময় টেলিমেট্রি এবং লগ ডেটা রপ্তানি করতে বাধ্য করবে।
আপনার ইন্টিগ্রেশন পরীক্ষা করুন
প্লাগইন কনফিগার করার সময়, স্থানীয় রানের জন্য টেলিমেট্রি এক্সপোর্ট সক্ষম করতে forceDevExport: true
ব্যবহার করুন। টেলিমেট্রি দেখতে Google ক্লাউড লগ, মেট্রিক্স বা ট্রেস এক্সপ্লোরার-এ নেভিগেট করুন।
গুগল ক্লাউড অবজারভেবিলিটি স্যুট
একবার আপনার কোড (যেমন প্রবাহ) স্থাপন করা হলে, ক্লাউড মনিটরিং ড্যাশবোর্ডে নেভিগেট করুন এবং আপনার প্রকল্প নির্বাচন করুন। এখান থেকে, আপনি উৎপাদন পর্যবেক্ষণের জন্য লগ, মেট্রিক্স এবং ট্রেস এক্সপ্লোরারগুলির মধ্যে সহজেই নেভিগেট করতে পারেন।
লগ এবং ট্রেস
বাম দিকের মেনু থেকে, 'এক্সপ্লোর' শিরোনামের অধীনে 'লগস এক্সপ্লোরার'-এ ক্লিক করুন।
এখানে, আপনি console.log()
সহ আপনার নিয়োজিত জেনকিট কোডের সাথে যুক্ত সমস্ত লগ দেখতে পাবেন। যে কোনো লগ যার উপসর্গ আছে [genkit]
হল একটি জেনকিট-অভ্যন্তরীণ লগ যাতে ডিবাগিং উদ্দেশ্যে আকর্ষণীয় হতে পারে এমন তথ্য থাকে। উদাহরণস্বরূপ, Config[...]
বিন্যাসে জেনকিট লগগুলিতে মেটাডেটা থাকে যেমন তাপমাত্রা এবং নির্দিষ্ট LLM অনুমানের জন্য topK মান। বিন্যাসে লগ Output[...]
LLM প্রতিক্রিয়া ধারণ করে যখন Input[...]
লগে প্রম্পট থাকে। ক্লাউড লগিং-এ শক্তিশালী ACL রয়েছে যা সংবেদনশীল লগগুলিতে অ্যাক্সেসের উপর সূক্ষ্ম দানাদার নিয়ন্ত্রণের অনুমতি দেয়।
এটি একটি ট্রেস প্রাকদর্শন ফলক নিয়ে আসবে যা ট্রেসের বিশদ বিবরণের একটি দ্রুত নজর প্রদান করবে। সম্পূর্ণ বিবরণ পেতে, ফলকের উপরের ডানদিকে "ট্রেসে দেখুন" লিঙ্কটিতে ক্লিক করুন৷
ক্লাউড ট্রেসের সবচেয়ে বিশিষ্ট নেভিগেশন উপাদান হল ট্রেস স্ক্যাটার প্লট। এটি একটি নির্দিষ্ট সময়ের মধ্যে সমস্ত সংগৃহীত ট্রেস ধারণ করে।
প্রতিটি ডেটা পয়েন্টে ক্লিক করলে স্ক্যাটার প্লটের নীচে তার বিবরণ দেখাবে।
বিস্তারিত ভিউতে প্রবাহের আকৃতি রয়েছে, সমস্ত ধাপ সহ, এবং গুরুত্বপূর্ণ সময়ের তথ্য। ক্লাউড ট্রেস এই দৃশ্যের মধ্যে একটি প্রদত্ত ট্রেসের সাথে যুক্ত সমস্ত লগ ইন্টারলিভ করার ক্ষমতা রাখে৷ "লগ এবং ইভেন্ট" ড্রপ ডাউনে "প্রসারিত দেখান" বিকল্পটি নির্বাচন করুন৷
ফলাফলের ভিউ প্রম্পট এবং এলএলএম প্রতিক্রিয়া সহ ট্রেসের প্রসঙ্গে লগগুলির বিশদ পরীক্ষা করার অনুমতি দেয়।
মেট্রিক্স
বাম দিকের মেনুতে 'কনফিগার' শিরোনামের অধীনে 'মেট্রিক্স ম্যানেজমেন্ট'-এ ক্লিক করে Genkit দ্বারা রপ্তানি করা সমস্ত মেট্রিক্স দেখা যেতে পারে।
মেট্রিক্স ম্যানেজমেন্ট কনসোলে ক্লাউড রান এবং এর আশেপাশের পরিবেশের সাথে সম্পর্কিত সমস্ত সংগৃহীত মেট্রিকগুলির একটি ট্যাবুলার ভিউ রয়েছে। 'ওয়ার্কলোড' বিকল্পে ক্লিক করা একটি তালিকা প্রকাশ করবে যাতে জেনকিট-সংগৃহীত মেট্রিক্স রয়েছে। genkit
উপসর্গ সহ যেকোনো মেট্রিক একটি অভ্যন্তরীণ জেনকিট মেট্রিক গঠন করে।
Genkit মেট্রিক্সের বিভিন্ন বিভাগ সংগ্রহ করে যার মধ্যে রয়েছে: বৈশিষ্ট্য, কর্ম এবং জেনারেট। প্রতিটি মেট্রিকের বেশ কয়েকটি দরকারী মাত্রা রয়েছে যা শক্তিশালী ফিল্টারিং এবং গ্রুপিংকে সহজতর করে।
সাধারণ মাত্রা অন্তর্ভুক্ত:
-
flow_name
- প্রবাহের শীর্ষ-স্তরের নাম। -
flow_path
- স্প্যান এবং এর মূল স্প্যান চেইন রুট স্প্যান পর্যন্ত। -
error_code
- একটি ত্রুটির ক্ষেত্রে, সংশ্লিষ্ট ত্রুটি কোড। -
error_message
- একটি ত্রুটির ক্ষেত্রে, সংশ্লিষ্ট ত্রুটি বার্তা। -
model
- মডেলের নাম।
ফিচার মেট্রিক্স
বৈশিষ্ট্যগুলি হল আপনার জেনকিট কোডের শীর্ষ-স্তরের এন্ট্রি-পয়েন্ট। বেশিরভাগ ক্ষেত্রে, এটি একটি প্রবাহ হবে। অন্যথায়, এটি একটি ট্রেস মধ্যে শীর্ষ-সবচেয়ে স্প্যান হবে.
নাম | টাইপ | বর্ণনা |
---|---|---|
জেনকিট/বৈশিষ্ট্য/অনুরোধ | কাউন্টার | অনুরোধের সংখ্যা |
জেনকিট/বৈশিষ্ট্য/ বিলম্ব | হিস্টোগ্রাম | ms-এ এক্সিকিউশন লেটেন্সি |
প্রতিটি বৈশিষ্ট্য মেট্রিকে নিম্নলিখিত মাত্রা রয়েছে:
নাম | বর্ণনা |
---|---|
নাম | বৈশিষ্ট্যের নাম। বেশিরভাগ ক্ষেত্রে, এটি শীর্ষ-স্তরের জেনকিট প্রবাহ |
অবস্থা | 'সফল' বা 'ব্যর্থতা' বৈশিষ্ট্য অনুরোধ সফল হয়েছে কিনা তার উপর নির্ভর করে |
ত্রুটি | status=failure হলেই সেট করুন। ব্যর্থতার কারণ ত্রুটির ধরন রয়েছে৷ |
উৎস | Genkit উৎস ভাষা. যেমন 'ts' |
উৎস সংস্করণ | জেনকিট ফ্রেমওয়ার্ক সংস্করণ |
অ্যাকশন মেট্রিক্স
ক্রিয়াগুলি জেনকিটের মধ্যে কার্যকর করার একটি সাধারণ পদক্ষেপের প্রতিনিধিত্ব করে। এই ধাপগুলির প্রতিটিতে নিম্নলিখিত মেট্রিক্স ট্র্যাক করা হবে:
নাম | টাইপ | বর্ণনা |
---|---|---|
জেনকিট/অ্যাকশন/অনুরোধ | কাউন্টার | এই ক্রিয়াটি কতবার সম্পাদিত হয়েছে |
জেনকিট/অ্যাকশন/লেটেন্সি | হিস্টোগ্রাম | ms-এ এক্সিকিউশন লেটেন্সি |
প্রতিটি অ্যাকশন মেট্রিকে নিম্নলিখিত মাত্রা থাকে:
নাম | বর্ণনা |
---|---|
নাম | কর্মের নাম |
বৈশিষ্ট্যের নাম | অভিভাবক বৈশিষ্ট্যটির নাম কার্যকর করা হচ্ছে৷ |
পথ | বৈশিষ্ট্য রুট থেকে এই কর্ম সম্পাদনের পথ। যেমন '/myFeature/parentAction/thisAction' |
অবস্থা | 'সাফল্য' বা 'ব্যর্থতা' কর্মটি সফল হয়েছে কিনা তার উপর নির্ভর করে |
ত্রুটি | status=failure হলেই সেট করুন। ব্যর্থতার কারণ ত্রুটির ধরন রয়েছে৷ |
উৎস | Genkit উৎস ভাষা. যেমন 'ts' |
উৎস সংস্করণ | জেনকিট ফ্রেমওয়ার্ক সংস্করণ |
মেট্রিক্স তৈরি করুন
এগুলি একটি মডেলের সাথে ইন্টারঅ্যাক্ট করে এমন ক্রিয়াগুলির সাথে সম্পর্কিত বিশেষ অ্যাকশন মেট্রিক। অনুরোধ এবং লেটেন্সি ছাড়াও, ইনপুট এবং আউটপুটও ট্র্যাক করা হয়, মডেল নির্দিষ্ট মাত্রা সহ যা ডিবাগিং এবং কনফিগারেশন টিউনিংকে সহজ করে তোলে।
নাম | টাইপ | বর্ণনা |
---|---|---|
জেনকিট/এআই/জেনারেট/অনুরোধ | কাউন্টার | এই মডেলটি কতবার কল করা হয়েছে |
জেনকিট/এআই/জেনারেট/লেটেন্সি | হিস্টোগ্রাম | ms-এ এক্সিকিউশন লেটেন্সি |
জেনকিট/এআই/জেনারেট/ইনপুট/টোকেন | কাউন্টার | ইনপুট টোকেন |
জেনকিট/এআই/জেনারেট/আউটপুট/টোকেন | কাউন্টার | আউটপুট টোকেন |
জেনকিট/এআই/জেনারেট/ইনপুট/অক্ষর | কাউন্টার | অক্ষর ইনপুট করুন |
জেনকিট/এআই/জেনারেট/আউটপুট/অক্ষর | কাউন্টার | আউটপুট অক্ষর |
জেনকিট/এআই/জেনারেট/ইনপুট/ছবি | কাউন্টার | ইনপুট ইমেজ |
জেনকিট/এআই/জেনারেট/আউটপুট/ছবি | কাউন্টার | আউটপুট ইমেজ |
জেনকিট/এআই/জেনারেট/ইনপুট/অডিও | কাউন্টার | অডিও ফাইল ইনপুট করুন |
জেনকিট/এআই/জেনারেট/আউটপুট/অডিও | কাউন্টার | আউটপুট অডিও ফাইল |
প্রতিটি জেনারেট মেট্রিকে নিম্নলিখিত মাত্রা রয়েছে:
নাম | বর্ণনা |
---|---|
মডেলের নাম | মডেলের নাম |
বৈশিষ্ট্যের নাম | অভিভাবক বৈশিষ্ট্যটির নাম কার্যকর করা হচ্ছে৷ |
পথ | বৈশিষ্ট্য রুট থেকে এই কর্ম সম্পাদনের পথ। যেমন '/myFeature/parentAction/thisAction' |
বিলম্ব | মডেল দ্বারা নেওয়া প্রতিক্রিয়া সময় |
অবস্থা | 'সফল' বা 'ব্যর্থতা' বৈশিষ্ট্য অনুরোধ সফল হয়েছে কিনা তার উপর নির্ভর করে |
ত্রুটি | status=failure হলেই সেট করুন। ব্যর্থতার কারণ ত্রুটির ধরন রয়েছে৷ |
উৎস | Genkit উৎস ভাষা. যেমন 'ts' |
উৎস সংস্করণ | জেনকিট ফ্রেমওয়ার্ক সংস্করণ |
মেট্রিক্স এক্সপ্লোরারের মাধ্যমে ভিজ্যুয়ালাইজিং মেট্রিক্স করা যেতে পারে। বাম দিকের মেনু ব্যবহার করে, 'এক্সপ্লোর' শিরোনামের অধীনে 'মেট্রিক্স এক্সপ্লোরার'-এ ক্লিক করুন।
'একটি মেট্রিক নির্বাচন করুন' ড্রপডাউনে ক্লিক করে, 'জেনেরিক নোড', 'জেনকিট' এবং একটি মেট্রিক নির্বাচন করে একটি মেট্রিক নির্বাচন করুন।
মেট্রিকের ভিজ্যুয়ালাইজেশন নির্ভর করবে এর ধরনের (কাউন্টার, হিস্টোগ্রাম, ইত্যাদি) উপর। মেট্রিক্স এক্সপ্লোরার গ্রাফ মেট্রিক্সকে তাদের বিভিন্ন মাত্রায় সাহায্য করার জন্য শক্তিশালী একত্রীকরণ এবং অনুসন্ধানের সুবিধা প্রদান করে।
টেলিমেট্রি বিলম্ব
ক্লাউডের অপারেশন স্যুটে একটি প্রবাহের একটি নির্দিষ্ট সম্পাদনের জন্য টেলিমেট্রির আগে সামান্য বিলম্ব হতে পারে। বেশিরভাগ ক্ষেত্রে, এই বিলম্বটি 1 মিনিটের কম।
কোটা এবং সীমা
বেশ কয়েকটি কোটা রয়েছে যা মনে রাখা গুরুত্বপূর্ণ:
খরচ
ক্লাউড লগিং, ক্লাউড ট্রেস এবং ক্লাউড মনিটরিংয়ের উদার বিনামূল্যের স্তর রয়েছে। নির্দিষ্ট মূল্য নিম্নলিখিত লিঙ্কে পাওয়া যাবে: