Neste documento, explicamos como monitorar o consumo de tokens para as verificações de insights de dados do Knowledge Catalog (antigo Dataplex Universal Catalog) usando o Cloud Logging e o Cloud Monitoring. Ao monitorar o uso de tokens por verificação e por job, você pode entender as tendências de uso do modelo e estimar os custos faturados do projeto.
Como funciona o registro de uso de tokens
Quando um job de verificação de insights de dados (jsonPayload.type="DATA_DOCUMENTATION") é concluído com um estado SUCCEEDED, o Knowledge Catalog grava uma entrada de registro no registro dataplex.googleapis.com/data_scan. Essa entrada de registro contém um bloco billableTokenUsage em jsonPayload.dataDocumentation que registra o detalhamento de tokens do job. Outras entradas de registro do job (como eventos CREATED, STARTED, FAILED ou CANCELLED) não incluem um bloco billableTokenUsage.
No bloco billableTokenUsage, é possível acompanhar três categorias principais de tokens
para estimar o faturamento:
| Métrica | Descrição | Fórmula (usando campos billableTokenUsage) |
|---|---|---|
| Tokens de entrada não armazenados em cache | Tokens de entrada que não foram disponibilizados pelo cache de contexto, incluindo tokens de comando de uso de ferramentas. | max(promptTokenCount - cachedContentTokenCount, 0) + toolUsePromptTokenCount |
| Tokens de entrada em cache | Tokens de entrada disponibilizados pelo cache de contexto. Os tokens em cache são rastreados separadamente porque não são cobrados de acordo com a taxa de entrada padrão sem cache. | cachedContentTokenCount |
| Tokens de saída | Tokens de resposta gerados mais tokens de raciocínio (pensamento). Os tokens de raciocínio são faturados como tokens de saída. | candidatesTokenCount + thoughtsTokenCount |
Para detalhes sobre os preços dos tokens, consulte Preços do agente do Data Cloud.
Campos de token na entrada de registro
Cada entrada de registro do dataplex.googleapis.com/data_scan inclui identificadores padrão de recursos e jobs, como resource.labels.datascan_id, resource.labels.location, jsonPayload.jobId e jsonPayload.state. Para
verificações de insights de dados bem-sucedidas, o
objeto jsonPayload.dataDocumentation.billableTokenUsage contém os seguintes
campos:
| Campo | Descrição |
|---|---|
promptTokenCount |
Total de tokens de comando enviados ao modelo, incluindo tokens em cache. |
cachedContentTokenCount |
Parte dos tokens de comando disponibilizados pelo cache de contexto. |
toolUsePromptTokenCount |
Tokens de comando adicionados por chamadas de ferramenta (como contexto de esquema, perfil ou histórico de consultas). |
candidatesTokenCount |
Tokens de resposta gerados, exceto os tokens de raciocínio. |
thoughtsTokenCount |
Tokens de raciocínio (pensamento) gerados pelo modelo. |
O exemplo a seguir mostra uma entrada de registro dataplex.googleapis.com/data_scan para
um job de verificação de insights de dados bem-sucedido:
{
"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"
}
}
}
}
Neste exemplo, o job não usou cache de contexto, tokens de raciocínio ou chamadas de
ferramenta. Como resultado, os tokens de entrada não armazenados em cache são iguais a 20,412, os tokens de entrada armazenados em cache são iguais a 0 e os tokens de saída são iguais a 7,053.
Antes de começar
Antes de consultar os registros de token de insights de dados ou criar um painel de monitoramento, conclua os pré-requisitos a seguir.
Funções exigidas
Para receber as permissões necessárias para monitorar o uso de tokens de insights de dados, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Acessar registros de verificação de dados e executar consultas da Análise de Observabilidade:
Visualizador de registros (
roles/logging.viewer) -
Criar painéis personalizados no Monitoring:
Editor do Monitoring (
roles/monitoring.editor) -
Acessar painéis personalizados no Monitoring:
Leitor do Monitoring (
roles/monitoring.viewer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Ativar APIs
Ative as APIs Dataplex, Geração de registros e API Monitoring, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você
criou o projeto, provavelmente já tem essa permissão pelo
papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo
papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin).
Saiba como conceder papéis.
Verificar a configuração de roteamento de registros
As verificações de insights de dados gravam registros com o nome
dataplex.googleapis.com/data_scan. As configurações do painel neste documento leem esses registros do bucket de registros _Default do projeto. Verifique se
o roteamento de registros do projeto atende às seguintes condições:
- O coletor
_Defaultestá ativado e encaminha registros para o bucket de registros_Default. O coletor
_Defaultnão tem um filtro de exclusão que descarta registrosdataplex.googleapis.com/data_scanouDATA_DOCUMENTATION.
Console
No console do Google Cloud , acesse a página Logging > Roteador de registros.
Localize o coletor
_Defaulte verifique se o status dele é Ativado e se o destino é o bucket_Default.Clique no menu do coletor () e selecione Ver detalhes do coletor. Verifique se nenhum filtro de exclusão corresponde a
dataplex.googleapis.com/data_scanouDATA_DOCUMENTATION.
gcloud
Descreva o coletor _Default para inspecionar o status, o destino e os filtros de exclusão:
gcloud logging sinks describe _Default --project=PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
Verifique se disabled não está definido como true, se destination termina com
/buckets/_Default e se nenhuma entrada em exclusions corresponde a data_scan.
Ativar a Análise de Observabilidade no bucket _Default
Para executar consultas SQL nos registros de verificação de insights de dados e alimentar o painel personalizado
da Análise de Observabilidade, faça upgrade do bucket de registros _Default do seu projeto
para usar a Análise de Observabilidade.
Antes de ativar a Análise de Observabilidade no bucket de registros _Default,
considere o seguinte:
- O upgrade de um bucket para a Análise de Observabilidade não pode ser desfeito e não gera cobranças extras.
- Não é necessário criar um conjunto de dados vinculado do BigQuery.
As consultas SQL da Análise de Observabilidade só retornam registros que chegam após a conclusão do upgrade. Os registros mais antigos continuam disponíveis na Análise de registros, mas não aparecem nos resultados da consulta SQL. Depois de fazer upgrade do bucket, execute pelo menos uma verificação de insights de dados para que o painel tenha dados para exibir.
Console
No console do Google Cloud , acesse a página Logging > Armazenamento de registros.
Localize a linha do bucket
_Defaulte verifique a coluna Análise de observabilidade disponível:- Se a coluna mostrar Abrir, a Análise de Observabilidade já está ativada.
- Se a coluna mostrar Fazer upgrade, clique em Fazer upgrade e confirme o upgrade.
Aguarde alguns minutos até que o status da coluna mude para Aberto.
gcloud
Faça upgrade do bucket de registros
_Defaultpara ativar a Análise de Observabilidade:gcloud logging buckets update _Default \ --location=global --enable-analytics --project=PROJECT_IDSubstitua PROJECT_ID pelo ID do projeto Google Cloud .
Após alguns minutos, verifique se o upgrade foi concluído:
gcloud logging buckets describe _Default \ --location=global --project=PROJECT_IDConfirme se a saída inclui
analyticsEnabled: true.
Ver o uso de tokens por job na Análise de Registros
Para inspecionar o consumo de tokens de jobs individuais de verificação de insights de dados, use a Análise de registros ou a Google Cloud CLI. Para agregações por hora ou diárias no projeto, crie um painel usando a Análise de Observabilidade.
Console
No console do Google Cloud , acesse a página Logging > Análise de registros.
Se o editor de consultas não estiver visível, ative a opção Mostrar consulta.
Digite esta consulta no editor de consultas:
log_id("dataplex.googleapis.com/data_scan") jsonPayload.type="DATA_DOCUMENTATION" jsonPayload.dataDocumentation.billableTokenUsage.promptTokenCount:*Opcional: para filtrar uma verificação ou execução de job específica, anexe uma das seguintes linhas à consulta:
resource.labels.datascan_id="DATA_SCAN_ID" jsonPayload.jobId="JOB_ID"Substitua:
- DATA_SCAN_ID: o ID da verificação de insights de dados.
- JOB_ID: o ID de uma execução de job de verificação específica.
Selecione um período (por exemplo, Últimas 24 horas) e clique em Executar consulta.
Expanda uma entrada de registro e abra
jsonPayload>dataDocumentation>billableTokenUsagepara inspecionar as contagens de tokens desse job.
gcloud
Leia as entradas de registro de verificação de insights de dados recentes e formate os campos de token como uma tabela:
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)'
Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
Uma coluna vazia na tabela de saída indica tokens 0 para esse campo.
Para transformar esses campos em métricas, use as fórmulas em
Como funciona o registro de uso de tokens.
Consultar o uso de tokens usando a Análise de Observabilidade
Também é possível executar ou personalizar as consultas SQL do widget diretamente na página Análise de dados de registros no console doGoogle Cloud .
Os gráficos diários e por hora compartilham a mesma consulta de gráfico, que retorna uma linha
por job de verificação. Cada widget de gráfico agrupa e soma as linhas por dia
(timeBinSize: 86400s) ou por hora (timeBinSize: 3600s). Se você editar uma consulta
de gráfico e colá-la novamente em um widget de painel, preserve os aliases de coluna
timestamp, total_non_cached_input_tokens, total_cached_input_tokens e
total_output_tokens.
Para filtrar uma consulta para uma única verificação, anexe a seguinte condição à cláusula WHERE:
AND JSON_VALUE(resource.labels, '$.datascan_id') = 'DATA_SCAN_ID'
Substitua DATA_SCAN_ID pelo ID da verificação de insights de dados.
Exemplo de consulta de gráfico (gráficos diários e 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
Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
Exemplo de consulta por job de verificação
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
Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
Criar um painel usando a Análise de Observabilidade
Para visualizar e acompanhar o consumo de tokens do modelo ao longo do tempo, crie um painel personalizado do Monitoring usando a Análise de Observabilidade.
Essa abordagem executa consultas SQL diretamente nos registros de verificação de insights de dados
no bucket de registros _Default. Ele oferece vários benefícios:
- Precisão:as consultas calculam as contagens exatas de tokens diretamente dos payloads JSON de entrada de registro, em vez de estimativas de métricas agregadas.
- Histórico de jobs granular:além dos gráficos agregados, é possível inspecionar jobs de verificação individuais em uma visualização tabular.
- Sem custo extra:o upgrade do bucket de registros
_Defaultpara a Análise de Observabilidade não gera cobranças adicionais.
Essa opção cria um painel do Monitoring com três widgets que executam consultas SQL nos seus registros:
- Uso diário de tokens (gráfico de barras empilhadas)
- Uso de tokens por hora (gráfico de linhas)
- Uso de tokens por job de verificação (tabela mostrando os últimos 500 jobs)
A configuração JSON do painel a seguir usa a variável incorporada @__project_id (@__project_id.global._Default._Default), que consulta automaticamente o projeto em que você abre o painel. Não é necessário editar nenhum marcador de projeto no JSON antes de importá-lo.
Console
No console do Google Cloud , acesse a página Monitoring > Painéis.
Clique em Criar painel.
Na barra de ferramentas, clique em Configurações de , selecione JSON e, em seguida, selecione Editor JSON.
Substitua o conteúdo atual do editor pela definição JSON do painel fornecida na próxima seção.
Clique em Aplicar alterações. Com o salvamento automático ativado, o Monitoring salva o painel como
Data Insights - Token Usage.Na primeira vez que você abrir o painel, cada widget vai pedir para você confirmar a execução da consulta SQL no mecanismo do BigQuery para seu projeto. Verifique se o prompt lista seu projeto e clique em Continuar execução em cada widget.
Selecione um período na barra de ferramentas do painel (por exemplo, Últimos 7 dias).
gcloud
- Salve a definição JSON do painel em um arquivo local chamado
dashboard.json. Crie o painel no Monitoring:
gcloud monitoring dashboards create \ --project=PROJECT_ID \ --config-from-file=dashboard.jsonSubstitua PROJECT_ID pelo ID do projeto doGoogle Cloud .
Abra a página Painéis no console do Google Cloud , selecione Análise de insights: uso de tokens e clique em Continuar execução em cada widget para autorizar a execução da consulta SQL.
Definição JSON do painel
Para criar o painel, abra a seção a seguir e copie a definição JSON:
Definição 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"
}
}
}
]
}
}
Limitações
- As métricas de token só estarão completas se os registros
dataplex.googleapis.com/data_scannão forem excluídos ou roteados para fora do bucket de registros_Default. - Somente os jobs bem-sucedidos com metadados de token são contabilizados. As entradas de registro
sem um bloco
billableTokenUsagesão excluídas das consultas e métricas. - Use esses painéis para monitorar tendências de uso e estimar custos, não para reconciliar uma fatura oficial do Cloud Billing.
- Cada projeto do Google Cloud requer uma configuração de painel própria.
- As consultas SQL não retornam entradas de registro gravadas antes que a Análise de Observabilidade fosse ativada no bucket
_Default. - O widget de tabela por job exibe no máximo os 500 jobs mais recentes no período selecionado. Para inspecionar jobs mais antigos, consulte a Análise de Registros.
A seguir
- Saiba mais sobre os insights de dados para dados estruturados.
- Saiba como usar insights de dados para dados estruturados.
- Saiba como monitorar os registros do Knowledge Catalog.
- Saiba como monitorar as métricas do Knowledge Catalog.