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. El seguimiento del uso de tokens por análisis y por trabajo te permite comprender las tendencias de uso del modelo y estimar los costos facturados en 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 para el trabajo. Otras entradas de registro para el trabajo (como 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 billableTokenUsage) |
|---|---|---|
| Tokens de entrada no almacenados en caché | 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é | Tokens de entrada entregados desde la caché de contexto. Los tokens almacenados en caché se registran por separado porque no tienen el precio de la tarifa de entrada estándar no almacenada en caché. | cachedContentTokenCount |
| Tokens de salida | Tokens de respuesta generados más 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 tokens en la entrada de registro
Cada entrada de registro dataplex.googleapis.com/data_scan incluye identificadores de recursos y trabajos estándar, como resource.labels.datascan_id, resource.labels.location, jsonPayload.jobId y jsonPayload.state. Para los análisis de estadísticas de datos correctos, el objeto jsonPayload.dataDocumentation.billableTokenUsage contiene los siguientes campos:
| Campo | Descripción |
|---|---|
promptTokenCount |
Tokens de instrucción totales enviados al modelo, incluidos los tokens almacenados en caché. |
cachedContentTokenCount |
Porción de los tokens de instrucción entregados desde la caché de contexto. |
toolUsePromptTokenCount |
Tokens de instrucción agregados por llamadas a herramientas (como el esquema, el perfil o el contexto del historial de consultas). |
candidatesTokenCount |
Tokens de respuesta generados, excluidos los tokens de razonamiento. |
thoughtsTokenCount |
Tokens de razonamiento (pensamiento) generados por el modelo. |
En el siguiente ejemplo, se muestra una entrada de registro dataplex.googleapis.com/data_scan para un trabajo de análisis de estadísticas de datos correcto:
{
"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ó almacenamiento en caché de contexto, tokens de razonamiento ni llamadas a herramientas. Como resultado, los tokens de entrada no almacenados en caché son iguales a 20,412, los tokens de entrada almacenados en caché
son iguales a 0 y los tokens de salida son iguales 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:
-
Ver registros de análisis de datos y ejecutar consultas de Estadísticas de observabilidad:
Visualizador de registros (
roles/logging.viewer) -
Crear paneles personalizados en Monitoring:
Editor de Monitoring (
roles/monitoring.editor) -
Ver 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 mediante 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 obtener este permiso 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 quite los registrosdataplex.googleapis.com/data_scanoDATA_DOCUMENTATION.
Console
En la Google Cloud consola de, ve a la página Logging > Enrutador de registros.
Busca 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 Google Cloud proyecto.
Verifica que disabled no esté configurado como true, que destination termine con /buckets/_Default y que no haya ninguna entrada en exclusions que coincida con data_scan.
Habilita Estadísticas de observabilidad en el bucket _Default
Para ejecutar consultas en SQL en tus 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 Estadísticas de observabilidad en el bucket de registros _Default, revisa las siguientes consideraciones:
- No se puede deshacer la actualización de un bucket a Estadísticas de observabilidad, y no genera cargos adicionales.
- No es necesario crear un conjunto de datos vinculado de BigQuery.
Las consultas en SQL de Estadísticas de observabilidad solo muestran 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 las 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 para mostrar.
Console
En la Google Cloud consola de, 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, Estadísticas de observabilidad ya está habilitado.
- 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 Abrir.
gcloud
Actualiza el bucket de registros
_Defaultpara habilitar Estadísticas de observabilidad:gcloud logging buckets update _Default \ --location=global --enable-analytics --project=PROJECT_IDReemplaza PROJECT_ID por el ID del Google Cloud proyecto de.
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 trabajos de análisis de estadísticas de datos individuales, usa el Explorador de registros o Google Cloud CLI. Para las agregaciones por hora o por día en tu proyecto, puedes crear un panel con Estadísticas de observabilidad.
Console
En la Google Cloud consola, ve 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 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 da formato a los campos de tokens 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 Google Cloud proyecto.
Una columna vacía en la tabla de salida indica 0 tokens para ese campo.
Para convertir estos campos en 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 Análisis de registros de la Google Cloud consola.
Los gráficos diarios y por hora comparten la misma consulta de gráfico, que muestra 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áfico 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 Google Cloud proyecto.
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 Google Cloud proyecto.
Crea un panel con Estadísticas de observabilidad
Para visualizar y hacer un seguimiento del consumo de tokens del modelo a lo largo del tiempo, puedes crear un panel personalizado de Monitoring con Estadísticas de observabilidad.
Este enfoque ejecuta consultas en SQL directamente en tus registros de análisis de estadísticas de datos en el bucket de registros _Default. Ofrece varios beneficios:
- Precisión: Las consultas calculan recuentos de tokens exactos directamente desde las cargas útiles de JSON de las entradas de registro en lugar de estimaciones de métricas agregadas.
- Historial de trabajos detallado: Además de los gráficos agregados, puedes inspeccionar trabajos de análisis individuales en una vista tabular.
- Sin costo adicional: La actualización del 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
variable (@__project_id.global._Default._Default), que consulta automáticamente
el proyecto en el que abres el panel. No es necesario editar ningún marcador de posición del proyecto en el JSON antes de importarlo.
Console
En la Google Cloud consola, ve a la página Monitoring > Paneles.
Haz clic en Crear panel de control.
En la barra de herramientas, haz clic en Configuración, 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 solicitará que confirmes la ejecución de la consulta en SQL en el motor de BigQuery para tu proyecto. Verifica que la solicitud muestre tu proyecto y, luego, haz clic en Continuar 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 de Google Cloud .
Abre la página Paneles en la Google Cloud consola de, selecciona Insights Scan - Token Usage y haz clic en Continuar 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 se completan solo si los registros
dataplex.googleapis.com/data_scanno se excluyen ni se enrutan fuera del bucket de registros_Default. - Solo se cuentan los trabajos correctos con metadatos de tokens. Las entradas de registro sin un bloque
billableTokenUsagese excluyen de las consultas y las 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 Google Cloud proyecto requiere su propia configuración del panel.
- Las consultas en SQL no muestran las entradas de registro escritas antes de que se habilitara 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 intervalo de tiempo 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 información para supervisar las métricas de Knowledge Catalog.