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 फ़्लो, ऐक्शन, टूल, यूटिल या हेल्पर का नाम. |
पाथ | इकट्ठा किए गए स्पैन के लिए, सभी एक्सीक्यूशन पाथ वाला कलेक्शन. |