Dokumen ini menjelaskan cara memantau pemakaian token untuk pemindaian insight data Knowledge Catalog (sebelumnya Dataplex Universal Catalog) menggunakan Cloud Logging dan Cloud Monitoring. Dengan melacak penggunaan token per pemindaian dan per tugas, Anda dapat memahami tren penggunaan model dan memperkirakan biaya yang ditagih di seluruh project.
Cara kerja logging penggunaan token
Saat tugas pemindaian insight data (jsonPayload.type="DATA_DOCUMENTATION")
selesai dengan status SUCCEEDED, Knowledge Catalog akan menulis
entri log ke log dataplex.googleapis.com/data_scan. Entri log ini berisi blok billableTokenUsage di bagian jsonPayload.dataDocumentation yang mencatat perincian token untuk tugas tersebut. Entri log lain untuk tugas (seperti peristiwa CREATED, STARTED, FAILED, atau CANCELLED) tidak menyertakan blok billableTokenUsage.
Dari blok billableTokenUsage, Anda dapat melacak tiga kategori token utama
untuk memperkirakan penagihan:
| Metrik | Deskripsi | Formula (menggunakan kolom billableTokenUsage) |
|---|---|---|
| Token input yang tidak di-cache | Token input yang tidak disajikan dari cache konteks, termasuk token perintah penggunaan alat. | max(promptTokenCount - cachedContentTokenCount, 0) + toolUsePromptTokenCount |
| Token input yang di-cache | Token input yang disajikan dari cache konteks. Token yang di-cache dilacak secara terpisah karena tidak dikenai harga sesuai tarif input non-cache standar. | cachedContentTokenCount |
| Token output | Token respons yang dihasilkan ditambah token penalaran (berpikir). Token penalaran ditagih sebagai token output. | candidatesTokenCount + thoughtsTokenCount |
Untuk mengetahui detail harga token, lihat Harga Agen Data Cloud.
Kolom token dalam entri log
Setiap entri log dataplex.googleapis.com/data_scan menyertakan ID resource dan tugas standar seperti resource.labels.datascan_id, resource.labels.location, jsonPayload.jobId, dan jsonPayload.state. Untuk
pemindaian insight data yang berhasil, objek
jsonPayload.dataDocumentation.billableTokenUsage berisi kolom
berikut:
| Kolom | Deskripsi |
|---|---|
promptTokenCount |
Total token perintah yang dikirim ke model, termasuk token yang di-cache. |
cachedContentTokenCount |
Bagian token perintah yang disajikan dari cache konteks. |
toolUsePromptTokenCount |
Token perintah yang ditambahkan oleh panggilan alat (seperti konteks skema, profil, atau histori kueri). |
candidatesTokenCount |
Token respons yang dihasilkan, tidak termasuk token penalaran. |
thoughtsTokenCount |
Token penalaran (pemikiran) yang dihasilkan oleh model. |
Contoh berikut menunjukkan entri log dataplex.googleapis.com/data_scan untuk
tugas pemindaian insight data yang berhasil:
{
"resource": {
"type": "dataplex.googleapis.com/DataScan",
"labels": {
"datascan_id": "my-insights-scan",
"location": "us-central1",
"resource_container": "projects/1234567890"
}
},
"jsonPayload": {
"type": "DATA_DOCUMENTATION",
"jobId": "8f2b3c4d-1234-5678-9abc-def012345678",
"state": "SUCCEEDED",
"dataDocumentation": {
"billableTokenUsage": {
"promptTokenCount": "20412",
"candidatesTokenCount": "7053"
}
}
}
}
Dalam contoh ini, tugas tidak menggunakan cache konteks, token penalaran, atau panggilan alat. Akibatnya, token input yang tidak di-cache sama dengan 20,412, token input yang di-cache sama dengan 0, dan token output sama dengan 7,053.
Sebelum memulai
Sebelum Anda mengkueri log token insight data atau membuat dasbor pemantauan, selesaikan prasyarat berikut.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk memantau penggunaan token insight data, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Melihat log pemindaian data dan menjalankan kueri Observability Analytics:
Logs Viewer (
roles/logging.viewer) -
Membuat dasbor kustom di Monitoring:
Editor Monitoring (
roles/monitoring.editor) -
Melihat dasbor kustom di Monitoring:
Monitoring Viewer (
roles/monitoring.viewer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan API
Aktifkan Dataplex, Logging, Monitoring API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda
membuat project, kemungkinan Anda sudah memiliki izin ini melalui
peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui
peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin).
Pelajari cara memberikan peran.
Memverifikasi konfigurasi perutean log
Pemindaian insight data menulis log dengan nama log
dataplex.googleapis.com/data_scan. Konfigurasi dasbor dalam
dokumen ini membaca log tersebut dari bucket log _Default project Anda. Pastikan perutean log project Anda memenuhi kondisi berikut:
- Sink
_Defaultdiaktifkan dan merutekan log ke bucket log_Default. Sink
_Defaulttidak memiliki filter pengecualian yang menghapus logdataplex.googleapis.com/data_scanatauDATA_DOCUMENTATION.
Konsol
Di konsol Google Cloud , buka halaman Logging > Log Router.
Temukan sink
_Defaultdan pastikan statusnya adalah Diaktifkan dan tujuannya adalah bucket_Default.Klik menu sink () lalu pilih Lihat detail sink. Pastikan tidak ada filter pengecualian yang cocok dengan
dataplex.googleapis.com/data_scanatauDATA_DOCUMENTATION.
gcloud
Deskripsikan sink _Default untuk memeriksa status, tujuan, dan filter pengecualiannya:
gcloud logging sinks describe _Default --project=PROJECT_ID
Ganti PROJECT_ID dengan project ID Google CloudAnda.
Verifikasi bahwa disabled tidak disetel ke true, destination diakhiri dengan
/buckets/_Default, dan tidak ada entri di exclusions yang cocok dengan data_scan.
Mengaktifkan Observability Analytics di bucket _Default
Untuk menjalankan kueri SQL pada log pemindaian insight data dan mendukung dasbor Observability Analytics kustom, upgrade bucket log _Default project Anda untuk menggunakan Observability Analytics.
Sebelum Anda mengaktifkan Observability Analytics di bucket log _Default, tinjau pertimbangan berikut:
- Mengupgrade bucket ke Observability Analytics tidak dapat diurungkan, dan tidak dikenai biaya tambahan.
- Anda tidak perlu membuat set data BigQuery tertaut.
Kueri SQL Observability Analytics hanya menampilkan log yang tiba setelah upgrade selesai. Log lama tetap tersedia di Logs Explorer, tetapi tidak muncul di hasil kueri SQL. Setelah mengupgrade bucket, jalankan setidaknya satu pemindaian insight data agar dasbor Anda memiliki data untuk ditampilkan.
Konsol
Di konsol Google Cloud , buka halaman Logging > Logs Storage.
Temukan baris bucket
_Defaultdan periksa kolom Observability Analytics available:- Jika kolom menampilkan Open, Observability Analytics sudah diaktifkan.
- Jika kolom menampilkan Upgrade, klik Upgrade dan konfirmasi upgrade.
Tunggu beberapa menit hingga status kolom berubah menjadi Buka.
gcloud
Upgrade bucket log
_Defaultuntuk mengaktifkan Observability Analytics:gcloud logging buckets update _Default \ --location=global --enable-analytics --project=PROJECT_IDGanti PROJECT_ID dengan project ID Google Cloud Anda.
Setelah beberapa menit, verifikasi bahwa upgrade telah selesai:
gcloud logging buckets describe _Default \ --location=global --project=PROJECT_IDKonfirmasi bahwa output menyertakan
analyticsEnabled: true.
Melihat penggunaan token per tugas di Logs Explorer
Untuk memeriksa konsumsi token setiap tugas pemindaian insight data, gunakan Logs Explorer atau Google Cloud CLI. Untuk agregasi per jam atau harian di seluruh project, Anda dapat membuat dasbor menggunakan Observability Analytics.
Konsol
Di konsol Google Cloud , buka halaman Logging > Logs Explorer.
Jika editor kueri tidak terlihat, aktifkan Show query.
Masukkan kueri berikut di editor kueri:
log_id("dataplex.googleapis.com/data_scan") jsonPayload.type="DATA_DOCUMENTATION" jsonPayload.dataDocumentation.billableTokenUsage.promptTokenCount:*Opsional: Untuk memfilter pemindaian atau eksekusi tugas tertentu, tambahkan salah satu baris berikut ke kueri:
resource.labels.datascan_id="DATA_SCAN_ID" jsonPayload.jobId="JOB_ID"Ganti kode berikut:
- DATA_SCAN_ID: ID pemindaian insight data.
- JOB_ID: ID dari operasi tugas pemindaian tertentu.
Pilih rentang waktu (misalnya, Last 24 hours), lalu klik Run query.
Luaskan entri log dan buka
jsonPayload>dataDocumentation>billableTokenUsageuntuk memeriksa jumlah token untuk tugas tersebut.
gcloud
Baca entri log pemindaian data insights terbaru dan format kolom token sebagai tabel:
gcloud logging read \
'log_id("dataplex.googleapis.com/data_scan") AND jsonPayload.type="DATA_DOCUMENTATION" AND jsonPayload.dataDocumentation.billableTokenUsage.promptTokenCount:*' \
--project=PROJECT_ID --freshness=1d --limit=20 \
--format='table(timestamp, resource.labels.datascan_id:label=SCAN,
jsonPayload.jobId:label=JOB,
jsonPayload.dataDocumentation.billableTokenUsage.promptTokenCount:label=PROMPT,
jsonPayload.dataDocumentation.billableTokenUsage.cachedContentTokenCount:label=CACHED,
jsonPayload.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount:label=TOOL_USE,
jsonPayload.dataDocumentation.billableTokenUsage.candidatesTokenCount:label=CANDIDATES,
jsonPayload.dataDocumentation.billableTokenUsage.thoughtsTokenCount:label=THOUGHTS)'
Ganti PROJECT_ID dengan project ID Google CloudAnda.
Kolom kosong dalam tabel output menunjukkan token 0 untuk kolom tersebut.
Untuk mengubah kolom ini menjadi metrik, gunakan formula di
Cara kerja logging penggunaan token.
Membuat kueri penggunaan token menggunakan Observability Analytics
Anda juga dapat menjalankan atau menyesuaikan kueri SQL widget langsung di halaman Log Analytics di Google Cloud console.
Diagram harian dan per jam menggunakan kueri diagram yang sama, yang menampilkan satu baris per tugas pemindaian. Setiap widget diagram mengelompokkan dan menjumlahkan baris berdasarkan hari
(timeBinSize: 86400s) atau jam (timeBinSize: 3600s). Jika Anda mengedit kueri diagram
dan menempelkannya kembali ke widget dasbor, pertahankan alias kolom
timestamp, total_non_cached_input_tokens, total_cached_input_tokens, dan
total_output_tokens.
Untuk memfilter kueri ke satu pemindaian, tambahkan kondisi berikut ke klausa
WHERE:
AND JSON_VALUE(resource.labels, '$.datascan_id') = 'DATA_SCAN_ID'
Ganti DATA_SCAN_ID dengan ID pemindaian insight data Anda.
Contoh kueri diagram (diagram harian dan per jam)
SELECT
timestamp,
GREATEST(
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') AS INT64), 0)
- IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0),
0)
+ IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount') AS INT64), 0)
AS total_non_cached_input_tokens,
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0)
AS total_cached_input_tokens,
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.candidatesTokenCount') AS INT64), 0)
+ IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.thoughtsTokenCount') AS INT64), 0)
AS total_output_tokens
FROM `PROJECT_ID.global._Default._Default`
WHERE
log_id = 'dataplex.googleapis.com/data_scan'
AND JSON_VALUE(json_payload, '$.type') = 'DATA_DOCUMENTATION'
AND JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') IS NOT NULL
Ganti PROJECT_ID dengan project ID Google Cloud Anda.
Contoh kueri per-scan-job
SELECT
timestamp,
JSON_VALUE(resource.labels, '$.datascan_id') AS data_scan_id,
JSON_VALUE(resource.labels, '$.location') AS location,
JSON_VALUE(json_payload, '$.jobId') AS job_id,
JSON_VALUE(json_payload, '$.state') AS state,
GREATEST(
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') AS INT64), 0)
- IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0),
0)
+ IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount') AS INT64), 0)
AS non_cached_input_tokens,
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0)
AS cached_input_tokens,
IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.candidatesTokenCount') AS INT64), 0)
+ IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.thoughtsTokenCount') AS INT64), 0)
AS output_tokens
FROM `PROJECT_ID.global._Default._Default`
WHERE
log_id = 'dataplex.googleapis.com/data_scan'
AND JSON_VALUE(json_payload, '$.type') = 'DATA_DOCUMENTATION'
AND JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') IS NOT NULL
ORDER BY timestamp DESC
LIMIT 500
Ganti PROJECT_ID dengan project ID Google CloudAnda.
Membuat dasbor menggunakan Observability Analytics
Untuk memvisualisasikan dan melacak pemakaian token model dari waktu ke waktu, Anda dapat membuat dasbor Monitoring kustom menggunakan Observability Analytics.
Pendekatan ini menjalankan kueri SQL langsung terhadap log pemindaian insight data Anda di bucket log _Default. Fitur ini menawarkan beberapa manfaat:
- Akurasi: Kueri menghitung jumlah token yang tepat langsung dari payload JSON entri log, bukan estimasi metrik gabungan.
- Histori tugas terperinci: Selain diagram gabungan, Anda dapat memeriksa tugas pemindaian individual dalam tampilan tabel.
- Tanpa biaya tambahan: Mengupgrade bucket log
_Defaultke Observability Analytics tidak dikenai biaya tambahan.
Opsi ini membuat dasbor Monitoring dengan tiga widget yang menjalankan kueri SQL pada log Anda:
- Penggunaan token harian (diagram batang bertumpuk)
- Penggunaan token per jam (diagram garis)
- Penggunaan token per tugas pemindaian (tabel yang menampilkan 500 tugas terbaru)
Konfigurasi JSON dasbor berikut menggunakan variabel @__project_id bawaan (@__project_id.global._Default._Default), yang otomatis mengkueri project tempat Anda membuka dasbor. Anda tidak perlu mengedit placeholder project apa pun di JSON sebelum mengimpornya.
Konsol
Di konsol Google Cloud , buka halaman Monitoring > Dashboards.
Klik Buat Dasbor.
Di toolbar, klik Settings, pilih JSON, lalu pilih JSON Editor.
Ganti konten editor yang ada dengan definisi JSON dasbor yang disediakan di bagian berikutnya.
Klik Terapkan perubahan. Dengan mengaktifkan simpan otomatis, Monitoring akan menyimpan dasbor sebagai
Data Insights - Token Usage.Saat pertama kali membuka dasbor, setiap widget akan meminta Anda untuk mengonfirmasi penjalanan kueri SQL di mesin BigQuery untuk project Anda. Pastikan perintah mencantumkan project Anda, lalu klik Lanjutkan eksekusi di setiap widget.
Pilih rentang waktu di toolbar dasbor (misalnya, Last 7 days).
gcloud
- Simpan definisi JSON dasbor ke file
lokal bernama
dashboard.json. Buat dasbor di Monitoring:
gcloud monitoring dashboards create \ --project=PROJECT_ID \ --config-from-file=dashboard.jsonGanti PROJECT_ID dengan project IDGoogle Cloud Anda.
Buka halaman Dasbor di konsol Google Cloud , pilih Pemindaian Insight - Penggunaan Token, lalu klik Lanjutkan eksekusi di setiap widget untuk mengizinkan eksekusi kueri SQL.
Definisi JSON dasbor
Untuk membuat dasbor, perluas bagian berikut dan salin definisi JSON:
Definisi JSON
{
"displayName": "Data Insights - Token Usage",
"mosaicLayout": {
"columns": 48,
"tiles": [
{
"xPos": 0,
"yPos": 0,
"width": 24,
"height": 16,
"widget": {
"title": "Daily token usage",
"xyChart": {
"chartOptions": {
"mode": "COLOR",
"displayHorizontal": false
},
"dataSets": [
{
"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"breakdowns": [],
"dimensions": [
{
"column": "timestamp",
"columnType": "TIMESTAMP",
"sortColumn": "timestamp",
"sortOrder": "SORT_ORDER_ASCENDING",
"timeBinSize": "86400s"
}
],
"measures": [
{
"column": "total_non_cached_input_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
},
{
"column": "total_cached_input_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
},
{
"column": "total_output_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
}
],
"timeSeriesQuery": {
"opsAnalyticsQuery": {
"sql": "SELECT\n timestamp,\n GREATEST(\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') AS INT64), 0)\n - IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0),\n 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount') AS INT64), 0)\n AS total_non_cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0)\n AS total_cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.candidatesTokenCount') AS INT64), 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.thoughtsTokenCount') AS INT64), 0)\n AS total_output_tokens\nFROM `@__project_id.global._Default._Default`\nWHERE\n log_id = 'dataplex.googleapis.com/data_scan'\n AND JSON_VALUE(json_payload, '$.type') = 'DATA_DOCUMENTATION'\n AND JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') IS NOT NULL"
}
}
}
],
"yAxis": {
"label": "tokens",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 24,
"yPos": 0,
"width": 24,
"height": 16,
"widget": {
"title": "Hourly token usage",
"xyChart": {
"chartOptions": {
"mode": "COLOR",
"displayHorizontal": false
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"breakdowns": [],
"dimensions": [
{
"column": "timestamp",
"columnType": "TIMESTAMP",
"sortColumn": "timestamp",
"sortOrder": "SORT_ORDER_ASCENDING",
"timeBinSize": "3600s"
}
],
"measures": [
{
"column": "total_non_cached_input_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
},
{
"column": "total_cached_input_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
},
{
"column": "total_output_tokens",
"aggregationFunction": {
"type": "sum",
"parameters": []
}
}
],
"timeSeriesQuery": {
"opsAnalyticsQuery": {
"sql": "SELECT\n timestamp,\n GREATEST(\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') AS INT64), 0)\n - IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0),\n 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount') AS INT64), 0)\n AS total_non_cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0)\n AS total_cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.candidatesTokenCount') AS INT64), 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.thoughtsTokenCount') AS INT64), 0)\n AS total_output_tokens\nFROM `@__project_id.global._Default._Default`\nWHERE\n log_id = 'dataplex.googleapis.com/data_scan'\n AND JSON_VALUE(json_payload, '$.type') = 'DATA_DOCUMENTATION'\n AND JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') IS NOT NULL"
}
}
}
],
"yAxis": {
"label": "tokens",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 0,
"yPos": 16,
"width": 48,
"height": 20,
"widget": {
"title": "Token usage per scan job (latest 500)",
"timeSeriesTable": {
"columnSettings": [],
"dataSets": [
{
"tableTemplate": "",
"timeSeriesQuery": {
"opsAnalyticsQuery": {
"sql": "SELECT\n timestamp,\n JSON_VALUE(resource.labels, '$.datascan_id') AS data_scan_id,\n JSON_VALUE(resource.labels, '$.location') AS location,\n JSON_VALUE(json_payload, '$.jobId') AS job_id,\n JSON_VALUE(json_payload, '$.state') AS state,\n GREATEST(\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') AS INT64), 0)\n - IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0),\n 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.toolUsePromptTokenCount') AS INT64), 0)\n AS non_cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.cachedContentTokenCount') AS INT64), 0)\n AS cached_input_tokens,\n IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.candidatesTokenCount') AS INT64), 0)\n + IFNULL(SAFE_CAST(JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.thoughtsTokenCount') AS INT64), 0)\n AS output_tokens\nFROM `@__project_id.global._Default._Default`\nWHERE\n log_id = 'dataplex.googleapis.com/data_scan'\n AND JSON_VALUE(json_payload, '$.type') = 'DATA_DOCUMENTATION'\n AND JSON_VALUE(json_payload, '$.dataDocumentation.billableTokenUsage.promptTokenCount') IS NOT NULL\nORDER BY timestamp DESC\nLIMIT 500"
}
}
}
],
"metricVisualization": "NUMBER"
}
}
}
]
}
}
Batasan
- Metrik token hanya lengkap jika log
dataplex.googleapis.com/data_scantidak dikecualikan atau dialihkan dari bucket log_Default. - Hanya tugas yang berhasil dengan metadata token yang dihitung. Entri log tanpa pemblokiran
billableTokenUsagedikecualikan dari kueri dan metrik. - Gunakan dasbor ini untuk memantau tren penggunaan dan memperkirakan biaya, bukan untuk mencocokkan invoice resmi Penagihan Cloud.
- Setiap Google Cloud project memerlukan penyiapan dasbornya sendiri.
- Kueri SQL tidak menampilkan entri log yang ditulis sebelum Observability Analytics diaktifkan di bucket
_Default. - Widget tabel per tugas menampilkan maksimal 500 tugas terbaru dalam rentang waktu yang dipilih. Untuk memeriksa tugas yang lebih lama, buat kueri Logs Explorer.
Langkah berikutnya
- Pelajari lebih lanjut insight data untuk data terstruktur.
- Pelajari cara menggunakan insight data untuk data terstruktur.
- Pelajari cara memantau log Knowledge Catalog.
- Pelajari cara memantau metrik Knowledge Catalog.