ปลั๊กอิน 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 บันทึกการวัดและส่งข้อมูลทางไกลจากไลบรารีของบุคคลที่สามได้โดยไม่ต้องแก้ไขโค้ด
ช่วงการส่งออกของเมตริก
ฟิลด์นี้ระบุช่วงเวลาการส่งออกเมตริกเป็นมิลลิวินาที
ทดสอบการผสานรวม
เมื่อกำหนดค่าปลั๊กอิน ให้ใช้ forceDevExport: true
เพื่อเปิดใช้การส่งออกการวัดและส่งข้อมูลทางไกลสำหรับการเรียกใช้ในเครื่อง วิธีนี้เป็นวิธีที่รวดเร็วในการส่งกิจกรรมแรกเข้ารับการตรวจสอบใน Google Cloud
การตรวจสอบการผลิตผ่านชุดการดำเนินการของ 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 Trace
- 128 ไบต์ต่อคีย์แอตทริบิวต์
- 256 ไบต์ต่อค่าแอตทริบิวต์
- โควต้า Cloud Logging
- 256 KB ต่อรายการบันทึก
- โควต้า Cloud Monitoring
ค่าใช้จ่าย
Cloud Logging, Cloud Trace และ Cloud Monitoring มีระดับแบบไม่เสียค่าใช้จ่ายมากมาย ดูราคาที่เฉพาะเจาะจงได้ที่ลิงก์ต่อไปนี้