Google Cloud प्लगिन

Google Cloud प्लग इन, Firebase Genkit के टेलीमेट्री और लॉगिंग डेटा को Google Cloud के ऑपरेशंस सुइट में एक्सपोर्ट करता है. इससे Firebase एआई मॉनिटरिंग डैशबोर्ड (निजी झलक) को बेहतर बनाने में मदद मिलती है.

इंस्टॉल करना

npm i --save @genkit-ai/google-cloud

अगर आपको इस प्लग इन का इस्तेमाल करने वाले फ़्लो को स्थानीय तौर पर चलाना है, तो आपके पास Google Cloud CLI टूल भी इंस्टॉल होना चाहिए.

Google Cloud खाता सेट अप करना

इस प्लग इन के लिए, आपके पास Google Cloud खाता और Google Cloud प्रोजेक्ट होना चाहिए. अगर आपके पास पहले से कोई खाता नहीं है, तो साइन अप करें.

प्लग इन जोड़ने से पहले, पक्का करें कि आपके प्रोजेक्ट के लिए ये एपीआई चालू हों:

ये एपीआई, आपके प्रोजेक्ट के लिए एपीआई डैशबोर्ड में मौजूद होने चाहिए.

एपीआई चालू और बंद करने के बारे में ज़्यादा जानने के लिए, यहां क्लिक करें.

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

Google Cloud ट्रैकिंग, लॉगिंग, और मॉनिटरिंग में डेटा एक्सपोर्ट करने की सुविधा चालू करने के लिए, enableGoogleCloudTelemetry() को कॉल करें:

import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';

enableGoogleCloudTelemetry();

प्रोडक्शन में चलने पर, आपका टेलीमेट्री डेटा अपने-आप एक्सपोर्ट हो जाता है.

पुष्टि करना

प्लग इन के लिए, Google Cloud प्रोजेक्ट आईडी और Google Cloud प्रोजेक्ट के क्रेडेंशियल की ज़रूरत होती है. अगर Google Cloud के एनवायरमेंट (Cloud Functions, Cloud Run वगैरह) से फ़्लो चलाया जा रहा है, तो प्रोजेक्ट आईडी और क्रेडेंशियल अपने-आप सेट हो जाते हैं.

ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल

अन्य एनवायरमेंट में चलाने के लिए, अपने Google Cloud प्रोजेक्ट में GCLOUD_PROJECT एनवायरमेंट वैरिएबल सेट करना होगा. साथ ही, gcloud टूल का इस्तेमाल करके पुष्टि करनी होगी:

gcloud auth application-default login

ज़्यादा जानकारी के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के दस्तावेज़ देखें.

सेवा खाते के क्रेडेंशियल

अगर किसी सेवा खाते का इस्तेमाल किया जा रहा है और वह Google Cloud के एनवायरमेंट के बाहर चल रहा है, तो अपने क्रेडेंशियल को एनवायरमेंट वैरिएबल के तौर पर सेट किया जा सकता है. Google Cloud सेवा खाता कुंजी सेट अप करने के लिए, यहां दिए गए निर्देशों का पालन करें.

कुंजी फ़ाइल डाउनलोड करने के बाद, क्रेडेंशियल दो तरीकों से दिए जा सकते हैं. पहला, GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल का इस्तेमाल करके फ़ाइल की जगह की जानकारी देना. दूसरा, सीधे तौर पर json फ़ाइल के कॉन्टेंट को एनवायरमेंट वैरिएबल GCLOUD_SERVICE_ACCOUNT_CREDS में कॉपी करना.

फ़ाइल का पाथ:

GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"

डायरेक्ट कॉपी:

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 - सभी ट्रेस का सैंपल लेता है
  • AlwaysOffSampler - कोई डेटा ट्रैक नहीं करता
  • ParentBased - पैरंट स्पैन के आधार पर सैंपल
  • TraceIdRatioBased - यह ट्रेस का कॉन्फ़िगर किया जा सकने वाला प्रतिशत सैंपल करता है

autoInstrumentation और autoInstrumentationConfig

अपने-आप इंस्ट्रूमेंटेशन चालू करने से, OpenTelemetry को कोड में बदलाव किए बिना, तीसरे पक्ष की लाइब्रेरी से टेलीमेट्री डेटा कैप्चर करने की सुविधा मिलती है.

metricExportIntervalMillis

इस फ़ील्ड में, मेट्रिक एक्सपोर्ट इंटरवल को मिलीसेकंड में बताया जाता है.

metricExportTimeoutMillis

इस फ़ील्ड में, मेट्रिक एक्सपोर्ट के लिए मिलीसेकंड में टाइम आउट तय किया जाता है.

disableMetrics

यह एक बदलाव है, जो ट्रेस और लॉग एक्सपोर्ट करते समय, मीट्रिक एक्सपोर्ट करने की सुविधा बंद कर देता है.

disableTraces

यह एक बदलाव है, जो मेट्रिक और लॉग एक्सपोर्ट करते समय, ट्रेस एक्सपोर्ट करने की सुविधा बंद कर देता है.

disableLoggingIO

इनपुट और आउटपुट लॉग इकट्ठा करने की सुविधा को बंद करने वाला बदलाव.

forceDevExport

इस विकल्प की मदद से, Genkit को dev एनवायरमेंट (जैसे, स्थानीय तौर पर) में चलने पर, टेलीमेट्री और लॉग डेटा को एक्सपोर्ट करने के लिए मजबूर किया जाएगा.

अपने इंटिग्रेशन की जांच करना

प्लग इन को कॉन्फ़िगर करते समय, स्थानीय रन के लिए टेलीमेट्री एक्सपोर्ट करने की सुविधा चालू करने के लिए, forceDevExport: true का इस्तेमाल करें. टेलीमेट्री देखने के लिए, Google Cloud लॉग, मेट्रिक या ट्रेस एक्सप्लोरर पर जाएं. इसके अलावा, टेलीमेट्री के एआई-आइडिओम वाले व्यू के लिए, Firebase एआई मॉनिटरिंग डैशबोर्ड (निजी झलक) पर जाएं.