टेलीमेट्री कलेक्शन

Firebase टेलीमेट्री प्लग इन, मेट्रिक, ट्रेस, और लॉग के कॉम्बिनेशन को Google Cloud Observability में एक्सपोर्ट करता है. इस दस्तावेज़ में बताया गया है कि कौनसी मेट्रिक, ट्रैक एट्रिब्यूट, और लॉग इकट्ठा किए जाएंगे. साथ ही, इसमें यह जानकारी भी दी गई है कि इंतज़ार का समय, कोटा, और लागत के मामले में आपको क्या उम्मीद करनी चाहिए.

टेलीमेट्री में देरी

किसी इंवोकेशन से मिलने वाला टेलीमेट्री डेटा, Firebase में उपलब्ध होने में थोड़ी देर लग सकती है. यह एक्सपोर्ट इंटरवल (डिफ़ॉल्ट रूप से 5 मिनट) पर निर्भर करता है.

कोटा और सीमाएं

कुछ कोटा ऐसे हैं जिन्हें ध्यान में रखना ज़रूरी है:

लागत

Cloud Logging, Cloud Trace, और Cloud Monitoring के लिए, बिना किसी शुल्क के इस्तेमाल किए जा सकने वाले कई टियर उपलब्ध हैं. अलग-अलग कीमतों के बारे में जानने के लिए, इन लिंक पर जाएं:

मेट्रिक

Firebase टेलीमेट्री प्लग इन, कई अलग-अलग मेट्रिक इकट्ठा करता है, ताकि नीचे दिए गए सेक्शन में बताए गए अलग-अलग Genkit ऐक्शन टाइप के साथ काम किया जा सके.

सुविधा की मेट्रिक

सुविधाएं, आपके Genkit कोड के टॉप-लेवल एंट्री-पॉइंट हैं. ज़्यादातर मामलों में, यह एक फ़्लो होगा. ऐसा न करने पर, यह ट्रैस में सबसे ऊपर वाला स्पैन होगा.

नाम टाइप ब्यौरा
genkit/feature/requests काउंटर कुल अनुरोध
genkit/feature/latency हिस्टोग्राम एक्सीक्यूशन में लगने वाला समय, मिलीसेकंड में

हर सुविधा मेट्रिक में ये डाइमेंशन शामिल होते हैं:

नाम ब्यौरा
नाम सुविधा का नाम. ज़्यादातर मामलों में, यह Genkit का टॉप-लेवल फ़्लो होता है
स्थिति 'सफल' या 'असफल'. यह इस बात पर निर्भर करता है कि सुविधा के अनुरोध को स्वीकार किया गया है या नहीं
गड़बड़ी सिर्फ़ तब सेट करें, जब status=failure. इसमें गड़बड़ी का टाइप शामिल होता है, जिसकी वजह से अनुरोध पूरा नहीं हो पाया
source Genkit की सोर्स भाषा. उदाहरण के लिए, 'ts'
sourceVersion Genkit फ़्रेमवर्क का वर्शन

ऐक्शन मेट्रिक

ऐक्शन, Genkit में प्रोसेस को पूरा करने का एक सामान्य चरण दिखाते हैं. इनमें से हर चरण में, ये मेट्रिक ट्रैक की जाएंगी:

नाम टाइप ब्यौरा
genkit/action/requests काउंटर यह कार्रवाई कितनी बार की गई
genkit/action/latency हिस्टोग्राम एक्सीक्यूशन में लगने वाला समय, मिलीसेकंड में

हर ऐक्शन मेट्रिक में ये डाइमेंशन होते हैं:

नाम ब्यौरा
नाम कार्रवाई का नाम
featureName जिस पैरंट सुविधा को लागू किया जा रहा है उसका नाम
पाथ सुविधा के रूट से इस कार्रवाई तक, प्रोसेस को पूरा करने का पाथ. उदाहरण के लिए, '/myFeature/parentAction/thisAction'
स्थिति 'सफल' या 'असफल', यह इस बात पर निर्भर करता है कि कार्रवाई पूरी हुई या नहीं
गड़बड़ी सिर्फ़ तब सेट करें, जब status=failure. इसमें गड़बड़ी का टाइप शामिल होता है, जिसकी वजह से अनुरोध पूरा नहीं हो पाया
source Genkit की सोर्स भाषा. उदाहरण के लिए, 'ts'
sourceVersion Genkit फ़्रेमवर्क का वर्शन

मेट्रिक जनरेट करना

ये खास ऐक्शन मेट्रिक, मॉडल के साथ इंटरैक्ट करने वाली कार्रवाइयों से जुड़ी होती हैं. अनुरोधों और इंतज़ार के समय के अलावा, इनपुट और आउटपुट को भी ट्रैक किया जाता है. इसके लिए, मॉडल के हिसाब से डाइमेंशन का इस्तेमाल किया जाता है. इससे, डीबग करने और कॉन्फ़िगरेशन को ट्यून करने में आसानी होती है.

नाम टाइप ब्यौरा
genkit/ai/generate/requests काउंटर इस मॉडल को कॉल किए जाने की संख्या
genkit/ai/generate/latency हिस्टोग्राम एक्सीक्यूशन में लगने वाला समय, मिलीसेकंड में
genkit/ai/generate/input/tokens काउंटर इनपुट टोकन
genkit/ai/generate/output/tokens काउंटर आउटपुट टोकन
genkit/ai/generate/input/characters काउंटर कैरेक्टर डालें
genkit/ai/generate/output/characters काउंटर आउटपुट वर्ण
genkit/ai/generate/input/images काउंटर इनपुट इमेज
genkit/ai/generate/output/images काउंटर आउटपुट इमेज
genkit/ai/generate/input/audio काउंटर ऑडियो फ़ाइलें डालना
genkit/ai/generate/output/audio काउंटर ऑडियो फ़ाइलें आउटपुट करना

जनरेट की गई हर मेट्रिक में ये डाइमेंशन शामिल होते हैं:

नाम ब्यौरा
modelName मॉडल का नाम
featureName जिस पैरंट सुविधा को लागू किया जा रहा है उसका नाम
पाथ सुविधा के रूट से इस कार्रवाई तक, प्रोसेस को पूरा करने का पाथ. उदाहरण के लिए, '/myFeature/parentAction/thisAction'
latencyMs मॉडल को जवाब देने में लगने वाला समय
स्थिति 'सफल' या 'असफल'. यह इस बात पर निर्भर करता है कि सुविधा के अनुरोध को स्वीकार किया गया है या नहीं
गड़बड़ी सिर्फ़ तब सेट करें, जब status=failure. इसमें गड़बड़ी का टाइप शामिल होता है, जिसकी वजह से अनुरोध पूरा नहीं हो पाया
source Genkit की सोर्स भाषा. उदाहरण के लिए, 'ts'
sourceVersion Genkit फ़्रेमवर्क का वर्शन

ट्रेस

Genkit की सभी कार्रवाइयां अपने-आप इंस्ट्रूमेंट की जाती हैं, ताकि आपकी एआई सुविधाओं के लिए ज़्यादा जानकारी वाले ट्रेस उपलब्ध कराए जा सकें. स्थानीय तौर पर, डेवलपर यूज़र इंटरफ़ेस में ट्रेस दिखते हैं. डिप्लॉय किए गए ऐप्लिकेशन के लिए, Firebase Genkit मॉनिटरिंग की सुविधा चालू करें, ताकि आपको वही जानकारी मिल सके.

नीचे दिए गए सेक्शन में बताया गया है कि ट्रैस में किसी खास स्पैन के लिए, Genkit ऐक्शन टाइप के आधार पर आपको कौनसे ट्रैस एट्रिब्यूट मिल सकते हैं.

रूट स्पैन

रूट स्पैन में खास एट्रिब्यूट होते हैं. इनकी मदद से, पूरे ट्रेस के स्टेटस एट्रिब्यूट और किसी एक स्पैन के स्टेटस एट्रिब्यूट में अंतर किया जा सकता है.

विशेषता नाम ब्यौरा
genkit/feature जिस पैरंट सुविधा को लागू किया जा रहा है उसका नाम
genkit/isRoot अगर यह स्पैन रूट स्पैन है, तो इसे 'सही' के तौर पर मार्क किया जाता है
genkit/rootState पूरे एक्सीक्यूशन की स्थिति success या error के तौर पर दिखती है. इससे यह नहीं पता चलता कि यह चरण पूरा नहीं हुआ.

फ़्लो

विशेषता नाम ब्यौरा
genkit/input फ़्लो का इनपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/metadata/subtype Genkit कार्रवाई का टाइप. फ़्लो के लिए यह flow होगा.
genkit/name इस Genkit ऐक्शन का नाम. इस मामले में, फ़्लो का नाम
genkit/output फ़्लो में जनरेट किया गया आउटपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/path ट्रैक में इस चरण तक ले जाने वाला, पूरी तरह से सही क्रियान्वयन पाथ. इसमें टाइप की जानकारी भी शामिल होती है.
genkit/state इस स्पैन के एक्ज़ीक्यूशन की स्थिति, success या error के तौर पर.
genkit/type इस स्पैन से जुड़ा Genkit प्राइमिटिव टाइप. फ़्लो के लिए, यह action होगा.

Util

विशेषता नाम ब्यौरा
genkit/input util के लिए इनपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/name इस Genkit ऐक्शन का नाम. इस मामले में, फ़्लो का नाम
genkit/output util में जनरेट किया गया आउटपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/path ट्रैक में इस चरण तक ले जाने वाला, पूरी तरह से सही क्रियान्वयन पाथ. इसमें टाइप की जानकारी भी शामिल होती है.
genkit/state इस स्पैन के एक्ज़ीक्यूशन की स्थिति, success या error के तौर पर.
genkit/type इस स्पैन से जुड़ा Genkit प्राइमिटिव टाइप. फ़्लो के लिए, यह util होगा.

मॉडल

विशेषता नाम ब्यौरा
genkit/input मॉडल का इनपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/metadata/subtype Genkit कार्रवाई का टाइप. मॉडल के लिए यह model होगा.
genkit/model मॉडल का नाम.
genkit/name इस Genkit ऐक्शन का नाम. इस मामले में, मॉडल का नाम.
genkit/output मॉडल से जनरेट किया गया आउटपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/path ट्रैक में इस चरण तक ले जाने वाला, पूरी तरह से सही क्रियान्वयन पाथ. इसमें टाइप की जानकारी भी शामिल होती है.
genkit/state इस स्पैन के एक्ज़ीक्यूशन की स्थिति, success या error के तौर पर.
genkit/type इस स्पैन से जुड़ा Genkit प्राइमिटिव टाइप. फ़्लो के लिए, यह action होगा.

टूल

विशेषता नाम ब्यौरा
genkit/input मॉडल का इनपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/metadata/subtype Genkit कार्रवाई का टाइप. टूल के लिए यह tool होगा.
genkit/name इस Genkit ऐक्शन का नाम. इस मामले में, मॉडल का नाम.
genkit/output मॉडल से जनरेट किया गया आउटपुट. ट्रेस एट्रिब्यूट के साइज़ की सीमाओं की वजह से, यह हमेशा <redacted> होगा.
genkit/path ट्रैक में इस चरण तक ले जाने वाला, पूरी तरह से सही क्रियान्वयन पाथ. इसमें टाइप की जानकारी भी शामिल होती है.
genkit/state इस स्पैन के एक्ज़ीक्यूशन की स्थिति, success या error के तौर पर.
genkit/type इस स्पैन से जुड़ा Genkit प्राइमिटिव टाइप. फ़्लो के लिए, यह action होगा.

लॉग

Firebase Genkit मॉनिटरिंग की सुविधा वाले डिप्लॉय किए गए ऐप्लिकेशन के लिए, लॉग का इस्तेमाल इनपुट, आउटपुट, और कॉन्फ़िगरेशन मेटाडेटा को कैप्चर करने के लिए किया जाता है. इससे, एआई की सुविधा के हर चरण के बारे में ज़्यादा जानकारी मिलती है.

सभी लॉग में, शेयर किए गए ये मेटाडेटा फ़ील्ड शामिल होंगे:

फ़ील्ड का नाम ब्यौरा
insertId लॉग एंट्री के लिए यूनीक आईडी
jsonPayload वैरिएबल की जानकारी के लिए कंटेनर, जो हर लॉग टाइप के लिए यूनीक होता है
लेबल {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Cloud को लॉग मिलने का समय
संसाधन लॉग के सोर्स के बारे में जानकारी. इसमें डिप्लॉयमेंट की जानकारी वाला क्षेत्र और projectId शामिल है
गंभीरता लिखा गया लॉग लेवल. Cloud का LogSeverity देखें
spanId इस लॉग को बनाने वाले स्पैन का आइडेंटिफ़ायर
timestamp क्लाइंट ने मैसेज कब लॉग किया
ट्रेस फ़ॉर्मैट projects/<project-id>/traces/<trace-id> के ट्रेस के लिए आइडेंटिफ़ायर
traceSampled बूलियन वैल्यू, जो बताती है कि ट्रेस का सैंपल लिया गया था या नहीं. लॉग का सैंपल नहीं लिया जाता.

हर लॉग टाइप के लिए, हर सेक्शन में अलग-अलग JSON पेलोड होगा.

इनपुट

JSON पेलोड:

फ़ील्ड का नाम ब्यौरा
मैसेज [genkit] Input[<path>, <featureName>], जिसमें कई हिस्सों वाले मैसेज के लिए (message X of N) भी शामिल है
मेटाडेटा ज़्यादा जानकारी, जिसमें कार्रवाई के लिए भेजा गया इनपुट मैसेज शामिल है

मेटाडेटा:

फ़ील्ड का नाम ब्यौरा
content इस Genkit ऐक्शन को भेजा गया इनपुट मैसेज का कॉन्टेंट
featureName Genkit फ़्लो, ऐक्शन, टूल, यूटिल या हेल्पर का नाम.
messageIndex * एक से ज़्यादा मैसेज वाले इनपुट के लिए, मैसेज के क्रम को दिखाने वाला इंडेक्स. एक मैसेज के लिए, यह हमेशा 0 होगा.
model * मॉडल का नाम.
पाथ वह एक्ज़ीक्यूशन पाथ जिसने step1 > step2 > step3 फ़ॉर्मैट का यह लॉग जनरेट किया
partIndex * एक से ज़्यादा हिस्सों वाले मैसेज के लिए, मैसेज के हिस्सों के क्रम को दिखाने वाला इंडेक्स. आम तौर पर, ऐसा तब होता है, जब एक ही इनपुट में टेक्स्ट और इमेज को जोड़ा जाता है.
qualifiedPath वह एक्सीक्यूशन पाथ जिसने यह लॉग जनरेट किया. इसमें फ़ॉर्मैट के टाइप की जानकारी भी शामिल है: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * इस इनपुट के लिए मैसेज की कुल संख्या. एक मैसेज के लिए, यह हमेशा 1 होगा.
totalParts * इस मैसेज के हिस्सों की कुल संख्या. एक हिस्से वाले मैसेज के लिए, यह हमेशा 1 होगा.

(*) स्टार के निशान वाले आइटम, मॉडल इंटरैक्शन के लिए सिर्फ़ इनपुट लॉग में मौजूद होते हैं.

आउटपुट

JSON पेलोड:

फ़ील्ड का नाम ब्यौरा
मैसेज [genkit] Output[<path>, <featureName>], जिसमें एक से ज़्यादा हिस्सों वाले मैसेज के लिए (message X of N) भी शामिल है
मेटाडेटा ज़्यादा जानकारी, जिसमें कार्रवाई के लिए भेजा गया इनपुट मैसेज शामिल है

मेटाडेटा:

फ़ील्ड का नाम ब्यौरा
candidateIndex * (अब काम नहीं करता) इंडेक्स, जो एक से ज़्यादा उम्मीदवारों वाले आउटपुट के लिए, उम्मीदवारों के क्रम को दिखाता है. एक ही उम्मीदवार वाले लॉग के लिए, यह वैल्यू हमेशा 0 होगी.
content Genkit ऐक्शन से जनरेट किया गया आउटपुट मैसेज
featureName Genkit फ़्लो, ऐक्शन, टूल, यूटिल या हेल्पर का नाम.
messageIndex * एक से ज़्यादा मैसेज वाले इनपुट के लिए, मैसेज के क्रम को दिखाने वाला इंडेक्स. एक मैसेज के लिए, यह हमेशा 0 होगा.
model * मॉडल का नाम.
पाथ वह एक्सीक्यूशन पाथ जिसने `step1 > step2 > step3` फ़ॉर्मैट का यह लॉग जनरेट किया
partIndex * एक से ज़्यादा हिस्सों वाले मैसेज के लिए, मैसेज के हिस्सों के क्रम को दिखाने वाला इंडेक्स. आम तौर पर, ऐसा तब होता है, जब टेक्स्ट और इमेज को एक ही आउटपुट में जोड़ा जाता है.
qualifiedPath वह एक्सीक्यूशन पाथ जिसने यह लॉग जनरेट किया. इसमें फ़ॉर्मैट के टाइप की जानकारी भी शामिल है: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (अब सेवा में नहीं है) आउटपुट के तौर पर जनरेट किए गए उम्मीदवारों की कुल संख्या. किसी एक उम्मीदवार के मैसेज के लिए, यह वैल्यू हमेशा 1 होगी.
totalParts * इस मैसेज के हिस्सों की कुल संख्या. एक हिस्से वाले मैसेज के लिए, यह हमेशा 1 होगा.

(*) स्टार के निशान वाले आइटम, मॉडल इंटरैक्शन के लिए सिर्फ़ आउटपुट लॉग में मौजूद होते हैं.

कॉन्फ़िगरेशन

JSON पेलोड:

फ़ील्ड का नाम ब्यौरा
मैसेज [genkit] Config[<path>, <featureName>]
मेटाडेटा ज़्यादा जानकारी, जिसमें कार्रवाई के लिए भेजा गया इनपुट मैसेज शामिल है

मेटाडेटा:

फ़ील्ड का नाम ब्यौरा
featureName Genkit फ़्लो, ऐक्शन, टूल, यूटिल या हेल्पर का नाम.
मॉडल मॉडल का नाम.
पाथ वह एक्सीक्यूशन पाथ जिसने `step1 > step2 > step3` फ़ॉर्मैट का यह लॉग जनरेट किया
qualifiedPath वह एक्सीक्यूशन पाथ जिसने यह लॉग जनरेट किया. इसमें फ़ॉर्मैट के टाइप की जानकारी भी शामिल है: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source Genkit लाइब्रेरी में इस्तेमाल की गई भाषा. यह हमेशा 'ts' पर सेट रहेगा, क्योंकि यह एकमात्र ऐसी भाषा है जिसमें यह सुविधा काम करती है.
sourceVersion Genkit लाइब्रेरी का वर्शन.
तापमान मॉडल के लिए इस्तेमाल किया गया तापमान.

पथ

JSON पेलोड:

फ़ील्ड का नाम ब्यौरा
मैसेज [genkit] Paths[<path>, <featureName>]
मेटाडेटा ज़्यादा जानकारी, जिसमें कार्रवाई के लिए भेजा गया इनपुट मैसेज शामिल है

मेटाडेटा:

फ़ील्ड का नाम ब्यौरा
flowName Genkit फ़्लो, ऐक्शन, टूल, यूटिल या हेल्पर का नाम.
पाथ इकट्ठा किए गए स्पैन के लिए, सभी एक्सीक्यूशन पाथ वाला कलेक्शन.