getsentry / getsentry/sentry-java

Add SQL span data

Open
#6,018 1 comment 0 reactions 0 assignees View on GitHub
Feature Java Platform: Java Spans
Dominant language
Kotlin
Stars
1.4k
Forks
478
Avg merge
2d 23h
Merged PRs (30d)
67

Description

### Problem Statement

First-party JDBC and Android SQLite spans currently keep the SQL statement only in the span description and attach limited database metadata (`db.system` and `db.name`). They do not attach `db.query.text` or generate `db.query.summary`.

### Solution Brainstorm

Attach database query semantic data to first-party JDBC and Android SQLite spans:

- `db.query.text`: the parameterized or SDK-sanitized statement. We should run this through a sanitizer.
- `db.query.summary`: a low-cardinality operation/target summary such as `UPDATE users`.
- Consider attaching analyzer-derived operation, collection/table, and stored-procedure attributes where they match Sentry conventions.

Check sentry conventions for more (query derived) attributes we can attach.

There's currently no data collection option to gate sanitized/parameterized `db.query.text` or `db.query.summary` so we can just attach them. Best double check https://develop.sentry.dev/sdk/foundations/client/data-collection/ when implementing.

Closely related to https://github.com/getsentry/sentry-java/issues/6019

Contributor guide

Open the contributing guide

Research direction

Start by locating the first-party JDBC and Android SQLite span instrumentation, then review Sentry database conventions and the linked issue 6019. Check the data-collection guidance before implementation. Done means the relevant spans attach sanitized or parameterized db.query.text and low-cardinality db.query.summary, with matching derived attributes where applicable.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java, kotlin, sqlite
Domain
databases, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.