feat(database): Capture query data behind dataCollection
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par le chemin JDBC P6Spy StatementInformation.getSql() et les intégrations Android SupportSQLite et SQLiteDriver, en suivant les endroits où databaseQueryData est disponible. Utilisez les cas répertoriés d’activation/désactivation, de forme des paramètres, de taille, de lot et d’arguments de liaison Android pour définir la couverture ; terminé signifie une collecte bornée au niveau de la source sans modifier les champs de requête nettoyés, ainsi que la documentation des catégories prises en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem
The Java SDK exposes dataCollection.databaseQueryData, but the current first-party database integrations do not collect any of the value-bearing data controlled by that option:
- JDBC records the original statement text through P6Spy's
StatementInformation.getSql(), not bound parameter values. - Android SQLite receives bind arguments but does not attach them to spans.
- Neither integration captures write payloads or returned result data.
As a result, databaseQueryData currently has no production consumer in these integrations.
Sanitized or parameterized db.query.text, db.query.summary, and structural database metadata are intentionally outside this option and should continue to be collected independently.
Proposal
In the next major version, add source-time collection of supported database query data and guard it with dataCollection.databaseQueryData.
Start with the value-bearing data already available to first-party instrumentation:
- JDBC prepared/callable statement bind values, where P6Spy exposes them safely.
- Android SQLite bind arguments in the SupportSQLite and SQLiteDriver integrations.
Evaluate write-operation payloads and returned result data separately; only add them where useful, bounded, and supported by established Sentry span conventions.
Requirements
- Apply the policy when first-party instrumentation writes the data, not later during serialization or export.
- Do not put bound values into span descriptions, span names,
db.query.text, ordb.query.summary. - Use standardized structured span attributes for parameters where available, such as
db.query.parameter.<key>. databaseQueryData=falsemust prevent value-bearing query data from being attached.- Query text must remain sanitized/parameterized independently of this option.
- Add size/count limits and fail-closed handling for unsupported or malformed values.
- Preserve explicitly supplied customer span data.
- Add tests for enabled/disabled behavior, positional and named parameters, null/binary/large values, batch operations, and Android bind arguments.
- Document which integrations and database data categories are supported.
Related
- Data Collection specification:
databaseQueryDatacontrols bound query parameters, write-operation payloads, and returned result data. - SQL sanitization and
db.query.summarygeneration are separate concerns and should not be made conditional on this option.
- Langage dominant
- Kotlin
- Étoiles
- 1.4k
- Forks
- 479
- Merge moyen
- 4 j 4 h
- PR mergées (30 j)
- 72
Préparer son environnement
- Aucun Dockerfile ni 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 getsentry/sentry-java
-
Platform: Java
Difficulté 2/5 Une demi-journée Accessibilité débutants 76/100
getsentry/sentry-java#6161 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Bug Java Platform: Android Platform: Java
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
getsentry/sentry-java#6138 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Feature Java Platform: Java Spans
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-java#5984 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Android Task Traces
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-java#5376 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Android Docs Errors
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
getsentry/sentry-java#5375 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de getsentry/sentry-java
Issues similaires
-
enhancement
Difficulté 2/5 Moins d'une heure Accessibilité débutants 72/100
afarber/OpenMapView#22 ·
-
Feature:Resolution
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
intellij-elixir/intellij-elixir#4396 ·
Les mainteneurs répondent en général sous 1 jour
-
ExprQuerySet.getChildren() omits WITH clausePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
partiql/partiql-lang-kotlin#1972 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
navikt/soknadsarkiverer#293 ·
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
FoedusProgramme/Gramophone#1048 ·