Skip to content

Conversation

@trask
Copy link
Member

@trask trask commented Dec 5, 2025

No description provided.

@trask trask force-pushed the db-query-summary-sql branch 5 times, most recently from f299e7c to c5970ae Compare December 6, 2025 15:44
Comment on lines +155 to +157
equalTo(
DbAttributes.DB_QUERY_SUMMARY,
emitStableDatabaseSemconv() ? "CALL" : null)),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be CALL NEXT VALUE?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to call it CALL Customer_SEQ or maybe CALL NEXT VALUE FOR Customer_SEQ. Having the summary contain the sequence name feels more informative. The sample summaries in the spec also contain the table names.

@trask trask force-pushed the db-query-summary-sql branch 3 times, most recently from e761302 to 69592b0 Compare December 9, 2025 00:28
@trask trask force-pushed the db-query-summary-sql branch from 69592b0 to ef34cbd Compare December 19, 2025 16:50
trask added 14 commits December 20, 2025 08:51
When SQL query text cannot be parsed (e.g., invalid SQL or non-SQL text),
the span name was incorrectly falling back to server.address instead of
the default 'DB Query' name.

According to semconv, server.address should only be used as part of the
target when combined with an operation (e.g., 'SELECT localhost'). When
there is no operation, the fallback should be db.system.name or the
default span name.

This change ensures that server.address is only used when we have a
valid operation to combine it with, preventing span names like
'localhost' when the SQL cannot be parsed.

Fixes failing tests in:
- :instrumentation:jdbc:javaagent:testStableSemconv
- :instrumentation:jdbc:library:testStableSemconv
- :instrumentation:cassandra:cassandra-3.0:javaagent:testStableSemconv
Per the stable database semantic conventions, when neither operation
nor target are available, the span name should be db.system.name.

Updated the test to expect 'other_sql' (the db.system.name value) for
stable semconv, while keeping 'DB Query' for old semconv to maintain
backward compatibility.
- Fix computeSpanNameStable to return DEFAULT_SPAN_NAME instead of null when db.system is null
- Include server address in target fallback even when no operation exists
- Fix SqlStatementSanitizerTest to use getQueryText() instead of deprecated getFullStatement()

Resolves test failures in DbClientSpanNameExtractorTest where span names were expected but null was returned.
@trask trask force-pushed the db-query-summary-sql branch from ef34cbd to a93e84c Compare December 20, 2025 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants