Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

(google-cloud-spanner) Built-in metrics fail when one process uses databases in different projects

Aberta
#18,155 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
google-cloud, python

Direção de pesquisa

Comece executando o exemplo fornecido com dois projetos usando google-cloud-spanner 3.68.0 e inspecione o caminho de métricas integradas usado por spanner.Client. Compare o comportamento padrão com SPANNER_DISABLE_BUILTIN_METRICS e Client(disable_builtin_metrics=True) e, em seguida, rastreie como o projeto do primeiro cliente é reutilizado durante a exportação. O trabalho estará concluído quando as métricas de cada banco de dados chegarem ao seu próprio projeto sem desabilitar as métricas integradas.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Environment details
  • OS type and version: Linux (also happens on macOS)
  • Python version: 3.13
  • google-cloud-spanner version: 3.68.0
Steps to reproduce
  1. In one process, create two clients for databases in two different projects.
  2. Run a query on each.
  3. Wait a minute for the metrics export.
Code example
from google.cloud import spanner

a = spanner.Client(project="project-a")
b = spanner.Client(project="project-b")

a.instance("i").database("d").snapshot().execute_sql("SELECT 1")
b.instance("i").database("d").snapshot().execute_sql("SELECT 1")
What happens

The metrics export fails, and no metrics show up in Cloud Monitoring for either project:

InvalidArgument: 400 Field resource.labels.project_id had an invalid value of
"project-b": if present, must be the project number or ID in the request name
(projects/project-a).

Whichever client is created first decides where all metrics go, so everything from the other project is rejected — and it takes the first project's metrics down with it, since they're sent in the same request.

What I expected

Metrics for each database go to that database's project. Running against several projects is pretty normal, and right now it means no built-in metrics at all.

What I tried

SPANNER_DISABLE_BUILTIN_METRICS=true and Client(disable_builtin_metrics=True) both work, but only by giving up the metrics. As far as I can tell there's no way to pass in my own exporter or meter provider, so there's no way to keep them. Java has this (googleapis/google-cloud-java#13679) and there's an open request for Go (googleapis/google-cloud-go#11204), but I couldn't find anything similar here.

Linguagem predominante
Python
Estrelas
5.4k
Forks
1.8k
Merge médio
2d 9h
PRs com merge (30d)
138

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de googleapis/google-cloud-python

Todas as issues de googleapis/google-cloud-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.