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 dari 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:
Monitoring Editor (
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 Enabled dan tujuannya adalah bucket_Default.Klik menu sink () dan pilih View sink details. 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.
Pastikan disabled tidak ditetapkan ke true, destination diakhiri dengan
/buckets/_Default, dan tidak ada entri di bawah 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 mengaktifkan Observability Analytics di bucket log _Default,
tinjau pertimbangan berikut:
- Upgrade 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 masuk 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 Open.
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, pastikan upgrade telah selesai:
gcloud logging buckets describe _Default \ --location=global --project=PROJECT_IDPastikan output-nya menyertakan
analyticsEnabled: true.
Melihat penggunaan token per tugas di Logs Explorer
Untuk memeriksa konsumsi token dari 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 konsolGoogle Cloud .
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 CloudAnda.
Contoh kueri per tugas pemindaian
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 memberikan 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 setiap tugas pemindaian 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 Apply changes. 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 menjalankan kueri SQL di mesin BigQuery untuk project Anda. Pastikan perintah mencantumkan project Anda, lalu klik Continue execution 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 Dashboards di konsol Google Cloud , pilih Insights Scan - Token Usage, dan klik Continue execution di setiap widget untuk mengizinkan eksekusi kueri SQL.
Definisi JSON dasbor
Untuk membuat dasbor, luaskan 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 akan lengkap jika log
dataplex.googleapis.com/data_scantidak dikecualikan atau dirutekan dari bucket log_Default. - Hanya tugas yang berhasil dengan metadata token yang dihitung. Entri log tanpa blok
billableTokenUsageakan dikecualikan dari kueri dan metrik. - Gunakan dasbor ini untuk memantau tren penggunaan dan memperkirakan biaya, bukan untuk mencocokkan invoice Penagihan Cloud resmi.
- Setiap project Google Cloud 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.