אפשר לחשב את צריכת הטוקנים לפי מודל, יום ומשתמש עבור מודלים של צד שלישי בכלים למפתחי AI, כמו Anthropic Claude Opus 5.5 ו-Anthropic Claude Sonnet 5.5, באמצעות Cloud Logging ו-Observability Analytics.
מדריך למתחילים
אם _Defaultמאגר היומנים של הפרויקט כבר שודרג ל-Observability
Analytics, מריצים את השאילתה הבאה ב-Logging > Observability Analytics (מחליפים את [PROJECT_ID] במזהה הפרויקט Google Cloud ) כדי לקבל נתוני שימוש באסימונים למשך 30 יום במודלים של צד שלישי של Anthropic:
SELECT
JSON_VALUE(labels.model) AS model,
COUNT(*) AS requests,
SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.promptTokenCount) AS INT64)) AS input_tokens,
SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.candidatesTokenCount) AS INT64)) AS output_tokens,
IFNULL(SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.cachedContentTokenCount) AS INT64)), 0) AS cached_tokens,
IFNULL(SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.thoughtsTokenCount) AS INT64)), 0) AS thoughts_tokens,
SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.totalTokenCount) AS INT64)) AS total_tokens
FROM
`[PROJECT_ID].global._Default._Default`
WHERE
log_id = "businessaicode.googleapis.com/inference_response"
AND JSON_VALUE(labels.model_provider) = "Anthropic"
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY
model
ORDER BY
total_tokens DESC
לפני שמתחילים
לפני שמבצעים את השלבים במדריך, צריך לוודא שהפרויקט עומד בדרישות הבאות:
- רישום המטא-נתונים ביומן מופעל. אדמין של כלי AI למפתחים צריך להפעיל את ההגדרה Metadata logging כדי שרשומות
inference_responseיכללו את טוקןjsonPayload.metadata. - יש לכם לפחות את התפקיד Logs Viewer (
roles/logging.viewer). התפקיד הרגילroles/logging.viewerמעניק גישת SQL לתצוגת היומן_Default._Defaultשמשמשת לאורך המדריך הזה. כדי להריץ שאילתות בתצוגה_Default._AllLogsנדרש מינוי ל-roles/logging.privateLogViewerאו ל-roles/logging.viewAccessor. - קטגוריית היומנים
_Defaultשלך שודרגה ל-Observability Analytics.- במסוף Google Cloud , עוברים אל Logging > Logs Storage, מוצאים את קטגוריית
_Defaultובודקים את העמודה Observability Analytics. - אם היא לא מופעלת, לוחצים על עוד > שדרוג לשימוש ב-Observability Analytics. השדרוג משנה את
_Defaultבמקום, ואי אפשר לבטל אותו. - המתנה להפצה הראשונית: אחרי שמשדרגים מאגר, ל-Cloud Logging לוקח 30 עד 60 דקות לרענן את מטמוני הניתוב של רשומות יומן חדשות, וכמה שעות למלא מחדש את יומני ההיסטוריה (המילוי מחדש מתחיל שעה אחרי שהשדרוג מסתיים).
- במסוף Google Cloud , עוברים אל Logging > Logs Storage, מוצאים את קטגוריית
המבנה של רשומת היומן
כל קריאה של הסקה פולטת רשומה אחת InferenceResponseLog ביומן
businessaicode.googleapis.com%2Finference_response. זהות המודל מתועדת ב-labels, ומספר האסימונים מתועד ב-jsonPayload.metadata:
{
"logName": "projects/[PROJECT_ID]/logs/businessaicode.googleapis.com%2Finference_response",
"timestamp": "2026-10-07T17:23:03.495323480Z",
"labels": {
"model": "claude-sonnet-5-5",
"model_provider": "Anthropic",
"client_name": "antigravity_cli",
"user_id": "user:user@example.com",
"trajectory_id": "25cd0b58-58ea-4beb-b2d7-42e0d3fdd96d",
"request_id": "25cd0b58-58ea-4beb-b2d7-42e0d3fdd96d-19"
},
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.businessaicode.logging.v1.InferenceResponseLog",
"metadata": {
"promptTokenCount": "70825",
"cachedContentTokenCount": "69079",
"candidatesTokenCount": "14215",
"totalTokenCount": "85040"
}
}
}
הפניה לשדות וכללי ספירה
| השדה LogEntry (Logs Explorer ומדדים מבוססי-יומן) | ביטוי SQL (Observability Analytics) | תיאור |
|---|---|---|
labels.model |
JSON_VALUE(labels.model) |
מזהה המודל (לדוגמה, claude-sonnet-5-5 עבור Anthropic Claude Sonnet 5.5 או claude-opus-5-5 עבור Anthropic Claude Opus 5.5). |
labels.model_provider |
JSON_VALUE(labels.model_provider) |
שם הספק (לדוגמה, Anthropic או Google). |
labels.user_id |
JSON_VALUE(labels.user_id) |
הגורם המאומת (לדוגמה, user:user@example.com). |
labels.trajectory_id |
JSON_VALUE(labels.trajectory_id) |
מזהה מסלול השיחה או הסוכן. תור משתמש אחד כולל בדרך כלל כמה שיחות request_id במסגרת trajectory_id אחת. |
jsonPayload.metadata.promptTokenCount |
SAFE_CAST(JSON_VALUE(json_payload.metadata.promptTokenCount) AS INT64) |
המספר הכולל של טוקנים של קלט לשיחה (כולל טוקנים במטמון). |
jsonPayload.metadata.cachedContentTokenCount |
SAFE_CAST(JSON_VALUE(json_payload.metadata.cachedContentTokenCount) AS INT64) |
Subset of promptTokenCount served from prompt cache. הערך לא מופיע אם הוא אפס. לא להוסיף ל-promptTokenCount או ל-totalTokenCount. |
jsonPayload.metadata.candidatesTokenCount |
SAFE_CAST(JSON_VALUE(json_payload.metadata.candidatesTokenCount) AS INT64) |
טוקנים של פלט שנוצרו על ידי המודל. |
jsonPayload.metadata.thoughtsTokenCount |
SAFE_CAST(JSON_VALUE(json_payload.metadata.thoughtsTokenCount) AS INT64) |
אסימוני נימוקים, כשזה רלוונטי. לא רלוונטי למודלים של Anthropic. |
jsonPayload.metadata.totalTokenCount |
SAFE_CAST(JSON_VALUE(json_payload.metadata.totalTokenCount) AS INT64) |
הסכום הכולל הסופי של השיחה. שווה ל-promptTokenCount + candidatesTokenCount (+ thoughtsTokenCount אם קיים). |
שלב 1: אימות של יומני רישום נכנסים בכלי Logs Explorer
לפני שמריצים שאילתות SQL, צריך לוודא ש-inference_response רשומות עם מטא-נתונים של טוקנים מגיעות לפרויקט:
- במסוף Google Cloud , פותחים את Logging > Logs Explorer.
מדביקים את השאילתה הבאה בעורך השאילתות ומחליפים את
[PROJECT_ID]במזהה הפרויקט:logName="projects/[PROJECT_ID]/logs/businessaicode.googleapis.com%2Finference_response" labels.model_provider="Anthropic"לוחצים על Run query.
בחלונית Log fields (שדות יומן), לוחצים על model (מודל) כדי לראות את התפלגות הבקשות בין המודלים של Anthropic. בתצוגה הזו נספרות בקשות, ולא אסימונים.
שלב 2: סיכום הטוקנים לפי מודל ב-Observability Analytics
- במסוף Google Cloud , פותחים את Logging > Observability Analytics.
- מגדירים את בורר טווח התאריכים לאפשרות 30 הימים האחרונים (בורר טווח התאריכים מגביל את תוצאות השאילתה בנוסף לסעיף
WHEREשל ה-SQL). מדביקים את השאילתה הבאה ומריצים אותה, ומחליפים את
[PROJECT_ID]במזהה הפרויקט:SELECT JSON_VALUE(labels.model) AS model, COUNT(*) AS requests, SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.promptTokenCount) AS INT64)) AS input_tokens, SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.candidatesTokenCount) AS INT64)) AS output_tokens, IFNULL(SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.cachedContentTokenCount) AS INT64)), 0) AS cached_tokens, IFNULL(SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.thoughtsTokenCount) AS INT64)), 0) AS thoughts_tokens, SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.totalTokenCount) AS INT64)) AS total_tokens FROM `[PROJECT_ID].global._Default._Default` WHERE log_id = "businessaicode.googleapis.com/inference_response" AND JSON_VALUE(labels.model_provider) = "Anthropic" AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) GROUP BY model ORDER BY total_tokens DESC
שלב 3: מתכוני SQL נפוצים
כדי לנתח את המגמות היומיות של הטוקנים ואת השיוך של הטוקנים לכל משתמש, משתמשים בשאילתות ה-SQL הבאות ברישום ביומן > Observability Analytics.
מגמת השימוש באסימונים לפי מודל
SELECT
TIMESTAMP_TRUNC(timestamp, DAY) AS day,
JSON_VALUE(labels.model) AS model,
COUNT(*) AS requests,
SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.totalTokenCount) AS INT64)) AS total_tokens
FROM
`[PROJECT_ID].global._Default._Default`
WHERE
log_id = "businessaicode.googleapis.com/inference_response"
AND JSON_VALUE(labels.model_provider) = "Anthropic"
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY
day, model
ORDER BY
day DESC, total_tokens DESC
שיוך לכל משתמש ולכל מודל
SELECT
JSON_VALUE(labels.user_id) AS user_id,
JSON_VALUE(labels.model) AS model,
COUNT(*) AS requests,
SUM(SAFE_CAST(JSON_VALUE(json_payload.metadata.totalTokenCount) AS INT64)) AS total_tokens
FROM
`[PROJECT_ID].global._Default._Default`
WHERE
log_id = "businessaicode.googleapis.com/inference_response"
AND JSON_VALUE(labels.model_provider) = "Anthropic"
AND JSON_VALUE(labels.user_id) IS NOT NULL
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY
user_id, model
ORDER BY
total_tokens DESC
שלב 4: הצמדה ללוח בקרה של Cloud Monitoring
יש שתי אפשרויות ליצירת לוחות בקרה, בהתאם לשאלה אם אתם צריכים פירוט היסטורי או פירוט SQL אד-הוק, או מדד רציף קל משקל:
| גישה | מתאים במיוחד בשביל | האם ההיסטוריה נשמרת מעבר ל-30 יום? | יש תמיכה בקיבוץ user_id? |
|---|---|---|---|
| אפשרות א': שמירת תרשים SQL מ-Observability Analytics | טבלאות ותרשימים יומיים לכל מודל ולכל משתמש, ללא הגדרת מדדים | מוגבל על ידי שמירת נתונים בדלי יומנים (ברירת מחדל היא 30 ימים) | כן (ללא מגבלת עוצמה) |
| אפשרות ב': מדד הפצה מבוסס-יומן | מעקב רציף אחרי סדרות זמן והתראות על תוויות עם קרדינליות נמוכה | כן (מאוחסן במעקב) | לא (עוצמה גבוהה ממצה את מכסת המדדים) |
אפשרות א': שמירה ישירות מ-Observability Analytics
- מריצים את השאילתה משלב 2 או את השאילתה Daily token trend by model ב-Observability Analytics.
- כדי לראות סדרת זמנים או תרשים עמודות, אפשר לעבור מחלונית התוצאות טבלה אל תרשים.
- בסרגל הכלים של חלונית התוצאות, לוחצים על Save to dashboard (שמירה במרכז הבקרה) ובוחרים מרכז בקרה קיים של Monitoring או יוצרים מרכז בקרה חדש.
אפשרות ב': יצירת מדד התפלגות מבוסס-יומן
- במסוף Google Cloud , עוברים אל רישום ביומן > מדדים מבוססי-יומנים ולוחצים על יצירת מדד.
- בוחרים באפשרות הפצה בתור סוג המדד.
- מדביקים את השאילתה משלב 1 בשדה Filter ומגדירים את Field name ל-
jsonPayload.metadata.totalTokenCount. - הוספת שתי תוויות:
-
modelממופה ל-labels.model -
model_providerממופה ל-labels.model_provider
-
המאמרים הבאים
- הצגת מדדים של כלי AI למפתחים
- הגדרת הזמינות של מודלים של AI לכלים למפתחים
- הגדרת תאימות של כלי AI למפתחים