En este documento, se explica cómo supervisar el consumo de tokens para los análisis de estadísticas de datos de Knowledge Catalog (antes Dataplex Universal Catalog) con Cloud Logging y Cloud Monitoring. Hacer un seguimiento del uso de tokens por análisis y por trabajo te permite comprender las tendencias de uso de los modelos y estimar los costos facturados en todo tu proyecto.
Cómo funciona el registro del uso de tokens
Cuando un trabajo de análisis de estadísticas de datos (jsonPayload.type="DATA_DOCUMENTATION")
se completa con un estado SUCCEEDED, Knowledge Catalog escribe una
entrada de registro en el registro dataplex.googleapis.com/data_scan. Esta entrada de registro
contiene un bloque billableTokenUsage en jsonPayload.dataDocumentation
que registra el desglose de tokens del trabajo. Otras entradas de registro para el trabajo
(como los eventos CREATED, STARTED, FAILED o CANCELLED) no incluyen un
bloque billableTokenUsage.
En el bloque billableTokenUsage, puedes hacer un seguimiento de tres categorías principales de tokens
para estimar la facturación:
| Métrica | Descripción | Fórmula (con campos de billableTokenUsage) |
|---|---|---|
| Tokens de entrada no almacenados en caché | Son los tokens de entrada que no se entregaron desde la caché de contexto, incluidos los tokens de instrucciones de uso de herramientas. | max(promptTokenCount - cachedContentTokenCount, 0) + toolUsePromptTokenCount |
| Tokens de entrada almacenados en caché | Son los tokens de entrada que se entregan desde la caché de contexto. Los tokens almacenados en caché se registran por separado porque no se les aplica la tarifa de entrada estándar sin almacenamiento en caché. | cachedContentTokenCount |
| Tokens de salida | Son los tokens de respuesta generados más los tokens de razonamiento (pensamiento). Los tokens de razonamiento se facturan como tokens de salida. | candidatesTokenCount + thoughtsTokenCount |
Para obtener detalles sobre los precios de los tokens, consulta Precios de Data Cloud Agent.
Campos de token en la entrada de registro
Cada entrada de registro de dataplex.googleapis.com/data_scan incluye identificadores estándar de recursos
y trabajos, como resource.labels.datascan_id, resource.labels.location, jsonPayload.jobId y jsonPayload.state. Para
los análisis de estadísticas de datos que se realizaron correctamente, el
objeto jsonPayload.dataDocumentation.billableTokenUsage contiene los siguientes
campos:
| Campo | Descripción |
|---|---|
promptTokenCount |
Es el total de tokens de instrucción enviados al modelo, incluidos los tokens almacenados en caché. |
cachedContentTokenCount |
Es la parte de los tokens de instrucción que se entregan desde la caché de contexto. |
toolUsePromptTokenCount |
Son los tokens de instrucciones que agregan las llamadas a herramientas (como el contexto del esquema, el perfil o el historial de consultas). |
candidatesTokenCount |
Son los tokens de respuesta generados, sin incluir los tokens de razonamiento. |
thoughtsTokenCount |
Son los tokens de razonamiento (pensamiento) que genera el modelo. |
En el siguiente ejemplo, se muestra una entrada de registro de dataplex.googleapis.com/data_scan para
un trabajo de análisis de estadísticas de datos que se completó correctamente:
{
"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"
}
}
}
}
En este ejemplo, el trabajo no usó el almacenamiento en caché de contexto, los tokens de razonamiento ni las llamadas
a herramientas. Como resultado, los tokens de entrada no almacenados en caché equivalen a 20,412, los tokens de entrada almacenados en caché equivalen a 0 y los tokens de salida equivalen a 7,053.
Antes de comenzar
Antes de consultar los registros de tokens de estadísticas de datos o crear un panel de supervisión, completa los siguientes requisitos previos.
Roles obligatorios
Para obtener los permisos que necesitas para supervisar el uso de tokens de estadísticas de datos, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Visualiza los registros de análisis de datos y ejecuta consultas de Estadísticas de observabilidad:
Visor de registros (
roles/logging.viewer) -
Crea paneles personalizados en Monitoring:
Editor de Monitoring (
roles/monitoring.editor) -
Visualiza paneles personalizados en Monitoring:
Visualizador de Monitoring (
roles/monitoring.viewer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Habilita las APIs
Habilita las APIs de Dataplex, Logging y Monitoring, si aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si
creaste el proyecto, es probable que ya tengas este permiso a través del
rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del
rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin).
Obtén información para otorgar roles.
Verifica la configuración del enrutamiento de registros
Los análisis de estadísticas de datos escriben registros con el nombre de registro
dataplex.googleapis.com/data_scan. Las configuraciones del panel de este
documento leen esos registros del bucket de registros _Default de tu proyecto. Verifica que
el enrutamiento de registros de tu proyecto cumpla con las siguientes condiciones:
- El receptor
_Defaultestá habilitado y enruta los registros al bucket de registros_Default. El receptor
_Defaultno tiene un filtro de exclusión que descarte los registrosdataplex.googleapis.com/data_scanoDATA_DOCUMENTATION.
Console
En la consola de Google Cloud , ve a la página Logging > Enrutador de registros.
Ubica el receptor
_Defaulty verifica que su estado sea Habilitado y que su destino sea el bucket_Default.Haz clic en el menú del receptor () y selecciona Ver detalles del receptor. Verifica que ningún filtro de exclusión coincida con
dataplex.googleapis.com/data_scanoDATA_DOCUMENTATION.
gcloud
Describe el receptor _Default para inspeccionar su estado, destino y
filtros de exclusión:
gcloud logging sinks describe _Default --project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
Verifica que disabled no esté configurado como true, que destination termine con
/buckets/_Default y que ninguna entrada en exclusions coincida con data_scan.
Habilita las Estadísticas de observabilidad en el bucket _Default
Para ejecutar consultas en SQL en los registros de análisis de estadísticas de datos y potenciar el panel personalizado
de Estadísticas de observabilidad, actualiza el bucket de registros _Default de tu proyecto
para usar Estadísticas de observabilidad.
Antes de habilitar las Estadísticas de observabilidad en el bucket de registros _Default,
revisa las siguientes consideraciones:
- La actualización de un bucket a Estadísticas de observabilidad no se puede deshacer y no genera cargos adicionales.
- No es necesario que crees un conjunto de datos de BigQuery vinculado.
Las consultas en SQL de Estadísticas de observabilidad solo devuelven los registros que llegan después de que se completa la actualización. Los registros más antiguos siguen disponibles en el Explorador de registros, pero no aparecen en los resultados de la consulta en SQL. Después de actualizar el bucket, ejecuta al menos un análisis de estadísticas de datos para que tu panel tenga datos que mostrar.
Console
En la consola de Google Cloud , ve a la página Logging > Almacenamiento de registros.
Busca la fila del bucket
_Defaulty verifica la columna Estadísticas de observabilidad disponibles:- Si la columna muestra Abrir, significa que las Estadísticas de observabilidad ya están habilitadas.
- Si la columna muestra Actualizar, haz clic en Actualizar y confirma la actualización.
Espera unos minutos hasta que el estado de la columna cambie a Abierto.
gcloud
Actualiza el bucket de registros
_Defaultpara habilitar las Estadísticas de observabilidad:gcloud logging buckets update _Default \ --location=global --enable-analytics --project=PROJECT_IDReemplaza PROJECT_ID por el ID del proyecto de Google Cloud .
Después de unos minutos, verifica que se haya completado la actualización:
gcloud logging buckets describe _Default \ --location=global --project=PROJECT_IDConfirma que el resultado incluya
analyticsEnabled: true.
Visualiza el uso de tokens por trabajo en el Explorador de registros
Para inspeccionar el consumo de tokens de los trabajos de análisis de estadísticas de datos individuales, usa el Explorador de registros o Google Cloud CLI. Para realizar agregaciones por hora o por día en todo tu proyecto, puedes crear un panel con Estadísticas de observabilidad.
Console
En la consola de Google Cloud , accede a la página Logging > Explorador de registros.
Si el editor de consultas no está visible, activa Mostrar consulta.
Ingresa la siguiente consulta en el editor de consultas:
log_id("dataplex.googleapis.com/data_scan") jsonPayload.type="DATA_DOCUMENTATION" jsonPayload.dataDocumentation.billableTokenUsage.promptTokenCount:*Opcional: Para filtrar por un análisis o una ejecución de trabajo específicos, agrega una de las siguientes líneas a la consulta:
resource.labels.datascan_id="DATA_SCAN_ID" jsonPayload.jobId="JOB_ID"Reemplaza lo siguiente:
- DATA_SCAN_ID: Es el ID del análisis de estadísticas de datos.
- JOB_ID: Es el ID de una ejecución de trabajo de análisis específica.
Selecciona un intervalo de tiempo (por ejemplo, Últimas 24 horas) y, luego, haz clic en Ejecutar consulta.
Expande una entrada de registro y abre
jsonPayload>dataDocumentation>billableTokenUsagepara inspeccionar los recuentos de tokens de ese trabajo.
gcloud
Lee las entradas de registro de análisis de estadísticas de datos recientes y formatea los campos de token como una tabla:
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)'
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
Una columna vacía en la tabla de salida indica tokens 0 para ese campo.
Para convertir estos campos en las métricas, usa las fórmulas que se indican en
Cómo funciona el registro del uso de tokens.
Consulta el uso de tokens con Estadísticas de observabilidad
También puedes ejecutar o personalizar las consultas en SQL de los widgets directamente en la página de Análisis de registros en la consola deGoogle Cloud .
Los gráficos diarios y por hora comparten la misma consulta de gráfico, que devuelve una fila
por trabajo de análisis. Cada widget de gráfico agrupa y suma las filas por día
(timeBinSize: 86400s) o por hora (timeBinSize: 3600s). Si editas una consulta
de gráfico y la vuelves a pegar en un widget del panel, conserva los alias de columna
timestamp, total_non_cached_input_tokens, total_cached_input_tokens y
total_output_tokens.
Para filtrar una consulta a un solo análisis, agrega la siguiente condición a la
cláusula WHERE:
AND JSON_VALUE(resource.labels, '$.datascan_id') = 'DATA_SCAN_ID'
Reemplaza DATA_SCAN_ID por el ID de tu análisis de estadísticas de datos.
Consulta de gráficos de muestra (gráficos diarios y por hora)
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
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
Consulta de muestra por trabajo de análisis
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
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
Crea un panel con Estadísticas de observabilidad
Para visualizar y hacer un seguimiento del consumo de tokens de modelos a lo largo del tiempo, puedes crear un panel de Monitoring personalizado con Estadísticas de observabilidad.
Este enfoque ejecuta consultas en SQL directamente en los registros de análisis de estadísticas de datos
en el bucket de registros _Default. Ofrece varios beneficios:
- Precisión: Las consultas calculan los recuentos exactos de tokens directamente a partir de las cargas útiles de JSON de las entradas de registro, en lugar de las estimaciones de métricas agregadas.
- Historial de trabajos detallado: Además de los gráficos agregados, puedes inspeccionar los trabajos de análisis individuales en una vista tabular.
- Sin costo adicional: Actualizar el bucket de registros
_Defaulta Estadísticas de observabilidad no genera cargos adicionales.
Esta opción crea un panel de Monitoring con tres widgets que ejecutan consultas en SQL en tus registros:
- Uso diario de tokens (gráfico de barras apiladas)
- Uso de tokens por hora (gráfico de líneas)
- Uso de tokens por trabajo de análisis (tabla que muestra los 500 trabajos más recientes)
La siguiente configuración de JSON del panel usa la variable integrada @__project_id (@__project_id.global._Default._Default), que consulta automáticamente
el proyecto en el que abres el panel. No es necesario que edites ningún
marcador de posición del proyecto en el JSON antes de importarlo.
Console
En la consola de Google Cloud , ve a la página Monitoring > Paneles.
Haz clic en Crear panel de control.
En la barra de herramientas, haz clic en Configuración de , selecciona JSON y, luego, Editor de JSON.
Reemplaza el contenido existente del editor por la definición de JSON del panel que se proporciona en la siguiente sección.
Haz clic en Aplicar cambios. Con el guardado automático habilitado, Monitoring guarda el panel como
Data Insights - Token Usage.La primera vez que abras el panel, cada widget te pedirá que confirmes la ejecución de la consulta en SQL en el motor de BigQuery para tu proyecto. Verifica que en el mensaje se indique tu proyecto y, luego, haz clic en Continuar con la ejecución en cada widget.
Selecciona un período en la barra de herramientas del panel (por ejemplo, Últimos 7 días).
gcloud
- Guarda la definición de JSON del panel en un archivo local
llamado
dashboard.json. Crea el panel en Monitoring:
gcloud monitoring dashboards create \ --project=PROJECT_ID \ --config-from-file=dashboard.jsonReemplaza PROJECT_ID por el ID del proyecto deGoogle Cloud .
Abre la página Paneles en la consola de Google Cloud , selecciona Análisis de estadísticas: uso de tokens y haz clic en Continuar con la ejecución en cada widget para autorizar la ejecución de la consulta en SQL.
Definición de JSON del panel
Para crear el panel, expande la siguiente sección y copia la definición de JSON:
Definición de 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"
}
}
}
]
}
}
Limitaciones
- Las métricas de tokens solo se completan si los registros de
dataplex.googleapis.com/data_scanno se excluyen ni se enrutan fuera del bucket de registros_Default. - Solo se cuentan los trabajos que se completaron correctamente y que tienen metadatos de tokens. Las entradas de registro
sin un bloque
billableTokenUsagese excluyen de las consultas y métricas. - Usa estos paneles para supervisar las tendencias de uso y estimar los costos, no para conciliar una factura oficial de Facturación de Cloud.
- Cada proyecto de Google Cloud requiere su propia configuración del panel.
- Las consultas en SQL no devuelven entradas de registro escritas antes de
que se habilitaran las Estadísticas de observabilidad en el bucket
_Default. - El widget de tabla por trabajo muestra, como máximo, los 500 trabajos más recientes dentro del período seleccionado. Para inspeccionar trabajos más antiguos, consulta el Explorador de registros.
¿Qué sigue?
- Obtén más información sobre las estadísticas de datos para datos estructurados.
- Obtén información para usar las estadísticas de datos para datos estructurados.
- Obtén información para supervisar los registros de Knowledge Catalog.
- Obtén más información para supervisar las métricas de Knowledge Catalog.