ปลั๊กอิน Google Cloud

ปลั๊กอิน 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