Skip to content

Commit 59f9b72

Browse files
committed
Merge remote-tracking branch 'upstream/main' into fix/sampler-packages
2 parents 067ef07 + df89d8d commit 59f9b72

File tree

536 files changed

+20786
-4293
lines changed

Some content is hidden

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

536 files changed

+20786
-4293
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ body:
1616
- disk-buffering
1717
- gcp-auth-extension
1818
- gcp-resources
19+
- ibm-mq-metrics
1920
- jfr-connection
2021
- jfr-events
2122
- jmx-metrics
@@ -57,3 +58,10 @@ body:
5758
attributes:
5859
label: Additional context
5960
description: Any additional information you think may be relevant to this issue.
61+
- type: dropdown
62+
attributes:
63+
label: Tip
64+
description: This element is static, used to render a helpful sub-heading for end-users and community members to help prioritize issues. Please leave as is.
65+
options:
66+
- <sub>[React](https://github.blog/news-insights/product-news/add-reactions-to-pull-requests-issues-and-comments/) with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it. Learn more [here](https://opentelemetry.io/community/end-user/issue-participation/).</sub>
67+
default: 0

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ body:
1616
- disk-buffering
1717
- gcp-auth-extension
1818
- gcp-resources
19+
- ibm-mq-metrics
1920
- jfr-connection
2021
- jfr-events
2122
- jmx-metrics
@@ -48,3 +49,10 @@ body:
4849
attributes:
4950
label: Additional context
5051
description: Add any other context or screenshots about the feature request here.
52+
- type: dropdown
53+
attributes:
54+
label: Tip
55+
description: This element is static, used to render a helpful sub-heading for end-users and community members to help prioritize issues. Please leave as is.
56+
options:
57+
- <sub>[React](https://github.blog/news-insights/product-news/add-reactions-to-pull-requests-issues-and-comments/) with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it. Learn more [here](https://opentelemetry.io/community/end-user/issue-participation/).</sub>
58+
default: 0

.github/component_owners.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# this file is used by .github/workflows/assign-reviewers.yml
1+
# this file is used by .github/workflows/assign-reviewers.yml and .github/workflows/assign-issue-owners.yml
22
#
33
# NOTE component owners must be members of the GitHub OpenTelemetry organization
44
# so that they can be added to @open-telemetry/java-contrib-triagers
5-
# which in turn is required for them to be auto-assigned as reviewers by the automation
5+
# which in turn is required for them to be auto-assigned as reviewers and issue assignees by the automation
66
#
77
# NOTE when updating this file, don't forget to update the README.md files in the associated
88
# components also
99
#
1010
# NOTE when adding/updating one of the component names, don't forget to update the associated
11-
# `comp:*` labels
11+
# `component:*` labels (used for both PR reviews and issue assignment)
1212
components:
1313
aws-resources:
1414
- wangzlei
@@ -65,7 +65,7 @@ components:
6565
- LikeTheSalad
6666
- breedx-splk
6767
- jack-berg
68-
prometheus-collector:
68+
prometheus-client-bridge:
6969
- jkwatson
7070
resource-providers:
7171
- breedx-splk
@@ -90,3 +90,6 @@ components:
9090
opamp-client:
9191
- LikeTheSalad
9292
- jackshirazi
93+
ibm-mq-metrics:
94+
- breedx-splk
95+
- atoulme

.github/config/lychee.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
timeout = 30
2+
retry_wait_time = 5
3+
max_retries = 6
4+
max_concurrency = 4
5+
6+
# Check link anchors
7+
include_fragments = true
8+
9+
remap = [
10+
# workaround for https://github.com/lycheeverse/lychee/issues/1729
11+
"https://github.com/(.*?)/(.*?)/blob/(.*?)/(.*#.*)$ https://raw.githubusercontent.com/$1/$2/$3/$4"
12+
]
13+
14+
exclude = [
15+
# excluding links to pull requests and issues is done for performance
16+
"^https://github.com/open-telemetry/opentelemetry-java-contrib/(issues|pull)/\\d+$",
17+
]

.github/copilot-instructions.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Copilot Instructions for OpenTelemetry Java Contrib
2+
3+
This repository provides observability instrumentation for Java applications.
4+
5+
## Code Review Priorities
6+
7+
### Style Guide Compliance
8+
9+
**PRIORITY**: Verify that all code changes follow the [Style Guide](../docs/style-guide.md). Check:
10+
11+
- Code formatting (auto-formatting, static imports, class organization)
12+
- Java language conventions (`final` usage, `@Nullable` annotations, `Optional` usage)
13+
- Performance constraints (hot path allocations)
14+
- Implementation patterns (SPI registration, configuration conventions)
15+
- Gradle conventions (Kotlin DSL, plugin usage, module naming)
16+
- Documentation standards (README files, deprecation processes)
17+
18+
### Critical Areas
19+
20+
- **Public APIs**: Changes affect downstream users and require careful review
21+
- **Performance**: Instrumentation must have minimal overhead
22+
- **Thread Safety**: Ensure safe concurrent access patterns
23+
- **Memory Management**: Prevent leaks and excessive allocations
24+
25+
### Quality Standards
26+
27+
- Proper error handling with appropriate logging levels
28+
- OpenTelemetry specification and semantic convention compliance
29+
- Resource cleanup and lifecycle management
30+
- Comprehensive unit tests for new functionality
31+
32+
### Test suites
33+
34+
This project uses gradle 9 which requires specifying test classes and paths explicitly.
35+
36+
For example, this will NOT work because it registers a `Test` without specifying the test classes or paths:
37+
38+
```kotlin
39+
tasks.register<Test>("IntegrationTestUserCreds") {
40+
dependsOn(tasks.shadowJar)
41+
dependsOn(tasks.named("copyAgent"))
42+
...
43+
}
44+
```
45+
46+
This is fixed by specifying the test classes and classpath explicitly:
47+
48+
```kotlin
49+
tasks.register<Test>("IntegrationTestUserCreds") {
50+
testClassesDirs = sourceSets.test.get().output.classesDirs
51+
classpath = sourceSets.test.get().runtimeClasspath
52+
53+
dependsOn(tasks.shadowJar)
54+
dependsOn(tasks.named("copyAgent"))
55+
...
56+
}
57+
```
58+
59+
## Coding Agent Instructions
60+
61+
When implementing changes or new features:
62+
63+
1. Follow all [Style Guide](../docs/style-guide.md) conventions and the Code Review Priorities above
64+
2. Run tests to ensure they still pass (use `./gradlew test` and `./gradlew integrationTest` as needed)
65+
3. **Always run `./gradlew spotlessApply`** after making code changes to ensure proper formatting
66+
4. Run markdown lint to ensure it still passes: `npx [email protected] -c .github/config/markdownlint.yml **/*.md`

.github/renovate.json5

Lines changed: 82 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,38 @@
66
],
77
ignorePresets: [
88
':ignoreModulesAndTests', // needed to keep maven-extension test pom files up-to-date
9+
'workarounds:javaLTSVersions', // Allow all Java major versions, not just LTS
910
],
1011
prHourlyLimit: 5, // we have a large number of parallel runners
1112
labels: [
12-
'dependencies'
13+
'dependencies',
1314
],
1415
packageRules: [
1516
{
1617
// reduces the number of Renovate PRs
1718
// (patch updates are typically non-breaking)
18-
"groupName": "all patch versions",
19-
"matchUpdateTypes": ["patch"],
20-
"schedule": ["before 8am every weekday"]
19+
groupName: 'all patch versions',
20+
matchUpdateTypes: [
21+
'patch',
22+
],
23+
schedule: [
24+
'before 8am every weekday',
25+
],
2126
},
2227
{
2328
// avoids these Renovate PRs from trickling in throughout the week
2429
// (consolidating the review process)
25-
"matchUpdateTypes": ["minor", "major"],
26-
"schedule": ["before 8am on Monday"]
30+
matchUpdateTypes: [
31+
'minor',
32+
'major',
33+
],
34+
schedule: [
35+
'before 8am on Monday',
36+
],
37+
matchPackageNames: [
38+
'!io.opentelemetry:**',
39+
'!io.opentelemetry.*:**',
40+
],
2741
},
2842
{
2943
matchPackageNames: [
@@ -54,6 +68,17 @@
5468
],
5569
enabled: false,
5670
},
71+
{
72+
// junit 6+ requires Java 17+
73+
matchPackageNames: [
74+
'org.junit:**',
75+
'org.junit.jupiter:**',
76+
],
77+
matchUpdateTypes: [
78+
'major',
79+
],
80+
enabled: false,
81+
},
5782
{
5883
// junit-pioneer 2+ requires Java 11+
5984
matchPackageNames: [
@@ -71,7 +96,7 @@
7196
],
7297
enabled: false,
7398
matchPackageNames: [
74-
'org.mockito:{/,}**',
99+
'org.mockito:**',
75100
],
76101
},
77102
{
@@ -109,25 +134,45 @@
109134
matchCurrentVersion: '3.5.0',
110135
enabled: false,
111136
matchPackageNames: [
112-
'org.apache.maven:{/,}**',
137+
'org.apache.maven:**',
113138
],
114139
},
115140
{
116141
groupName: 'spotless packages',
117142
matchPackageNames: [
118-
'com.diffplug.spotless{/,}**',
143+
'com.diffplug.spotless',
144+
'com.diffplug.spotless:**',
119145
],
120146
},
121147
{
122148
groupName: 'hipparchus packages',
123149
matchPackageNames: [
124-
'org.hipparchus{/,}**',
150+
'org.hipparchus:**',
125151
],
126152
},
127153
{
128154
groupName: 'errorprone packages',
129155
matchPackageNames: [
130-
'com.google.errorprone{/,}**',
156+
'com.google.errorprone:**',
157+
],
158+
},
159+
{
160+
groupName: 'jackson packages',
161+
matchPackageNames: [
162+
'com.fasterxml.jackson:**',
163+
'com.fasterxml.jackson.core:**',
164+
],
165+
},
166+
{
167+
groupName: 'develocity packages',
168+
matchPackageNames: [
169+
'com.gradle.develocity:**',
170+
],
171+
},
172+
{
173+
groupName: 'bouncycastle packages',
174+
matchPackageNames: [
175+
'org.bouncycastle:**',
131176
],
132177
},
133178
{
@@ -137,7 +182,7 @@
137182
],
138183
enabled: false,
139184
matchPackageNames: [
140-
'org.openjdk.jmc{/,}**',
185+
'org.openjdk.jmc:**',
141186
],
142187
},
143188
{
@@ -148,7 +193,7 @@
148193
matchCurrentVersion: '5.0.0',
149194
enabled: false,
150195
matchPackageNames: [
151-
'jakarta.servlet:{/,}**',
196+
'jakarta.servlet:**',
152197
],
153198
},
154199
{
@@ -161,7 +206,7 @@
161206
],
162207
enabled: false,
163208
matchPackageNames: [
164-
'org.springframework.boot{/,}**',
209+
'org.springframework.boot:**',
165210
],
166211
},
167212
],
@@ -170,11 +215,33 @@
170215
customType: 'regex',
171216
datasourceTemplate: 'npm',
172217
managerFilePatterns: [
173-
'/^.github/workflows//',
218+
'.github/workflows/**',
174219
],
175220
matchStrings: [
176221
'npx (?<depName>[^@]+)@(?<currentValue>[^\\s]+)',
177222
],
178223
},
224+
{
225+
customType: 'regex',
226+
datasourceTemplate: 'java-version',
227+
managerFilePatterns: [
228+
'.github/workflows/**',
229+
],
230+
matchStrings: [
231+
'(?<currentValue>\\d+) # renovate: datasource=java-version',
232+
],
233+
depNameTemplate: 'java',
234+
extractVersionTemplate: '^(?<version>\\d+)',
235+
},
236+
{
237+
customType: 'regex',
238+
datasourceTemplate: 'github-releases',
239+
managerFilePatterns: [
240+
'**/build.gradle.kts',
241+
],
242+
matchStrings: [
243+
'"https://github.com/(?<depName>[^/]+/[^/]+)/zipball/(?<currentValue>.+?)"',
244+
],
245+
},
179246
],
180247
}

.github/scripts/draft-change-log-entries.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ component_names["consistent-sampling/"]="Consistent sampling"
3535
component_names["disk-buffering/"]="Disk buffering"
3636
component_names["gcp-resources/"]="GCP resources"
3737
component_names["gcp-auth-extension/"]="GCP authentication extension"
38+
component_names["ibm-mq-metrics/"]="IBM MQ metrics"
3839
component_names["inferred-spans/"]="Inferred spans"
3940
component_names["jfr-connection/"]="JFR connection"
4041
component_names["jfr-events/"]="JFR events"
@@ -44,6 +45,7 @@ component_names["kafka-exporter/"]="Kafka exporter"
4445
component_names["maven-extension/"]="Maven extension"
4546
component_names["micrometer-meter-provider/"]="Micrometer MeterProvider"
4647
component_names["noop-api/"]="No-op API"
48+
component_names["opamp-client/"]="OpAMP client"
4749
component_names["processors/"]="Telemetry processors"
4850
component_names["prometheus-client-bridge/"]="Prometheus client bridge"
4951
component_names["runtime-attach/"]="Runtime attach"

.github/scripts/package-lock.json

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/scripts/package.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"//": "Dependencies for GitHub Actions workflows that use actions/github-script",
3+
"name": "github-scripts",
4+
"version": "1.0.0",
5+
"private": true,
6+
"dependencies": {
7+
"yaml": "2.8.1"
8+
}
9+
}

0 commit comments

Comments
 (0)