ปลั๊กอิน Google Cloud

ปลั๊กอิน Google Cloud จะส่งออกการวัดและส่งข้อมูลทางไกลและข้อมูลการบันทึกของ Firebase Genkit ไปยัง ชุดการดำเนินการของ Google Cloud

การติดตั้ง

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

หากต้องการเรียกใช้โฟลว์ที่ใช้ปลั๊กอินนี้ในเครื่อง คุณจะต้องติดตั้งเครื่องมือ Google Cloud CLI ด้วย

ตั้งค่าบัญชี Google Cloud

ปลั๊กอินนี้ต้องใช้บัญชี Google Cloud (ลงชื่อสมัครใช้หากยังไม่มีบัญชี) และโปรเจ็กต์ Google Cloud

ก่อนที่จะเพิ่มปลั๊กอิน โปรดตรวจสอบว่าได้เปิดใช้ API ต่อไปนี้สำหรับโปรเจ็กต์ของคุณแล้ว

API เหล่านี้ควรแสดงอยู่ในแดชบอร์ด API ของโปรเจ็กต์

คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดและปิดใช้ API

การกําหนดค่า Genkit

หากต้องการเปิดใช้การส่งออกไปยังการติดตาม การบันทึก และการตรวจสอบของ Google Cloud ให้เพิ่มปลั๊กอิน googleCloud ลงในการกำหนดค่า Genkit โดยทำดังนี้

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

export default configureGenkit({
  plugins: [googleCloud()],
  enableTracingAndMetrics: true,
  telemetry: {
    instrumentation: 'googleCloud',
    logger: 'googleCloud',
  },
});

เมื่อทํางานในเวอร์ชันที่ใช้งานจริง ระบบจะส่งออกข้อมูลการวัดผลโดยอัตโนมัติ

การตรวจสอบสิทธิ์

ปลั๊กอินต้องใช้รหัสโปรเจ็กต์ 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"
}'

การกำหนดค่าปลั๊กอิน

ปลั๊กอิน googleCloud() รับออบเจ็กต์การกำหนดค่าที่ไม่บังคับดังนี้

{
    projectId?: string,
    telemetryConfig?: TelemetryConfig
}

projectId

ตัวเลือกนี้ช่วยให้ระบุรหัสโปรเจ็กต์ Google Cloud ได้อย่างชัดเจน ในกรณีส่วนใหญ่ คุณไม่จำเป็นต้องดำเนินการนี้

telemetryConfig

ตัวเลือกนี้จะกำหนดค่าอินสแตนซ์ OpenTelemetry NodeSDK

import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';

googleCloud({
  telemetryConfig: {
    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,
  },
});

ForceDevExport

ตัวเลือกนี้จะบังคับให้ Genkit ส่งออกข้อมูลบันทึกทางไกลและข้อมูลบันทึกเมื่อทำงานในสภาพแวดล้อม dev (เช่น ในเครื่อง)

วิดีโอตัวอย่าง

ในกรณีที่ส่งออกการติดตามทั้งหมดไม่ได้ OpenTelemetry จะอนุญาตการสุ่มตัวอย่างการติดตาม

ตัวอย่างที่กำหนดค่าไว้ล่วงหน้ามีอยู่ 4 รายการดังนี้

  • AlwaysOnSampler - สุ่มตัวอย่างการติดตามทั้งหมด
  • AlwaysOffSampler - ไม่สุ่มตัวอย่างร่องรอย
  • ตามหลัก - ตัวอย่างตามสแปนระดับบน
  • TraceIdRatioBased - สุ่มตัวอย่างการติดตามตามเปอร์เซ็นต์ที่กำหนดได้

autoInstrumentation และ autoInstrumentationConfig

การเปิดใช้การวัดคุมอัตโนมัติช่วยให้ OpenTelemetry บันทึกการวัดและส่งข้อมูลทางไกลจากไลบรารีของบุคคลที่สามได้โดยไม่ต้องแก้ไขโค้ด

ช่วงการส่งออกของเมตริก

ฟิลด์นี้ระบุช่วงเวลาการส่งออกเมตริกเป็นมิลลิวินาที

ทดสอบการผสานรวม

เมื่อกําหนดค่าปลั๊กอิน ให้ใช้ forceDevExport: true เพื่อเปิดใช้การส่งออกข้อมูลการวัดผลสําหรับการเรียกใช้ในเครื่อง วิธีนี้เป็นวิธีที่รวดเร็วในการส่งเหตุการณ์แรกเพื่อตรวจสอบใน Google Cloud

การตรวจสอบการผลิตผ่านชุดการดำเนินการของ Google Cloud

เมื่อทำให้โฟลว์ใช้งานได้แล้ว ให้ไปที่ชุดเครื่องมือการดำเนินการของ Google Cloud แล้วเลือกโปรเจ็กต์

บันทึกและการติดตาม

จากเมนูด้านข้าง ให้ค้นหา "การบันทึก" แล้วคลิก "เครื่องมือสำรวจบันทึก"

คุณจะเห็นบันทึกทั้งหมดที่เชื่อมโยงกับขั้นตอนที่ทำให้ใช้งานได้แล้ว รวมถึง console.log() บันทึกที่มีคํานําหน้า [genkit] คือบันทึก Genkit-internal ที่มีข้อมูลที่คุณอาจสนใจในการแก้ไขข้อบกพร่อง เช่น บันทึก Genkit ในรูปแบบ Config[...] มีข้อมูลเมตา เช่น ค่าอุณหภูมิและ topK สําหรับการอนุมาน LLM ที่เฉพาะเจาะจง บันทึกในรูปแบบ Output[...] จะมีคําตอบ LLM ส่วนบันทึก Input[...] จะมีพรอมต์ Cloud Logging มี ACL ที่มีประสิทธิภาพซึ่งช่วยให้ควบคุมบันทึกที่มีความละเอียดอ่อนได้แบบละเอียด

สำหรับบรรทัดบันทึกที่เฉพาะเจาะจง คุณสามารถไปยังการติดตามที่เกี่ยวข้องได้โดยคลิกไอคอนเมนูแบบขยาย แล้วเลือก "ดูในรายละเอียดการติดตาม"

การดำเนินการนี้จะแสดงแผงแสดงตัวอย่างการติดตามเพื่อให้ดูรายละเอียดการติดตามได้อย่างรวดเร็ว หากต้องการดูรายละเอียดทั้งหมด ให้คลิก "ดูใน Trace" ที่ด้านขวาบนของแผง

องค์ประกอบการนําทางที่โดดเด่นที่สุดใน Cloud Trace คือผังกระจายของร่องรอย ซึ่งประกอบด้วยร่องรอยที่รวบรวมทั้งหมดในระยะเวลาที่ระบุ

การคลิกจุดข้อมูลแต่ละจุดจะแสดงรายละเอียดใต้แผนภูมิกระจาย

มุมมองรายละเอียดจะมีรูปร่างของโฟลว์ ซึ่งรวมถึงขั้นตอนทั้งหมด และข้อมูลเวลาที่สำคัญ Cloud Trace สามารถแทรกบันทึกทั้งหมดที่เชื่อมโยงกับการติดตามหนึ่งๆ ภายในมุมมองนี้ได้ เลือกช่องทำเครื่องหมาย "แสดงแบบขยาย" ในตัวเลือก "บันทึกและ กิจกรรม" เมนูแบบเลื่อนลง

มุมมองผลลัพธ์ช่วยให้ตรวจสอบบันทึกอย่างละเอียดในบริบทของการติดตามได้ รวมถึงพรอมต์และคำตอบของ LLM

เมตริก

คุณดูเมตริกทั้งหมดที่ Genkit ส่งออกได้โดยเลือก "การบันทึก" จากเมนูด้านข้าง แล้วคลิก "การจัดการเมตริก"

คอนโซลการจัดการเมตริกมีมุมมองตารางของเมตริกที่รวบรวมทั้งหมด รวมถึงเมตริกที่เกี่ยวข้องกับ Cloud Run และสภาพแวดล้อมรอบข้าง การคลิกตัวเลือก "ปริมาณงาน" จะแสดงรายการที่มีเมตริกที่ Genkit รวบรวม เมตริกที่มีคำนำหน้า genkit จะเป็นเมตริก Genkit ภายใน

Genkit จะรวบรวมเมตริกหลายประเภท รวมถึงเมตริกระดับโฟลว์ ระดับการดำเนินการ และระดับการสร้าง เมตริกแต่ละรายการมีมิติข้อมูลที่มีประโยชน์หลายรายการที่ช่วยให้กรองและจัดกลุ่มได้อย่างมีประสิทธิภาพ

มิติข้อมูลทั่วไป ได้แก่

  • flow_name - ชื่อระดับบนสุดของขั้นตอน
  • flow_path - สแปนและห่วงโซ่สแปนระดับบนไปจนถึงสแปนระดับรูท
  • error_code - ในกรณีที่เกิดข้อผิดพลาด ให้ระบุรหัสข้อผิดพลาดที่เกี่ยวข้อง
  • error_message - ในกรณีที่เกิดข้อผิดพลาด ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
  • model - ชื่อของโมเดล
  • temperature - ค่าอุณหภูมิที่คาดคะเน
  • topK - ค่าบนสุดจากการอนุมาน
  • topP - ค่า topP ของการอนุมาน

เมตริกระดับโฟลว์

ชื่อ มิติข้อมูล
genkit/flow/requests flow_name, error_code, error_message
genkit/flow/latency flow_name

เมตริกระดับการดำเนินการ

ชื่อ มิติข้อมูล
Genkit/การดำเนินการ/คำขอ flow_name, error_code, error_message
Genkit/แอ็กชัน/เวลาในการตอบสนอง ชื่อโฟลว์

สร้างเมตริกระดับ

ชื่อ มิติข้อมูล
Genkit/AI/สร้าง flow_path, model, temperature, topK, topP, error_code, error_message
genkit/ai/generate/input_tokens โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
Genkit/ai/generate/output_tokens โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
genkit/ai/generate/input_characters โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
genkit/ai/generate/output_characters flow_path, model, temperature, topK, topP
Genkit/ai/generate/input_images โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
Genkit/ai/generate/output_images flow_path, model, temperature, topK, topP
genkit/ai/generate/latency flow_path, model, temperature, topK, topP, error_code, error_message

การแสดงภาพเมตริกทำได้ผ่านเครื่องมือสํารวจเมตริก เลือก "การบันทึก" โดยใช้เมนูด้านข้าง แล้วคลิก "เครื่องมือสํารวจเมตริก"

เลือกเมตริกโดยคลิก "เลือกเมตริก" แบบเลื่อนลง แล้วเลือก "โหนดทั่วไป" "Genkit" และเมตริก

การแสดงภาพของเมตริกจะขึ้นอยู่กับประเภทของเมตริก (ตัวนับ ฮิสโตแกรม ฯลฯ) เครื่องมือสํารวจเมตริกมีเครื่องมือรวบรวมและค้นหาที่มีประสิทธิภาพเพื่อช่วยสร้างกราฟเมตริกตามมิติข้อมูลต่างๆ

ความล่าช้าของข้อมูลที่ได้รับจากทางไกล

อาจมีความล่าช้าเล็กน้อยก่อนที่การวัดและส่งข้อมูลทางไกลสำหรับการดำเนินการบางอย่างของโฟลว์จะปรากฏในชุดการดำเนินการของ Cloud ในกรณีส่วนใหญ่ ความล่าช้านี้จะน้อยกว่า 1 นาที

โควต้าและขีดจำกัด

โควต้าที่สำคัญที่ควรทราบมีดังนี้

ค่าใช้จ่าย

Cloud Logging, Cloud Trace และ Cloud Monitoring มีระดับการใช้งานแบบไม่มีค่าใช้จ่ายที่คุ้มค่า ดูราคาที่เจาะจงได้ที่ลิงก์ต่อไปนี้