feat(database): Capture query data behind dataCollection
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza por la ruta JDBC P6Spy StatementInformation.getSql() y las integraciones de Android SupportSQLite y SQLiteDriver, siguiendo dónde está disponible databaseQueryData. Usa los casos enumerados de habilitado/deshabilitado, forma de los parámetros, tamaño, lote y argumentos de enlace de Android para definir la cobertura; terminado significa una recopilación acotada en tiempo de fuente sin cambiar los campos de consulta saneados, además de la documentación de las categorías compatibles.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Kotlin
- Estrellas
- 1.4k
- Forks
- 478
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 70
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getsentry/sentry-java
-
Bug Java Platform: Java
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
getsentry/sentry-java#6138 · 1 comentario ·
-
Feature Java Platform: Java Spans
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5984 · 1 comentario ·
-
Android Task Traces
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5376 · 1 comentario ·
-
Android Docs Errors
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
getsentry/sentry-java#5375 · 1 comentario ·
-
Android good first issue Task User Feedbacks
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-java#5354 · 1 comentario ·
Todos los issues de getsentry/sentry-java
Issues similares
-
Icon Requests Abiertosupported
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LawnchairLauncher/lawnicons#4100 ·
-
cr:missing-repro cr:platform:android platform:android repro-provided
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
software-mansion/react-native-screens#4699 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Good First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
ankidroid/Anki-Android#21942 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
libre-tube/LibreTube#8781 · 1 comentario ·