Skip to content

Commit 6288a7d

Browse files
authored
Merge branch 'main' into r2dbc-db-system
2 parents daf1811 + 607f40d commit 6288a7d

77 files changed

Lines changed: 1251 additions & 526 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.fossa.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -658,9 +658,6 @@ targets:
658658
- type: gradle
659659
path: ./
660660
target: ':instrumentation:ktor:ktor-1.0:library'
661-
- type: gradle
662-
path: ./
663-
target: ':instrumentation:ktor:ktor-2-common:library'
664661
- type: gradle
665662
path: ./
666663
target: ':instrumentation:ktor:ktor-2.0:javaagent'
@@ -676,6 +673,9 @@ targets:
676673
- type: gradle
677674
path: ./
678675
target: ':instrumentation:ktor:ktor-common:library'
676+
- type: gradle
677+
path: ./
678+
target: ':instrumentation:ktor:ktor-common-2.0:library'
679679
- type: gradle
680680
path: ./
681681
target: ':instrumentation:lettuce:lettuce-4.0:javaagent'

.github/config/lychee.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ max_concurrency = 4
1010
include_fragments = true
1111

1212
remap = [
13-
"https://docs.oracle.com/(.*)#.*$ https://docs.oracle.com/$1"
13+
"https://docs.oracle.com/(.*)#.*$ https://docs.oracle.com/$1",
14+
# lychee doesn't understand scroll to text fragment anchors
15+
"https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/examples/extension/build.gradle#:~:text=extendedAgent https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/examples/extension/build.gradle"
1416
]
1517

1618
# excluding links to pull requests and issues is done for performance

conventions/src/main/kotlin/io/opentelemetry/instrumentation/gradle/StaticImportFormatter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ class StaticImportFormatter : FormatterFunc, Serializable {
6161
"io.opentelemetry.instrumentation.api.internal.SemconvStability",
6262
"emit[a-zA-Z0-9]*"
6363
),
64+
Triple(
65+
"SqlDialect",
66+
"io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlDialect",
67+
"DOUBLE_QUOTES_ARE_[A-Z_]+"
68+
),
6469
Triple("Collectors", "java.util.stream.Collectors", "[a-z][a-zA-Z0-9]*"),
6570
)
6671

dependencyManagement/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ val DEPENDENCY_BOMS = listOf(
3737

3838
val autoServiceVersion = "1.1.1"
3939
val autoValueVersion = "1.11.1"
40-
val errorProneVersion = "2.47.0"
40+
val errorProneVersion = "2.48.0"
4141
val byteBuddyVersion = "1.18.5"
4242
val asmVersion = "9.9.1"
4343
val jmhVersion = "1.37"

examples/distro/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ subprojects {
6767
implementation(platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:${versions.opentelemetryJavaagent}"))
6868
implementation(platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${versions.opentelemetryJavaagentAlpha}"))
6969

70-
testImplementation("org.mockito:mockito-core:5.21.0")
70+
testImplementation("org.mockito:mockito-core:5.22.0")
7171

7272
testImplementation(enforcedPlatform("org.junit:junit-bom:5.14.3"))
7373
testImplementation("org.junit.jupiter:junit-jupiter-api")

examples/distro/smoke-tests/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
dependencies {
66
testImplementation("org.testcontainers:testcontainers:2.0.3")
77
testImplementation("com.fasterxml.jackson.core:jackson-databind:2.21.1")
8-
testImplementation("com.google.protobuf:protobuf-java-util:4.33.5")
8+
testImplementation("com.google.protobuf:protobuf-java-util:4.34.0")
99
testImplementation("com.squareup.okhttp3:okhttp:5.3.2")
1010
testImplementation("io.opentelemetry.proto:opentelemetry-proto:1.9.0-alpha")
1111
testImplementation("io.opentelemetry:opentelemetry-api")

examples/extension/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ dependencies {
100100
//All dependencies below are only for tests
101101
testImplementation("org.testcontainers:testcontainers:2.0.3")
102102
testImplementation("com.fasterxml.jackson.core:jackson-databind:2.21.1")
103-
testImplementation("com.google.protobuf:protobuf-java-util:4.33.5")
103+
testImplementation("com.google.protobuf:protobuf-java-util:4.34.0")
104104
testImplementation("com.squareup.okhttp3:okhttp:5.3.2")
105105
testImplementation("io.opentelemetry:opentelemetry-api")
106106
testImplementation("io.opentelemetry.proto:opentelemetry-proto:1.9.0-alpha")

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientSpanNameExtractor.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ private SqlClientSpanNameExtractor(SqlClientAttributesGetter<REQUEST, ?> getter)
183183
@Override
184184
public String extract(REQUEST request) {
185185
String namespace = getter.getDbNamespace(request);
186+
SqlDialect dialect = getter.getSqlDialect(request);
186187
Collection<String> rawQueryTexts = getter.getRawQueryTexts(request);
187188

188189
if (rawQueryTexts.isEmpty()) {
@@ -202,8 +203,8 @@ public String extract(REQUEST request) {
202203
if (rawQueryTexts.size() > 1) { // for backcompat(?)
203204
return computeSpanName(namespace, null, null, null);
204205
}
205-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyze(rawQueryTexts.iterator().next());
206-
206+
SqlQuery analyzedQuery =
207+
SqlQueryAnalyzerUtil.analyze(rawQueryTexts.iterator().next(), dialect);
207208
return computeSpanName(
208209
namespace,
209210
analyzedQuery.getOperationName(),
@@ -213,7 +214,7 @@ public String extract(REQUEST request) {
213214

214215
if (rawQueryTexts.size() == 1) {
215216
String rawQueryText = rawQueryTexts.iterator().next();
216-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText);
217+
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText, dialect);
217218
boolean batch = isBatch(request);
218219
String querySummary = analyzedQuery.getQuerySummary();
219220
if (querySummary != null) {
@@ -223,7 +224,7 @@ public String extract(REQUEST request) {
223224
getter, request, batch ? "BATCH" : null, null, analyzedQuery.getStoredProcedureName());
224225
}
225226

226-
MultiQuery multiQuery = MultiQuery.analyzeWithSummary(rawQueryTexts, false);
227+
MultiQuery multiQuery = MultiQuery.analyzeWithSummary(rawQueryTexts, dialect, false);
227228
String querySummary = multiQuery.getQuerySummary();
228229
if (querySummary != null) {
229230
return querySummary;
@@ -266,7 +267,9 @@ public String extract(REQUEST request) {
266267
Collection<String> rawQueryTexts = getter.getRawQueryTexts(request);
267268
String operationName = null;
268269
if (rawQueryTexts.size() == 1) {
269-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyze(rawQueryTexts.iterator().next());
270+
String rawQuery = rawQueryTexts.iterator().next();
271+
SqlDialect dialect = getter.getSqlDialect(request);
272+
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyze(rawQuery, dialect);
270273
operationName = analyzedQuery.getOperationName();
271274
}
272275
if (operationName == null) {

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/MultiQuery.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ private MultiQuery(
2424
}
2525

2626
static MultiQuery analyzeWithSummary(
27-
Collection<String> rawQueryTexts, boolean querySanitizationEnabled) {
27+
Collection<String> rawQueryTexts, SqlDialect dialect, boolean querySanitizationEnabled) {
2828
UniqueValue uniqueStoredProcedureName = new UniqueValue();
2929
Set<String> uniqueQueryTexts = new LinkedHashSet<>();
3030
UniqueValue uniqueQuerySummary = new UniqueValue();
3131
for (String rawQueryText : rawQueryTexts) {
32-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText);
32+
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText, dialect);
3333
uniqueStoredProcedureName.set(analyzedQuery.getStoredProcedureName());
3434
uniqueQueryTexts.add(querySanitizationEnabled ? analyzedQuery.getQueryText() : rawQueryText);
3535
uniqueQuerySummary.set(analyzedQuery.getQuerySummary());

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,15 @@ public static <REQUEST, RESPONSE> SqlClientAttributesExtractorBuilder<REQUEST, R
8080
@Override
8181
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
8282
Collection<String> rawQueryTexts = getter.getRawQueryTexts(request);
83+
SqlDialect dialect = getter.getSqlDialect(request);
8384

8485
Long batchSize = getter.getDbOperationBatchSize(request);
8586
boolean isBatch = batchSize != null && batchSize > 1;
8687

8788
if (emitOldDatabaseSemconv()) {
8889
if (rawQueryTexts.size() == 1) { // for backcompat(?)
8990
String rawQueryText = rawQueryTexts.iterator().next();
90-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyze(rawQueryText);
91+
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyze(rawQueryText, dialect);
9192
String operationName = analyzedQuery.getOperationName();
9293
attributes.put(
9394
DB_STATEMENT, querySanitizationEnabled ? analyzedQuery.getQueryText() : rawQueryText);
@@ -106,7 +107,7 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
106107
boolean shouldSanitize = querySanitizationEnabled && !parameterizedQuery;
107108
if (rawQueryTexts.size() == 1) {
108109
String rawQueryText = rawQueryTexts.iterator().next();
109-
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText);
110+
SqlQuery analyzedQuery = SqlQueryAnalyzerUtil.analyzeWithSummary(rawQueryText, dialect);
110111
attributes.put(DB_QUERY_TEXT, shouldSanitize ? analyzedQuery.getQueryText() : rawQueryText);
111112
String querySummary = analyzedQuery.getQuerySummary();
112113
attributes.put(
@@ -115,7 +116,8 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
115116
attributes.put(DB_STORED_PROCEDURE_NAME, analyzedQuery.getStoredProcedureName());
116117
} else if (rawQueryTexts.size() > 1) {
117118
MultiQuery multiQuery =
118-
MultiQuery.analyzeWithSummary(getter.getRawQueryTexts(request), shouldSanitize);
119+
MultiQuery.analyzeWithSummary(
120+
getter.getRawQueryTexts(request), dialect, shouldSanitize);
119121
attributes.put(DB_QUERY_TEXT, join("; ", multiQuery.getQueryTexts()));
120122
attributes.put(DB_QUERY_SUMMARY, multiQuery.getQuerySummary());
121123
attributes.put(DB_STORED_PROCEDURE_NAME, multiQuery.getStoredProcedureName());

0 commit comments

Comments
 (0)