ปลั๊กอิน 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 Tracing, Logging และ Monitoring ให้เพิ่มปลั๊กอิน 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

สำหรับข้อมูลเพิ่มเติม โปรดดูที่เอกสารข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน

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

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

{
    projectId?: string,
    telemetryConfig?: TelemetryConfig
}

projectId

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

การกำหนดค่าทางไกล

ตัวเลือกนี้จะกำหนดค่าอินสแตนซ์ 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 บันทึกการวัดและส่งข้อมูลทางไกลจากไลบรารีของบุคคลที่สามได้โดยไม่ต้องแก้ไขโค้ด

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

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

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

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

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

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

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

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

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

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

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

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

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

เมตริก

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

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

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

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

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

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

ชื่อ มิติข้อมูล
Genkit/flow/requests flow_name, error_code, error_message
Genkit/flow/เวลาในการตอบสนอง ชื่อโฟลว์

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

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

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

ชื่อ มิติข้อมูล
Genkit/AI/สร้าง Dataflow_path, โมเดล, อุณหภูมิ, 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 โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
Genkit/ai/generate/input_images โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
Genkit/ai/generate/output_images โฟลว์_เส้นทาง, โมเดล, อุณหภูมิ, TopK, TopP
Genkit/AI/สร้าง/เวลาในการตอบสนอง Dataflow_path, โมเดล, อุณหภูมิ, topK, topP, error_code, error_message

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

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

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

ความล่าช้าของการส่งข้อมูลทางไกล

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

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

มีโควต้าหลายอย่างที่ควรทราบ ดังนี้

ค่าใช้จ่าย

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