(google-cloud-spanner) Built-in metrics fail when one process uses databases in different projects
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
- Domínio
- cloud, observability-sre
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-spannerversion: 3.68.0
Steps to reproduce
- In one process, create two clients for databases in two different projects.
- Run a query on each.
- 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
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de googleapis/google-cloud-python
-
api: spanner type: feature request
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
googleapis/google-cloud-python#18584 ·
Mantenedores costumam responder em até 1 dia
-
ci: remove UV_PRERELEASE workaround once Python 3.15 is officially releasedTalvez já em andamento @daniel-sanche assumiu há 3 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
googleapis/google-cloud-python#18532 ·
Mantenedores costumam responder em até 1 dia
-
auth: call_client_cert_callback() discards passphrase for encrypted keysTalvez já em andamento @kwy404 assumiu há 11 dias. Aberta
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 92/100
googleapis/google-cloud-python#18467 ·
Mantenedores costumam responder em até 1 dia
-
auth: `impersonated_credentials` loses `subject` on copy, so `with_scopes()` and `with_quota_project()` turn off domain wide delegationTalvez já em andamento @Om-singhaI assumiu há 22 dias. Abertaauth priority: p2 type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
googleapis/google-cloud-python#18428 ·
Mantenedores costumam responder em até 1 dia
-
priority: p2 type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
googleapis/google-cloud-python#18375 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de googleapis/google-cloud-python
Issues semelhantes
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 87/100
adri0/scadustats#128 ·
Mantenedores costumam responder em até 1 dia
-
`TIMESTAMP`, `TIMESTAMP_NTZ`, `TINYINT` and the other `TypeDecorator`s don't declare `python_type`Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
RPBCAbertaawaiting policy acceptance precheck-passed
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
Bioconductor/BiocContributions#240 · 1 comentário ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue launch
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
FlologixAI/etchwork#4 ·