Telemetry Collection

הפלאגין של טלמטריה של Firebase מייצא שילוב של מדדים, מעקבים ויומנים ל-Google Cloud Observability. במסמך הזה מוסבר אילו מדדים, מאפייני מעקב ויומני אירועים ייאספו, ומה צפוי מבחינת זמן אחזור, מכסות ועלות.

עיכוב בטלמטריה

יכול להיות שיהיה עיכוב קל עד שהנתונים הטלמטרים מהפעלה נתונה יהיו זמינים ב-Firebase. זה תלוי במרווח הזמן לייצוא (5 דקות כברירת מחדל).

מכסות ומגבלות

יש כמה מכסות שחשוב לזכור:

עלות

ל-Cloud Logging, ל-Cloud Trace ול-Cloud Monitoring יש רמות רחבות בחינם. המחירים הספציפיים מפורטים בקישורים הבאים:

מדדים

הפלאגין של טלמטריה ב-Firebase אוסף מספר מדדים שונים כדי לתמוך בסוגים השונים של פעולות ב-Genkit שמפורטים בקטעים הבאים.

מדדי תכונות

התכונות הן נקודת הכניסה ברמה העליונה לקוד של Genkit. ברוב המקרים, זה יהיה תהליך. אחרת, זה יהיה ה-span העליון ביותר במעקב.

שם סוג תיאור
genkit/feature/requests מונה מספר הבקשות
genkit/feature/latency היסטוגרמה זמן האחזור של ההרצה באלפיות השנייה

כל מדד של תכונה מכיל את המאפיינים הבאים:

שם תיאור
שם שם התכונה. ברוב המקרים, זהו תהליך Genkit ברמה העליונה
סטטוס 'success' או 'failure', בהתאם להצלחה או לכישלון של בקשת התכונה
error מוגדר רק כש-status=failure. מכיל את סוג השגיאה שגרמה לכשל
source שפת המקור של Genkit. למשל 'ts'
sourceVersion גרסת ה-framework של Genkit

מדדי פעולה

פעולות מייצגות שלב כללי של ביצוע ב-Genkit. בכל אחד מהשלבים האלה יתבצע מעקב אחרי המדדים הבאים:

שם סוג תיאור
genkit/action/requests מונה מספר הפעמים שהפעולה בוצעה
genkit/action/latency היסטוגרמה זמן האחזור של ההרצה באלפיות השנייה

כל מדד של פעולה מכיל את המאפיינים הבאים:

שם תיאור
שם שם הפעולה
featureName השם של תכונת ההורה שמופעלת
נתיב נתיב ההרצה מהשורש של התכונה אל הפעולה הזו. לדוגמה: ‎'/myFeature/parentAction/thisAction'‎
סטטוס 'success' או 'failure', בהתאם להצלחה או לכישלון של הפעולה
error מוגדר רק כש-status=failure. מכיל את סוג השגיאה שגרמה לכשל
source שפת המקור של Genkit. למשל 'ts'
sourceVersion גרסת ה-framework של 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', בהתאם להצלחה או לכישלון של בקשת התכונה
error מוגדר רק כש-status=failure. מכיל את סוג השגיאה שגרמה לכשל
source שפת המקור של Genkit. למשל 'ts'
sourceVersion גרסת ה-framework של Genkit

רכיבים מוליכים

כל הפעולות ב-Genkit מתועדות באופן אוטומטי כדי לספק מעקב מפורט אחרי תכונות ה-AI. באופן מקומי, העקבות מוצגים בממשק המשתמש למפתחים. באפליקציות שנפרסו, צריך להפעיל את Firebase Genkit Monitoring כדי לקבל את אותה רמת חשיפה.

בקטעים הבאים מתוארים מאפייני המעקב שאפשר לצפות להם על סמך סוג הפעולה של Genkit עבור span מסוים במעקב.

קטעי Root

למקפים ברמה הבסיסית יש מאפיינים מיוחדים שעוזרים להבדיל בין מאפייני המצב של כל המעקב לבין מאפייני המצב של מקף ספציפי.

שם המאפיין תיאור
genkit/feature השם של תכונת ההורה שמופעלת
genkit/isRoot הערך מסומן כ-true אם ה-span הזה הוא ה-span ברמה הבסיסית
genkit/rootState המצב של הביצוע הכולל כ-success או כ-error. המשמעות היא לא שהשלב הזה נכשל במיוחד.

זרימה

שם המאפיין תיאור
genkit/input הקלט לתהליך. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/metadata/subtype סוג הפעולה של Genkit. לזרמים, זה יהיה flow.
genkit/name השם של הפעולה הזו ב-Genkit. במקרה הזה, שם התהליך
genkit/output הפלט שנוצר בתהליך. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/path נתיב הביצוע המלא שהוביל לשלב הזה במעקב, כולל פרטי הסוג.
genkit/state הסטטוס של ביצוע הקטע הזה כ-success או כ-error.
genkit/type הסוג של הרכיב הפרימיטיבי של Genkit שתואם ל-span הזה. בתהליכים, זה יהיה action.

Util

שם המאפיין תיאור
genkit/input הקלט ל-util. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/name השם של הפעולה הזו ב-Genkit. במקרה הזה, שם התהליך
genkit/output הפלט שנוצר בכלי. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/path נתיב הביצוע המלא שהוביל לשלב הזה במעקב, כולל פרטי הסוג.
genkit/state הסטטוס של ביצוע הקטע הזה כ-success או כ-error.
genkit/type הסוג של הרכיב הפשוט של Genkit שתואם ל-span הזה. במקרה של תהליכים, זה יהיה util.

דגם

שם המאפיין תיאור
genkit/input הקלט למודל. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/metadata/subtype סוג הפעולה של Genkit. במודלים, זה יהיה model.
genkit/model שם הדגם.
genkit/name השם של הפעולה הזו ב-Genkit. במקרה הזה, שם המודל.
genkit/output הפלט שנוצר על ידי המודל. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/path נתיב הביצוע המלא שהוביל לשלב הזה במעקב, כולל פרטי הסוג.
genkit/state הסטטוס של ביצוע הקטע הזה כ-success או כ-error.
genkit/type הסוג של הרכיב הפשוט של Genkit שתואם ל-span הזה. בתהליכים, זה יהיה action.

כלי

שם המאפיין תיאור
genkit/input הקלט למודל. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/metadata/subtype סוג הפעולה ב-Genkit. לכלי זה יהיה הערך tool.
genkit/name השם של הפעולה הזו ב-Genkit. במקרה הזה, שם המודל.
genkit/output הפלט שנוצר על ידי המודל. הערך הזה תמיד יהיה <redacted> בגלל מגבלות הגודל של מאפייני המעקב.
genkit/path נתיב הביצוע המלא שהוביל לשלב הזה במעקב, כולל פרטי הסוג.
genkit/state הסטטוס של ביצוע הקטע הזה כ-success או כ-error.
genkit/type הסוג של הרכיב הפרימיטיבי של Genkit שתואם למקטע הזה. בתהליכים, זה יהיה action.

יומנים

באפליקציות שנפרסו באמצעות Firebase Genkit Monitoring, יומנים משמשים לתיעוד של מטא-נתונים של קלט, פלט והגדרות, שמספקים פרטים עשירים על כל שלב בתכונה של ה-AI.

כל היומנים יכללו את שדות המטא-נתונים המשותפים הבאים:

שם השדה תיאור
insertId מזהה ייחודי של רשומת היומן
jsonPayload מאגר למידע על משתנים שונה לכל סוג יומן
labels {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp השעה שבה היומן התקבל ב-Cloud
משאב מידע על המקור של היומן, כולל אזור פרטי הפריסה ו-projectId
מידת החומרה רמת היומן שנכתבה. LogSeverity ב-Cloud
spanId המזהה של ה-span שיצר את היומן הזה
חותמת זמן המועד שבו הלקוח תיעד הודעה ביומן
יומן מעקב מזהה למעקב אחר הפורמט projects/<project-id>/traces/<trace-id>
traceSampled ערך בוליאני שמייצג אם בוצעה דגימה של המעקב. לא מתבצעת דגימה של היומנים.

לכל סוג יומן תהיה עומס נתונים שונה בפורמט JSON, שמתואר בכל קטע.

קלט

מטען ייעודי (payload) של JSON:

שם השדה תיאור
הודעה [genkit] Input[<path>, <featureName>] כולל (message X of N) להודעות שמחולקות לכמה חלקים
מטא-נתונים הקשר נוסף, כולל הודעת הקלט שנשלחה לפעולה

מטא-נתונים:

שם השדה תיאור
תוכן תוכן הודעת הקלט שנשלח לפעולה הזו של Genkit
featureName השם של התהליך, הפעולה, הכלי, השירות או הכלי העזר של Genkit.
messageIndex * אינדקס שמציין את סדר ההודעות עבור קלטות שמכילות כמה הודעות. בהודעות בודדות, הערך הזה תמיד יהיה 0.
model * שם הדגם.
נתיב נתיב הביצוע שיצר את היומן הזה בפורמט step1 > step2 > step3
partIndex * אינדקס שמציין את סדר החלקים בהודעה, בהודעות מרובות חלקים. המצב הזה נפוץ כשמשלבים טקסט ותמונות בקלט יחיד.
qualifiedPath נתיב הביצוע שיצר את היומן הזה, כולל פרטי הסוג בפורמט: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * המספר הכולל של ההודעות בקלט הזה. בהודעות בודדות, הערך הזה תמיד יהיה 1.
totalParts * המספר הכולל של החלקים בהודעה הזו. בהודעות עם חלק אחד, הערך הזה תמיד יהיה 1.

(*) פריטים עם כוכב מופיעים רק ביומני הקלט של אינטראקציות עם מודלים.

פלט

מטען ייעודי (payload) של JSON:

שם השדה תיאור
הודעה [genkit] Output[<path>, <featureName>] כולל (message X of N) להודעות שמחולקות לכמה חלקים
מטא-נתונים הקשר נוסף, כולל הודעת הקלט שנשלחה לפעולה

מטא-נתונים:

שם השדה תיאור
candidateIndex * (הוצא משימוש) אינדקס שמציין את סדר המועמדים לפלט שמכיל כמה מועמדים. ביומני נתונים עם מועמדים יחידים, הערך הזה תמיד יהיה 0.
תוכן הודעת הפלט שנוצרה על ידי הפעולה של Genkit
featureName השם של התהליך, הפעולה, הכלי, השירות או הכלי העזר של Genkit.
messageIndex * אינדקס שמציין את סדר ההודעות עבור קלטות שמכילות כמה הודעות. בהודעות בודדות, הערך הזה תמיד יהיה 0.
model * שם הדגם.
נתיב נתיב הביצוע שיצר את היומן הזה בפורמט 'step1 > step2 > step3
partIndex * אינדקס שמציין את סדר החלקים בהודעה, בהודעות מרובות חלקים. המצב הזה נפוץ כשמשלבים טקסט ותמונות בפלט יחיד.
qualifiedPath נתיב הביצוע שיצר את היומן הזה, כולל פרטי הסוג בפורמט: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (הוצא משימוש) המספר הכולל של המועמדים שנוצרו כפלט. בהודעות עם מועמדים יחידים, הערך הזה תמיד יהיה 1.
totalParts * המספר הכולל של החלקים בהודעה הזו. בהודעות עם חלק אחד, הערך הזה תמיד יהיה 1.

(*) פריטים עם כוכב מופיעים רק ביומני הפלט של אינטראקציות עם מודלים.

הגדרה

מטען ייעודי (payload) של JSON:

שם השדה תיאור
הודעה [genkit] Config[<path>, <featureName>]
מטא-נתונים הקשר נוסף, כולל הודעת הקלט שנשלחה לפעולה

מטא-נתונים:

שם השדה תיאור
featureName השם של התהליך, הפעולה, הכלי, השירות או הכלי העזר של Genkit.
מודל שם הדגם.
נתיב נתיב הביצוע שיצר את היומן הזה בפורמט 'step1 > step2 > step3
qualifiedPath נתיב הביצוע שיצר את היומן הזה, כולל פרטי הסוג בפורמט: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
source השפה שבה נעשה שימוש בספריית Genkit. הערך הזה תמיד יוגדר כ-'ts' כי זו השפה היחידה שנתמכת.
sourceVersion גרסת הספרייה של Genkit.
טמפרטורה הטמפרטורה של המודל שבה נעשה שימוש.

נתיבים

מטען ייעודי (payload) של JSON:

שם השדה תיאור
הודעה [genkit] Paths[<path>, <featureName>]
מטא-נתונים הקשר נוסף, כולל הודעת הקלט שנשלחה לפעולה

מטא-נתונים:

שם השדה תיאור
flowName השם של התהליך, הפעולה, הכלי, השירות או הכלי העזר של Genkit.
נתיבים מערך שמכיל את כל נתיבי הביצוע של ה-spans שנאספו.