JDBC spans report the whole host list as the host for multi-host connection URLs
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 70/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- java
- Domaine
- observability
Piste de recherche
L’issue nomme ConnectionMetaData.parse et présente des URL PostgreSQL et H2 avec plusieurs hôtes, mais ne nomme aucun fichier source ni fichier de test. Commencez par localiser le code d’analyse des URL et les tests existants pour les URL MySQL et MariaDB avec plusieurs hôtes, puis vérifiez comment les hôtes et les ports PostgreSQL et H2 sont analysés. Le travail sera terminé lorsque le premier hôte et son port seront indiqués pour les exemples de l’issue, avec des tests couvrant les deux formats d’URL.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The JDBC plugin parses the connection URL that DatabaseMetaData.getURL() returns to fill the destination and database fields of JDBC spans. When the URL lists more than one host, as in PostgreSQL failover/load balancing URLs or H2 cluster URLs, the parser treats the full comma-separated host list as a single host.
For example, jdbc:postgresql://myhost1:666,myhost2:777/database produces:
- host:
myhost1:666,myhost2:777(expectedmyhost1) - port:
5432, the default (expected666)
jdbc:h2:tcp://server1:9101,server2:9102/~/sample produces host server1:9101,server2:9102 and port -1.
The PostgreSQL driver returns the original connection URL from getURL(), so every span on such a connection reports this host and port in destination.address, destination.port and the service target. The MySQL and MariaDB parsers already use the first host of a multi-host URL.
Steps to reproduce
- Connect to PostgreSQL with a multi-host URL, for example
jdbc:postgresql://host1:5432,host2:5432/db?targetServerType=primary. - Run a query while a transaction is active.
- Inspect the JDBC span:
destination.addressishost1:5432,host2:5432.
The same result is visible in a unit test:
ConnectionMetaData metadata = ConnectionMetaData.parse("jdbc:postgresql://myhost1:666,myhost2:777/database").build();
metadata.getHost(); // "myhost1:666,myhost2:777"
metadata.getPort(); // 5432
Expected behavior
The agent uses the first host and its port, as it already does for MySQL and MariaDB multi-host URLs.
Environment
- Agent version: current
main(1.57.2-SNAPSHOT) - Drivers: PostgreSQL JDBC (multi-host URLs), H2 (cluster URLs)
- Langage dominant
- Java
- Étoiles
- 592
- Forks
- 340
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 17
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de elastic/apm-agent-java
-
Spring MVC View instrumentation incorrectly matches static render overloads (EasyPOI)Peut-être à nouveau libre @VelpulaGangavardhan l’a pris il y a 23 jours, et aucune pull request n’est ouverte. Ouverteagent-java community triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
elastic/apm-agent-java#4594 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
agent-java
Difficulté 2/5 1-2 jours Accessibilité débutants 62/100
elastic/apm-agent-java#2844 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Improve docs and add error log related to illegal activation of transactionPeut-être pris @AzazelSensei l’a pris il y a 61 jours. Ouvertedocs good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
elastic/apm-agent-java#850 · 4 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Log4j 2.7 log correlation calls ThreadContext.removeAll, which was introduced in 2.8Peut-être pris @Anshuman-Prakash l’a pris il y a 21 jours. Ouverteagent-java community triage
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
elastic/apm-agent-java#4593 ·
Les mainteneurs répondent en général sous 1 jour
-
agent-java community triage
elastic/apm-agent-java#4573 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de elastic/apm-agent-java
Issues similaires
-
Type: Possible bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
AntennaPod/AntennaPod#8895 ·
Les mainteneurs répondent en général sous 1 jour
-
bug build failed
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100
objectionary/eo#9852 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
dependencies enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
BrendonButler/Shops#79 ·
Les mainteneurs répondent en général sous 1 jour
-
finsim-core good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Require-Capability osgi.ee still says JavaSE 1.8 but classes are compiled for Java 11Peut-être pris @arturobernalg l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
eclipse-ee4j/angus-mail#232 ·
Les mainteneurs répondent en général sous 3 jours