Como configurar exportações

Nesta página, explicamos como exportar traces usando a API Cloud Trace e a CLI do Google Cloud. Você precisa usar a versão 274.0.0 ou posterior da CLI do Google Cloud. Para informações sobre como atualizar a CLI do Google Cloud, consulte gcloud components update .

Algumas amostras nesta página foram geradas usando curl. Para informações sobre como configurar essa ferramenta, consulte Como usar curl.

Terminologia

Para simplificar os exemplos nesta página, foram usadas variáveis de ambiente.

Os exemplos da CLI do Google Cloud usam as seguintes variáveis de ambiente:

  • SINK_ID: o nome ou o identificador do coletor. Por exemplo, my-sink. Não é necessário fornecer o comando totalmente qualificado à CLI do Google Cloud, já que ele pode determinar seu projeto do Google Cloud.
  • DESTINATION: armazena o nome totalmente qualificado do destino. Precisa ser um conjunto de dados do BigQuery. Por exemplo, um destino válido é:

    bigquery.googleapis.com/projects/[DESTINATION_PROJECT_NUMBER]/datasets/[DATASET_ID]
    

    em que [DESTINATION_PROJECT_NUMBER] é o número do projeto do Google Cloud do destino e [DATASET_ID] é o identificador do conjunto de dados do BigQuery.

Os exemplos de curl usam as seguintes variáveis de ambiente:

  • ACCESS_TOKEN: armazena o token de autorização. Para mais informações, consulte Como usar curl.
  • PROJECT_ID: armazena o identificador ou o número do projeto do Google Cloud.
  • PROJECT_NUMBER: armazena o número do projeto do Google Cloud.
  • SINK_ID: o nome ou o identificador do coletor. Por exemplo, my-sink.
  • SINK_BODY: armazena a descrição de um recurso TraceSink. O recurso TraceSink inclui um nome e o destino do coletor. O nome precisa especificar o número do projeto do Google Cloud.
  • DESTINATION: armazena o nome totalmente qualificado do destino. Precisa ser um conjunto de dados do BigQuery.

Como configurar o destino

Para exportar traces para o BigQuery, faça o seguinte:

  1. Crie o conjunto de dados de destino.

  2. Crie o coletor usando a API Cloud Trace ou a CLI do Google Cloud. Para saber mais detalhes, consulte Como criar um coletor.

  3. Conceda ao coletor o papel de dataEditor para o conjunto de dados do BigQuery:

    1. Consiga a identidade do gravador do coletor. Para informações sobre a identidade do gravador, consulte Propriedades e terminologia do coletor.

      A identidade do gravador de um coletor está incluída nos dados de resposta do comando create. Ela também está incluída nos dados de resposta do comando list.

    2. Adicione a identidade do gravador do coletor como uma conta de serviço ao conjunto de dados do BigQuery e conceda o papel de editor de dados do BigQuery.

      • Para adicionar as permissões usando o Console do Google Cloud, consulte Como controlar o acesso a um conjunto de dados.

      • Para adicionar as permissões usando a CLI do Google Cloud, use o comando add-iam-policy-binding e forneça o identificador de projeto do Google Cloud e a identidade do gravador do coletor:

        gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \
          --member serviceAccount:${WRITER_IDENTITY} \
          --role roles/bigquery.dataEditor
        

        No comando anterior, WRITER_IDENTITY é uma variável de ambiente que armazena a identidade do gravador do coletor e DESTINATION_PROJECT_ID é o identificador do projeto do Google Cloud do conjunto de dados do BigQuery.

Como listar coletores

Para listar todos os coletores no projeto do Google Cloud, incluindo as identidades de gravador, chame o método traceSinks.list.

gcloud

Para listar os coletores definidos com o projeto padrão usando a CLI do Google Cloud, execute o seguinte comando:

gcloud alpha trace sinks list

Protocolo

Para listar coletores usando curl, envie uma solicitação GET para:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Por exemplo, a seguinte solicitação recupera todos os coletores:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Mostrar detalhes de um coletor específico

Para mostrar os detalhes de um coletor específico que está no projeto do Google Cloud, chame o método traceSinks.get.

gcloud

Para exibir os detalhes do coletor com o identificador armazenado no SINK_ID usando a CLI do Google Cloud, execute o seguinte comando:

gcloud alpha trace sinks describe ${SINK_ID}

Protocolo

Para exibir os detalhes do coletor cujo identificador está armazenado em SINK_ID usando curl, envie uma solicitação GET para:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}

Por exemplo, a solicitação a seguir recupera os detalhes do coletor especificado:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Como criar um coletor

Para criar um coletor no projeto do Google Cloud, chame o método traceSinks.create. O destino de um coletor precisa ser um conjunto de dados do BigQuery.

Esse conjunto de dados precisa existir antes da criação do coletor. O trace não verifica a existência do destino. Consulte Como criar conjuntos de dados para informações sobre como criar conjuntos de dados do BigQuery.

gcloud

Para criar um coletor usando a CLI do Google Cloud, execute o seguinte comando:

gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}

Protocolo

Para criar um coletor usando curl, envie uma solicitação POST para:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Por exemplo, para criar um coletor chamado test_sink e exportar períodos de trace para test_dataset no projeto com ${PROJECT_NUMBER}, defina a variável de ambiente SINK_BODY como mostrado:

SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'

Para criar o coletor, execute o seguinte comando:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"   -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Pode levar vários minutos depois que você criar um coletor para que os períodos de trace sejam exportados para o destino.

Como excluir um coletor

Para excluir um coletor que esteja no projeto do Google Cloud, chame o comando traceSinks.delete.

gcloud

Para excluir o coletor com identificador armazenado no SINK_ID usando a CLI do Google Cloud, execute o seguinte comando:

gcloud alpha trace sinks delete ${SINK_ID}

Protocolo

Para excluir o coletor cujo identificador está armazenado em SINK_ID usando curl, envie uma solicitação DELETE para:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Por exemplo, a seguinte solicitação exclui um coletor:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Como atualizar um coletor

Para atualizar um coletor que esteja no projeto do Google Cloud, chame o comando traceSinks.patch.

Esse conjunto de dados precisa existir antes da criação do coletor. O trace não verifica a existência do destino.

gcloud

Para atualizar o coletor com o identificador armazenado no SINK_ID usando a CLI do Google Cloud, execute o seguinte comando:

gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}

A variável de ambiente DESTINATION armazena o novo destino do coletor.

Protocolo

Para atualizar o destino do coletor cujo identificador está armazenado em SINK_ID usando curl, envie uma solicitação PATCH para:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Por exemplo, a solicitação a seguir atualiza o destino de um coletor:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

Para ver um exemplo de SINK_BODY, consulte o exemplo para criar um coletor.

Pode levar vários minutos depois que você atualiza um coletor para que os períodos de trace sejam exportados para o novo destino.

Exemplo completo

Nesta seção, mostramos como usar os comandos da CLI do Google Cloud para listar, criar, descrever, atualizar e excluir um coletor. Os comandos foram executados para um projeto com o identificador a-sample-project. Esse projeto foi pré-configurado para conter dois conjuntos de dados do BigQuery. Por fim, nesses exemplos, o coletor e o destino estão no mesmo projeto. Isso não é um requisito. O coletor e o destino podem estar em projetos diferentes do Google Cloud.

Etapas da configuração

  1. Verifique a configuração padrão do projeto:

    $ gcloud config list
    

    Exemplo de resposta:

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Verifique se a CLI do Google Cloud é pelo menos 274.0.0:

    $ gcloud --version
    

    Exemplo de resposta:

    Google Cloud SDK 275.0.0
    alpha 2020.01.03
    beta 2020.01.03
    bq 2.0.51
    core 2020.01.03
    gsutil 4.46
    kubectl 2020.01.03
    
  3. Identifique os conjuntos de dados disponíveis no projeto padrão:

    $ bq ls
    

    Exemplo de resposta:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    Na primeira vez que você usar os comandos bq, talvez seja necessário selecionar o projeto.

Configurar as variáveis de ambiente

  1. Defina as variáveis de ambiente usadas pelo comando da CLI do Google Cloud:

    $ PROJECT_ID=a-sample-project
    $ PROJECT_NUMBER=123456789000
    $ SINK_ID=a-sample-sink
    $ DATA_SET_NAME=dataset_1
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    

    Neste exemplo, o destino e o coletor estão no mesmo projeto. Isso não é um requisito. O coletor e o destino podem estar em projetos diferentes do Google Cloud.

  2. Verifique as configurações:

    $ echo $SINK_ID
    a-sample-sink
    $ echo $DATA_SET_NAME
    dataset_1
    $ echo $DESTINATION
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    

Listar coletores

Para listar todos os coletores, execute o seguinte comando:

$ gcloud alpha trace sinks list

Como este projeto não tem coletores, a resposta é:

Listed 0 items.

Criar um coletor

  1. Para criar um coletor, execute o seguinte comando:

    $ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
    

    Exemplo de resposta:

    You can give permission to the service account by running the following command.
    gcloud projects add-iam-policy-binding bigquery-project \
    --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \
    --role roles/bigquery.dataEditor
    

    Observe que o nome da conta de serviço inclui export-0000001cbe991a08-3434. O número 0000001cbe991a08 é a representação hexadecimal do PROJECT_NUMBER. O valor 3434 é um valor aleatório.

    Antes de executar a CLI do Google Cloud na resposta acima, é preciso substituir bigquery-project pelo identificador do projeto.

  2. Verifique se o coletor foi criado:

    $ gcloud alpha trace sinks list
    

    Exemplo de resposta:

    NAME           DESTINATION                                                       WRITER_IDENTITY
    a-sample-sink  bigquery.googleapis.com/projects/123456789000/datasets/dataset_1  export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  3. Descreva o coletor em detalhes:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Exemplo de resposta:

    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  4. Conceda a permissão bigquery.dataEditor à identidade de gravação do coletor. O comando create do coletor retorna um comando da CLI do Google Cloud que pode ser usado para atualizar a permissão.

    Para que esse comando seja bem-sucedido, faça o seguinte:

    • Verifique se você tem permissão para modificar as permissões de destino.
    • Substitua bigquery-project pelo identificador do projeto:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Observe que a primeira entrada neste exemplo de resposta é a identidade do gravador do coletor:

    Updated IAM policy for project [a-sample-project].
    bindings:
    - members:
      - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    - members:
      - user:user@example.com
      role: roles/cloudtrace.admin
    - members:
      - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
      role: roles/container.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
      role: roles/containeranalysis.ServiceAgent
    - members:
      - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
      role: roles/containerregistry.ServiceAgent
    - members:
      - serviceAccount:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      role: roles/editor
    - members:
      - user:user@example.com
      role: roles/owner
    etag: BwWbqGVnShQ=
    version: 1

Alterar o destino do coletor

Neste exemplo, o destino é alterado de dataset_1 para dataset_other:

  1. Atualize as variáveis de ambiente DATA_SET_NAME e DESTINATION:

    $ DATA_SET_NAME=dataset_other
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Não se esqueça de atualizar o valor de DESTINATION depois de modificar DATA_SET_NAME ou PROJECT_NUMBER.

  2. Altere o destino do coletor:

    $ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
    

    Um exemplo de saída é:

    Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Execute o comando "describe" para ver os detalhes do coletor:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Ao atualizar o destino de um coletor, você não altera a identidade do gravador do coletor e, portanto, não precisa atualizar as permissões do coletor.

Excluir um coletor

Para excluir um coletor, execute o seguinte comando:

$ gcloud alpha trace sinks delete ${SINK_ID}

O exemplo de saída é:

Really delete sink [a-sample-sink]?

Do you want to continue (y/N)?  y

Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].

Para verificar o resultado, execute o comando list:

$ gcloud alpha trace sinks list
Listed 0 items.

Validação

Use a métrica exported_span_count do Cloud Monitoring como base para um gráfico que exibe os erros quando os dados do Trace são exportados para o BigQuery. Você também pode criar uma política de alertas para notificá-lo caso ocorram erros de exportação.

Como criar um gráfico

Se quiser usar o Metrics Explorer para visualizar as métricas de um recurso monitorado, siga estes passos:

  1. No Console do Google Cloud, acesse a página Metrics Explorer no Monitoring.
  2. Acessar o Metrics Explorer

  3. Na barra de ferramentas, selecione a guia Explorer.
  4. Selecione a guia Configuração.
  5. Expanda o menu Selecionar uma métrica, digite Spans Exported to BigQuery na barra de filtros e use os submenus para selecionar um tipo específico de recurso e métrica:
    1. No menu Recursos ativos, selecione Cloud Trace.
    2. No menu Categorias de métricas ativas, selecione Bigquery_explort.
    3. No menu Métricas ativas, selecione Períodos exportados para o BigQuery.
    4. Clique em Aplicar.
  6. Opcional: para configurar a visualização dos dados, adicione filtros e use os menus Agrupar por, Agregador e do tipo de gráfico. Para esse gráfico, use as seguintes configurações:
    1. Deixe o campo Filtro vazio. Com essa opção, o gráfico exibe todos os dados de status.
    2. Selecione status no campo Agrupar por. Essa seleção resulta em uma única série temporal para cada valor de status exclusivo. A tabela a seguir exibe os possíveis valores de status:
      Valor de StatusSignificado e ação corretiva
      ok A transferência de dados foi concluída.
      bigquery_permission_denied A exportação de dados para o destino falhou. A exportação pode falhar por qualquer um dos seguintes motivos:
      • A conta de serviço no coletor de trace não tem permissão para gravar no conjunto de dados de destino. Consulte Permissão negada.
      • O destino do conjunto de dados no coletor não existe. Consulte Destino inválido.
      • Erros internos do BigQuery. Este é um erro inesperado e temporário.
      bigquery_quota_exceeded O projeto do BigQuery excedeu a cota de streaming do BigQuery. Consulte Cota esgotada.
      invalid_span
      internal_errors

      invalid_destination
      Erro desconhecido que impede a exportação de dados para o BigQuery. Para resolver essa condição, entre em contato com o suporte técnico ou faça uma pergunta no Stack Overflow. Para mais informações, consulte Como receber suporte.
    3. Deixe os campos Aggregator com os valores padrão
    Para mais informações, consulte Selecionar métricas ao usar o Metrics Explorer.
  7. Opcional: altere as configurações do gráfico:
    • Para cotas e outras métricas que geram relatórios de uma amostra por dia, defina o período como pelo menos uma semana e o tipo de gráfico como Gráfico de barras empilhadas.
    • Para métricas de valor de distribuição, defina o tipo de gráfico como Gráfico de mapa de calor.

Se o coletor do Trace estiver exportando dados com êxito, o gráfico criado com as configurações anteriores exibirá uma única série temporal com o valor de status ok. Se ocorrerem erros durante a exportação, serão exibidas séries temporais adicionais no gráfico.

Como criar uma política de alertas

Para criar uma política de alertas que seja acionada caso haja erros na exportação de dados do Cloud Trace para o BigQuery, use as configurações a seguir.

Novo estado
Campo

Valor
Recurso e métrica No menu Recursos, selecione Cloud Trace.
No menu Categorias de métricas, selecione Bigquery_export.
No menu Métricas, selecione Períodos exportados para o BigQuert.
Filtrar status != ok
Séries cruzadas
Série temporal agrupada por
status
Várias séries
Agregação de série temporal
sum
Janela contínua 1 m
Função de janela contínua rate
Campo
Configurar gatilho de alerta

Valor
Tipo de condição Threshold
Acionador de alerta Any time series violates
Posição do limite Above threshold
Valor do limite 0
Teste a janela novamente 1 minute

Como usar o curl

Nesta seção, descrevemos as convenções e a configuração usadas para invocar a API Cloud Trace usando a ferramenta curl:

Autenticação

  1. Crie uma variável de ambiente para manter seu identificador de projeto do Google Cloud:

    PROJECT_ID=my-project
    
  2. Crie uma variável de ambiente para armazenar o número do projeto do Google Cloud:

    PROJECT_NUMBER=12345
    
  3. Autentique a CLI do Google Cloud:

    gcloud auth login
    
  4. Defina o identificador de projeto padrão do Google Cloud:

    gcloud config set project ${PROJECT_ID}
    
  5. Crie um token de autorização e salve-o em uma variável de ambiente:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Verifique o token de acesso:

    echo ${ACCESS_TOKEN}
    

    A resposta ao comando deve ser uma string longa de caracteres. Por exemplo, em um sistema, a resposta começa como:

    y29.GluiBjo....
    

Como invocar o curl

Cada comando curl inclui um conjunto de argumentos, seguido pelo URL de um recurso da API Cloud Trace. Os argumentos comuns incluem valores especificados pelas variáveis de ambiente PROJECT_ID e ACCESS_TOKEN.

Cada invocação curl tem a seguinte forma geral:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]

em que:

  • [OTHER_ARGS] (Opcional): omita esse campo se você estiver emitindo uma solicitação GET. Para outros tipos de solicitações HTTP, substitua esse marcador pelo tipo de solicitação e pelos dados adicionais necessários para atender à solicitação.
  • [API_VERSION]: especifique a versão da API.
  • [RESOURCE]: especifique o nome do recurso da API Cloud Trace.

Por exemplo, para listar os mil traces mais recentes no seu projeto, execute o seguinte:

curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces

Solução de problemas

Erro de argumento inválido para o conjunto de dados

A seguinte mensagem de erro indica que o nome do conjunto de dados é inválido:

ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
    bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.

O erro é causado pelo destino, incluindo o identificador do projeto do Google Cloud, a-sample-project, como um qualificador para o nome do conjunto de dados.

Para resolver esse erro, substitua a-sample-project:dataset_1 por dataset_1 e, em seguida, emita o comando de criação.

Observe que é possível listar os conjuntos de dados com o comando bq ls.

Nenhum dado de trace está sendo recebido

Há vários motivos para você não receber dados de trace no BigQuery.

Destino inválido

Verifique se o nome do conjunto de dados e o número do projeto estão corretos.

  • Para verificar se o nome do conjunto de dados está correto. Para listar os conjuntos de dados no projeto atual, execute bq ls.

    Se você optou por usar variáveis de ambiente, verifique se o valor de cada variável está correto emitindo um comando echo. Por exemplo, verifique se seu destino está correto:

    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Como DESTINATION depende do valor de PROJECT_NUMBER e DATA_SET_NAME, essas duas variáveis precisam ser definidas primeiro. Além disso, se você modificar uma dessas duas variáveis, precisará atualizar o valor armazenado em DESTINATION.

  • Para determinar o número atual de projetos, execute o seguinte:

    gcloud projects list --filter="${PROJECT_ID}"
    

    É possível definir o PROJECT_NUMBER de maneira programática usando o seguinte comando:

    $ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
    

Permissões inválidas

Verifique se a conta de serviço recebeu o papel de DataEditor para o BigQuery. Você pode verificar as permissões executando o seguinte comando:

$ gcloud projects get-iam-policy ${PROJECT_ID}

A resposta do comando descreve todas as vinculações do IAM. Neste caso, o resultado é como mostrado. Observe que a identidade do gravador do coletor tem o papel dataEditor:

bindings:
- members:
  - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
  role: roles/bigquery.dataEditor
- members:
  [Note, content truncated]

Cota esgotada

Se você estiver recebendo dados e eles pararem repentinamente ou seus dados estiverem incompletos, talvez você esteja esgotando sua cota de streaming do BigQuery. Para ver sua cota, acesse a página IAM e administrador e selecione Cotas. Pesquise a API BigQuery. Há duas entradas relevantes: linhas de streaming por minuto por recurso, bytes de streaming por minuto por recurso.

Acessar "Cotas"

A seguir

Para informações sobre o esquema do BigQuery, consulte Como exportar para o BigQuery.