ปลั๊กอิน Google Cloud จะส่งออกข้อมูลการวัดและการบันทึกของ Firebase Genkit ไปยังชุดเครื่องมือตรวจสอบ Cloud ซึ่งขับเคลื่อนแดชบอร์ดการตรวจสอบ AI ของ Firebase
การติดตั้ง
npm i --save @genkit-ai/google-cloud
เมื่อเรียกใช้โค้ด Genkit ในเครื่องซึ่งมีปลั๊กอินนี้ คุณจะต้องติดตั้งเครื่องมือ CLI ของ Google Cloud ด้วย
ตั้งค่าบัญชี Google Cloud
ปลั๊กอินนี้ต้องใช้บัญชี/โปรเจ็กต์ Google Cloud โปรเจ็กต์ Firebase ทั้งหมดจะมีคอนโซลนี้โดยค่าเริ่มต้น (คอนโซล GCP) หรือคุณจะลงชื่อสมัครใช้ที่ https://cloud.google.com ก็ได้
ก่อนเพิ่มปลั๊กอิน ให้ตรวจสอบว่าได้เปิดใช้ API ต่อไปนี้สําหรับโปรเจ็กต์ GCP แล้ว
API เหล่านี้ควรแสดงอยู่ในหน้าแดชบอร์ด API ของโปรเจ็กต์
คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดและปิดใช้ API
การกําหนดค่า Genkit
หากต้องการเปิดใช้การติดตาม การบันทึก และการตรวจสอบ (เมตริก) ของ Cloud ให้เรียกใช้
enableGoogleCloudTelemetry()
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
เมื่อทํางานในเวอร์ชันที่ใช้งานจริง ระบบจะส่งออกข้อมูลการวัดผลโดยอัตโนมัติ
การตรวจสอบสิทธิ์และการให้สิทธิ์
ปลั๊กอินต้องใช้รหัสโปรเจ็กต์ Google Cloud และข้อมูลเข้าสู่ระบบแอปพลิเคชัน
Google Cloud
หากทำให้โค้ดใช้งานได้ในสภาพแวดล้อม Google Cloud (Cloud Functions, Cloud Run ฯลฯ) ระบบจะค้นหารหัสโปรเจ็กต์และข้อมูลเข้าสู่ระบบโดยอัตโนมัติผ่านข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
คุณจะต้องกำหนดบทบาทต่อไปนี้ให้กับบัญชีบริการที่เรียกใช้โค้ด (เช่น "บัญชีบริการที่แนบมา") ผ่านคอนโซล IAM
roles/monitoring.metricWriter
roles/cloudtrace.agent
roles/logging.logWriter
การพัฒนาในพื้นที่
เมื่อทําการพัฒนาในเครื่อง คุณจะต้องทําตามขั้นตอนเพิ่มเติมเพื่อให้ข้อมูลเข้าสู่ระบบของผู้ใช้พร้อมใช้งานสําหรับปลั๊กอิน
ตั้งค่าตัวแปรสภาพแวดล้อม
GCLOUD_PROJECT
เป็นโปรเจ็กต์ Google Cloudตรวจสอบสิทธิ์โดยใช้
gcloud
CLIgcloud auth application-default login
สภาพแวดล้อมเวอร์ชันที่ใช้งานจริงนอก Google Cloud
หากเป็นไปได้ เรายังคงขอแนะนำให้ใช้ประโยชน์จากกระบวนการข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันเพื่อให้ข้อมูลเข้าสู่ระบบพร้อมใช้งานสำหรับปลั๊กอิน
โดยปกติแล้ว ขั้นตอนนี้เกี่ยวข้องกับการสร้างคีย์/คู่บัญชีบริการและทำให้ข้อมูลเข้าสู่ระบบเหล่านั้นใช้งานได้ในสภาพแวดล้อมที่ใช้งานจริง
ทำตามวิธีการเพื่อตั้งค่าคีย์บัญชีบริการ
ตรวจสอบว่าบัญชีบริการมีบทบาทต่อไปนี้
roles/monitoring.metricWriter
roles/cloudtrace.agent
roles/logging.logWriter
ติดตั้งใช้งานไฟล์ข้อมูลเข้าสู่ระบบในเวอร์ชันที่ใช้งานจริง (อย่าตรวจสอบในซอร์สโค้ด)
ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
เป็นเส้นทางไปยังไฟล์ข้อมูลเข้าสู่ระบบGOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
ในสภาพแวดล้อมแบบเซิร์ฟเวอร์เสมือนบางสภาพแวดล้อม คุณอาจไม่สามารถทำให้ไฟล์ข้อมูลเข้าสู่ระบบใช้งานได้ ในกรณีนี้ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_SERVICE_ACCOUNT_CREDS
ด้วยเนื้อหาของไฟล์ข้อมูลเข้าสู่ระบบแทนขั้นตอนที่ 3 และ 4 ด้านบน ดังนี้
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 เพื่อดูการวัดผล
ชุดเครื่องมือความสามารถในการสังเกตของ Google Cloud
เมื่อทําให้การเผยแพร่โค้ด (เช่น เวิร์กโฟลว์) แล้ว ให้ไปที่แดชบอร์ด Cloud Monitoring แล้วเลือกโปรเจ็กต์ จากตรงนี้ คุณสามารถไปยังส่วนต่างๆ ของเครื่องมือสำรวจบันทึก เครื่องมือสำรวจเมตริก และเครื่องมือสำรวจการติดตามสําหรับการตรวจสอบเวอร์ชันที่ใช้งานจริงได้อย่างง่ายดาย
บันทึกและการติดตาม
จากเมนูด้านซ้ายมือ ให้คลิก "เครื่องมือสำรวจบันทึก" ในส่วนหัว "สํารวจ"
คุณจะเห็นบันทึกทั้งหมดที่เชื่อมโยงกับโค้ด Genkit ที่ติดตั้งใช้งาน
รวมถึง console.log()
บันทึกที่มีคำนำหน้า [genkit]
คือบันทึกภายในของ Genkit ที่มีข้อมูลที่อาจเป็นประโยชน์สำหรับการแก้ไขข้อบกพร่อง ตัวอย่างเช่น บันทึกของ 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
- ชื่อของโมเดล
เมตริกฟีเจอร์
ฟีเจอร์คือจุดแรกเข้าระดับบนสุดของโค้ด Genkit ในกรณีส่วนใหญ่ การดำเนินการนี้จะเป็นแบบโฟลว์ มิฉะนั้น จะเป็นสแปนที่อยู่บนสุดในการติดตาม
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
genkit/feature/requests | ตัวนับ | จำนวนคำขอ |
genkit/feature/latency | ฮิสโตแกรม | เวลาในการตอบสนองของการดำเนินการเป็นมิลลิวินาที |
เมตริกฟีเจอร์แต่ละรายการประกอบด้วยมิติข้อมูลต่อไปนี้
ชื่อ | คำอธิบาย |
---|---|
name | ชื่อของฟีเจอร์ ในกรณีส่วนใหญ่ นี่เป็นเวิร์กโฟลว์ Genkit ระดับบนสุด |
สถานะ | "success" หรือ "failure" โดยขึ้นอยู่กับว่าคำขอฟีเจอร์สำเร็จหรือไม่ |
ข้อผิดพลาด | ตั้งค่าเฉพาะเมื่อ status=failure มีประเภทข้อผิดพลาดที่ทําให้ดำเนินการไม่สําเร็จ |
source | ภาษาต้นฉบับของ Genkit เช่น 'ts' |
sourceVersion | เวอร์ชันเฟรมเวิร์ก Genkit |
เมตริกการกระทํา
การดําเนินการแสดงถึงขั้นตอนทั่วไปของการดำเนินการภายใน Genkit ขั้นตอนแต่ละขั้นตอนเหล่านี้จะมีการติดตามเมตริกต่อไปนี้
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
genkit/action/requests | ตัวนับ | จํานวนครั้งที่ดําเนินการนี้ |
genkit/action/latency | ฮิสโตแกรม | เวลาในการตอบสนองของการดำเนินการเป็นมิลลิวินาที |
เมตริกการกระทําแต่ละรายการประกอบด้วยมิติข้อมูลต่อไปนี้
ชื่อ | คำอธิบาย |
---|---|
name | ชื่อการดำเนินการ |
featureName | ชื่อของฟีเจอร์หลักที่ใช้งานอยู่ |
เส้นทาง | เส้นทางการเรียกใช้จากรูทฟีเจอร์ไปยังการดำเนินการนี้ เช่น '/myFeature/parentAction/thisAction' |
สถานะ | "สำเร็จ" หรือ "ไม่สำเร็จ" โดยขึ้นอยู่กับว่าการดำเนินการสำเร็จหรือไม่ |
ข้อผิดพลาด | ตั้งค่าเฉพาะเมื่อ status=failure มีประเภทข้อผิดพลาดที่ทําให้ดำเนินการไม่สําเร็จ |
source | ภาษาต้นฉบับของ Genkit เช่น 'ts' |
sourceVersion | เวอร์ชันเฟรมเวิร์ก Genkit |
สร้างเมตริก
เมตริกเหล่านี้คือเมตริกการกระทําพิเศษที่เกี่ยวข้องกับการกระทําที่โต้ตอบกับโมเดล นอกจากคำขอและเวลาในการตอบสนองแล้ว ระบบยังติดตามอินพุตและเอาต์พุตด้วย โดยมีมิติข้อมูลเฉพาะโมเดลที่ทําให้การแก้ไขข้อบกพร่องและการปรับการกําหนดค่าง่ายขึ้น
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
genkit/ai/generate/requests | ตัวนับ | จํานวนครั้งที่มีการเรียกใช้รูปแบบนี้ |
genkit/ai/generate/latency | ฮิสโตแกรม | เวลาในการตอบสนองของการดำเนินการเป็นมิลลิวินาที |
genkit/ai/generate/input/tokens | ตัวนับ | โทเค็นอินพุต |
genkit/ai/generate/output/tokens | ตัวนับ | โทเค็นเอาต์พุต |
genkit/ai/generate/input/characters | ตัวนับ | ป้อนอักขระ |
genkit/ai/generate/output/characters | ตัวนับ | อักขระเอาต์พุต |
genkit/ai/generate/input/images | ตัวนับ | รูปภาพอินพุต |
genkit/ai/generate/output/images | ตัวนับ | รูปภาพเอาต์พุต |
genkit/ai/generate/input/audio | ตัวนับ | ป้อนไฟล์เสียง |
genkit/ai/generate/output/audio | ตัวนับ | ไฟล์เสียงเอาต์พุต |
เมตริกที่สร้างขึ้นแต่ละรายการจะมีมิติข้อมูลต่อไปนี้
ชื่อ | คำอธิบาย |
---|---|
modelName | ชื่อของโมเดล |
featureName | ชื่อของฟีเจอร์หลักที่ใช้งานอยู่ |
เส้นทาง | เส้นทางการเรียกใช้จากรูทฟีเจอร์ไปยังการดำเนินการนี้ เช่น '/myFeature/parentAction/thisAction' |
latencyMs | เวลาที่โมเดลใช้ในการตอบกลับ |
สถานะ | "success" หรือ "failure" โดยขึ้นอยู่กับว่าคำขอฟีเจอร์สำเร็จหรือไม่ |
ข้อผิดพลาด | ตั้งค่าเฉพาะเมื่อ status=failure มีประเภทข้อผิดพลาดที่ทําให้ดำเนินการไม่สําเร็จ |
source | ภาษาต้นฉบับของ Genkit เช่น 'ts' |
sourceVersion | เวอร์ชันเฟรมเวิร์ก Genkit |
การแสดงภาพเมตริกทำได้ผ่านเครื่องมือสํารวจเมตริก ใช้เมนูด้านซ้ายมือเพื่อคลิก "เครื่องมือสํารวจเมตริก" ในส่วนหัว "สํารวจ"
เลือกเมตริกโดยคลิกเมนูแบบเลื่อนลง "เลือกเมตริก" แล้วเลือก 'โหนดทั่วไป', 'Genkit' และเมตริก
ภาพเมตริกจะขึ้นอยู่กับประเภทของเมตริก (ตัวนับ ฮิสโตแกรม ฯลฯ) เครื่องมือสํารวจเมตริกมีเครื่องมือรวบรวมและค้นหาที่มีประสิทธิภาพเพื่อช่วยสร้างกราฟเมตริกตามมิติข้อมูลต่างๆ
ความล่าช้าของข้อมูลที่ได้รับจากทางไกล
ระบบอาจใช้เวลาสักครู่ก่อนที่การวัดผลสําหรับการดําเนินการของฟิวเมนต์หนึ่งๆ จะแสดงในชุดโปรแกรมสําหรับการดําเนินการของ Cloud ในกรณีส่วนใหญ่ ความล่าช้านี้ไม่เกิน 1 นาที
โควต้าและขีดจำกัด
โควต้าที่สำคัญที่ควรทราบมีดังนี้
ค่าใช้จ่าย
Cloud Logging, Cloud Trace และ Cloud Monitoring มีระดับการใช้งานแบบไม่มีค่าใช้จ่ายที่คุ้มค่า ดูราคาที่เจาะจงได้ที่ลิงก์ต่อไปนี้