ปลั๊กอิน Google Cloud จะส่งออกข้อมูลการวัดและการบันทึกของ Firebase Genkit ไปยังชุดโปรแกรมสําหรับการดําเนินการของ Google Cloud ซึ่งขับเคลื่อนหน้าแดชบอร์ดการตรวจสอบ AI ของ Firebase (เวอร์ชันตัวอย่างแบบจำกัด)
การติดตั้ง
npm i --save @genkit-ai/google-cloud
หากต้องการเรียกใช้โฟลว์ที่ใช้ปลั๊กอินนี้ในเครื่อง คุณจะต้องติดตั้งเครื่องมือ Google Cloud CLI ด้วย
ตั้งค่าบัญชี Google Cloud
ปลั๊กอินนี้ต้องใช้บัญชี Google Cloud (ลงชื่อสมัครใช้หากยังไม่มี) และโปรเจ็กต์ Google Cloud
ก่อนเพิ่มปลั๊กอิน โปรดตรวจสอบว่าได้เปิดใช้ API ต่อไปนี้สําหรับโปรเจ็กต์แล้ว
API เหล่านี้ควรแสดงอยู่ในหน้าแดชบอร์ด API ของโปรเจ็กต์
คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดและปิดใช้ API
การกําหนดค่า Genkit
หากต้องการเปิดใช้การส่งออกไปยังการติดตาม การบันทึก และการตรวจสอบของ Google Cloud ให้เรียกใช้ enableGoogleCloudTelemetry()
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
เมื่อทํางานในเวอร์ชันที่ใช้งานจริง ระบบจะส่งออกข้อมูลการวัดผลโดยอัตโนมัติ
การตรวจสอบสิทธิ์
ปลั๊กอินต้องใช้รหัสโปรเจ็กต์ Google Cloud และข้อมูลเข้าสู่ระบบโปรเจ็กต์ Google Cloud หากคุณเรียกใช้ขั้นตอนจากสภาพแวดล้อม Google Cloud (Cloud Functions, Cloud Run ฯลฯ) ระบบจะตั้งค่ารหัสโปรเจ็กต์และข้อมูลเข้าสู่ระบบโดยอัตโนมัติ
ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน
การทำงานในสภาพแวดล้อมอื่นๆ กำหนดให้ต้องตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_PROJECT
ให้กับโปรเจ็กต์ Google Cloud และตรวจสอบสิทธิ์โดยใช้เครื่องมือ gcloud
gcloud auth application-default login
ดูข้อมูลเพิ่มเติมได้ที่เอกสารข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
ข้อมูลเข้าสู่ระบบบัญชีบริการ
หากใช้บัญชีบริการและทำงานนอกสภาพแวดล้อม Google Cloud คุณสามารถตั้งค่าข้อมูลเข้าสู่ระบบเป็นตัวแปรสภาพแวดล้อมได้ ทําตามวิธีการที่นี่เพื่อตั้งค่าคีย์บัญชีบริการ Google Cloud
เมื่อดาวน์โหลดไฟล์คีย์แล้ว คุณจะระบุข้อมูลเข้าสู่ระบบได้ 2 วิธี ได้แก่ ตำแหน่งไฟล์โดยใช้ตัวแปรสภาพแวดล้อม 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,
});
ออบเจ็กต์การกําหนดค่าช่วยให้ควบคุมแง่มุมต่างๆ ของการส่งออกข้อมูลการวัดและส่งข้อมูลทางไกลที่ระบุไว้ด้านล่างได้
ข้อมูลเข้าสู่ระบบ
อนุญาตให้ระบุข้อมูลเข้าสู่ระบบโดยตรงโดยใช้ JWTInput จากไลบรารี google-auth
แซมเพลอร์
ในกรณีที่การส่งออกร่องรอยทั้งหมดไม่สามารถทำได้ OpenTelemetry อนุญาตให้สุ่มตัวอย่างร่องรอย
เครื่องมือสุ่มตัวอย่างที่กำหนดค่าไว้ล่วงหน้ามี 4 รายการดังนี้
- AlwaysOnSampler - บันทึกตัวอย่างร่องรอยทั้งหมด
- AlwaysOffSampler - ไม่สุ่มตัวอย่างร่องรอย
- ParentBased - ตัวอย่างตามช่วงของรายการหลัก
- TraceIdRatioBased - สุ่มตัวอย่างการติดตามตามเปอร์เซ็นต์ที่กำหนดค่าได้
autoInstrumentation และ autoInstrumentationConfig
การเปิดใช้เครื่องมือวัดอัตโนมัติช่วยให้ OpenTelemetry สามารถบันทึกข้อมูลการวัดผลจากไลบรารีของบุคคลที่สามได้โดยไม่ต้องแก้ไขโค้ด
metricExportIntervalMillis
ช่องนี้จะระบุช่วงเวลาการส่งออกเมตริกเป็นมิลลิวินาที
metricExportTimeoutMillis
ช่องนี้จะระบุการหมดเวลาสําหรับการส่งออกเมตริกเป็นมิลลิวินาที
disableMetrics
ระบุการลบล้างที่ปิดใช้การส่งออกเมตริกขณะที่ยังคงส่งออกร่องรอยและบันทึก
disableTraces
ระบุการลบล้างที่ปิดใช้การส่งออกร่องรอยขณะที่ยังคงส่งออกเมตริกและบันทึก
disableLoggingIO
ให้การลบล้างที่ปิดใช้การเก็บรวบรวมบันทึกอินพุตและเอาต์พุต
forceDevExport
ตัวเลือกนี้จะบังคับให้ Genkit ส่งออกข้อมูลการวัดและการบันทึกเมื่อทํางานในสภาพแวดล้อม dev
(เช่น ในเครื่อง)
ทดสอบการผสานรวม
เมื่อกําหนดค่าปลั๊กอิน ให้ใช้ forceDevExport: true
เพื่อเปิดใช้การส่งออกข้อมูลการวัดผลสําหรับการเรียกใช้ในเครื่อง ไปที่เครื่องมือสำรวจบันทึก เมตริก หรือการติดตามของ Google Cloud เพื่อดูการวัดผล หรือไปที่หน้าแดชบอร์ดการตรวจสอบ AI ของ Firebase (เวอร์ชันตัวอย่างแบบจำกัด) เพื่อดูมุมมองการวัดผลที่เหมาะกับ AI