Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
21d4a01
gcp auth
zeitlinger Jul 11, 2025
f9eb67b
./gradlew spotlessApply
otelbot[bot] Jul 11, 2025
35fc448
copy declarative config bridge from instrumentation
zeitlinger Jul 14, 2025
30d61fc
support config bridge
zeitlinger Jul 14, 2025
0f49549
support config bridge
zeitlinger Jul 14, 2025
fc7cd07
copy declarative config bridge from instrumentation
zeitlinger Jul 14, 2025
d786ea6
format
zeitlinger Jul 14, 2025
bf9c8e6
cleanup
zeitlinger Jul 14, 2025
b70486a
cleanup
zeitlinger Jul 14, 2025
4d56209
fix test
zeitlinger Jul 14, 2025
85ec1cb
fix
zeitlinger Jul 14, 2025
83e74a7
add property translation for inferred spans
zeitlinger Jul 14, 2025
9fe79a1
inferred spans
zeitlinger Jul 15, 2025
71f21b7
inferred spans
zeitlinger Jul 15, 2025
0618b39
inferred spans
zeitlinger Jul 15, 2025
27fc125
baggage processor
zeitlinger Jul 15, 2025
d27d7ce
format
zeitlinger Jul 15, 2025
1e77d6f
format
zeitlinger Jul 15, 2025
548c0c4
stack trace span processor
zeitlinger Jul 15, 2025
092fce3
stack trace span processor
zeitlinger Jul 15, 2025
dd10055
fix
zeitlinger Jul 15, 2025
444833f
fix
zeitlinger Jul 15, 2025
4211e85
fix
zeitlinger Jul 15, 2025
e4de567
make temp dir more reliable
zeitlinger Jul 15, 2025
19d017d
make temp dir more reliable
zeitlinger Jul 15, 2025
fb4a7ef
revert inferred spans (flaky)
zeitlinger Jul 15, 2025
a9d9c05
baggage is in a separate PR
zeitlinger Jul 16, 2025
4a119c9
use unified bridge
zeitlinger Jul 18, 2025
4f7014a
add experimental- suffix, add test
zeitlinger Jul 22, 2025
6587b31
add experimental- suffix, add test
zeitlinger Jul 22, 2025
d0718e6
update bridge to match agent
zeitlinger Jul 24, 2025
e042b15
update bridge to match agent
zeitlinger Jul 24, 2025
5bf5e78
Revert "update bridge to match agent"
zeitlinger Jul 24, 2025
b3bfd03
update bridge to match agent
zeitlinger Jul 24, 2025
712cf27
Update gcp-auth-extension/src/main/java/io/opentelemetry/contrib/gcp/…
zeitlinger Aug 4, 2025
d2e2ef4
Update gcp-auth-extension/src/main/java/io/opentelemetry/contrib/gcp/…
zeitlinger Aug 4, 2025
85fad27
pr review
zeitlinger Aug 4, 2025
65d2f8e
pr review
zeitlinger Aug 4, 2025
91be485
pr review
zeitlinger Aug 4, 2025
bfe1c5e
update config bridge from agent
zeitlinger Aug 15, 2025
454fe0d
./gradlew spotlessApply
otelbot[bot] Aug 15, 2025
4b10dda
move bridge to agent
zeitlinger Aug 22, 2025
ce46af5
Merge remote-tracking branch 'origin/main' into span-stacktrace
zeitlinger Sep 15, 2025
1337b78
update
zeitlinger Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/config/lychee.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
timeout = 30
retry_wait_time = 5
max_retries = 6
max_concurrency = 4

# Check link anchors
include_fragments = true

exclude = [
# until https://github.com/open-telemetry/opentelemetry-java-contrib/issues/2221 is resolved
"^https?://www.ibm.com",
# excluding links to pull requests and issues is done for performance
"^https://github.com/open-telemetry/opentelemetry-java-contrib/(issues|pull)/\\d+$",
]
66 changes: 66 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copilot Instructions for OpenTelemetry Java Contrib

This repository provides observability instrumentation for Java applications.

## Code Review Priorities

### Style Guide Compliance

**PRIORITY**: Verify that all code changes follow the [Style Guide](../docs/style-guide.md). Check:

- Code formatting (auto-formatting, static imports, class organization)
- Java language conventions (`final` usage, `@Nullable` annotations, `Optional` usage)
- Performance constraints (hot path allocations)
- Implementation patterns (SPI registration, configuration conventions)
- Gradle conventions (Kotlin DSL, plugin usage, module naming)
- Documentation standards (README files, deprecation processes)

### Critical Areas

- **Public APIs**: Changes affect downstream users and require careful review
- **Performance**: Instrumentation must have minimal overhead
- **Thread Safety**: Ensure safe concurrent access patterns
- **Memory Management**: Prevent leaks and excessive allocations

### Quality Standards

- Proper error handling with appropriate logging levels
- OpenTelemetry specification and semantic convention compliance
- Resource cleanup and lifecycle management
- Comprehensive unit tests for new functionality

### Test suites

This project uses gradle 9 which requires specifying test classes and paths explicitly.

For example, this will NOT work because it registers a `Test` without specifying the test classes or paths:

```kotlin
tasks.register<Test>("IntegrationTestUserCreds") {
dependsOn(tasks.shadowJar)
dependsOn(tasks.named("copyAgent"))
...
}
```

This is fixed by specifying the test classes and classpath explicitly:

```kotlin
tasks.register<Test>("IntegrationTestUserCreds") {
testClassesDirs = sourceSets.test.get().output.classesDirs
classpath = sourceSets.test.get().runtimeClasspath

dependsOn(tasks.shadowJar)
dependsOn(tasks.named("copyAgent"))
...
}
```

## Coding Agent Instructions

When implementing changes or new features:

1. Follow all [Style Guide](../docs/style-guide.md) conventions and the Code Review Priorities above
2. Run tests to ensure they still pass (use `./gradlew test` and `./gradlew integrationTest` as needed)
3. **Always run `./gradlew spotlessApply`** after making code changes to ensure proper formatting
4. Run markdown lint to ensure it still passes: `npx [email protected] -c .github/config/markdownlint.yml **/*.md`
34 changes: 26 additions & 8 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
],
enabled: false,
matchPackageNames: [
'org.mockito:{/,}**',
'org.mockito:**',
],
},
{
Expand Down Expand Up @@ -123,25 +123,33 @@
matchCurrentVersion: '3.5.0',
enabled: false,
matchPackageNames: [
'org.apache.maven:{/,}**',
'org.apache.maven:**',
],
},
{
groupName: 'spotless packages',
matchPackageNames: [
'com.diffplug.spotless{/,}**',
'com.diffplug.spotless',
'com.diffplug.spotless:**',
],
},
{
groupName: 'hipparchus packages',
matchPackageNames: [
'org.hipparchus{/,}**',
'org.hipparchus:**',
],
},
{
groupName: 'errorprone packages',
matchPackageNames: [
'com.google.errorprone{/,}**',
'com.google.errorprone:**',
],
},
{
groupName: 'jackson packages',
matchPackageNames: [
'com.fasterxml.jackson:**',
'com.fasterxml.jackson.core:**',
],
},
{
Expand All @@ -151,7 +159,7 @@
],
enabled: false,
matchPackageNames: [
'org.openjdk.jmc{/,}**',
'org.openjdk.jmc:**',
],
},
{
Expand All @@ -162,7 +170,7 @@
matchCurrentVersion: '5.0.0',
enabled: false,
matchPackageNames: [
'jakarta.servlet:{/,}**',
'jakarta.servlet:**',
],
},
{
Expand All @@ -175,7 +183,7 @@
],
enabled: false,
matchPackageNames: [
'org.springframework.boot{/,}**',
'org.springframework.boot:**',
],
},
],
Expand All @@ -202,5 +210,15 @@
depNameTemplate: 'java',
extractVersionTemplate: '^(?<version>\\d+)',
},
{
customType: 'regex',
datasourceTemplate: 'github-releases',
managerFilePatterns: [
'**/build.gradle.kts',
],
matchStrings: [
'"https://github.com/(?<depName>[^/]+/[^/]+)/zipball/(?<currentValue>.+?)"',
],
},
],
}
3 changes: 0 additions & 3 deletions .github/scripts/dependencies.Dockerfile

This file was deleted.

2 changes: 2 additions & 0 deletions .github/scripts/draft-change-log-entries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ component_names["consistent-sampling/"]="Consistent sampling"
component_names["disk-buffering/"]="Disk buffering"
component_names["gcp-resources/"]="GCP resources"
component_names["gcp-auth-extension/"]="GCP authentication extension"
component_names["ibm-mq-metrics/"]="IBM MQ metrics"
component_names["inferred-spans/"]="Inferred spans"
component_names["jfr-connection/"]="JFR connection"
component_names["jfr-events/"]="JFR events"
Expand All @@ -44,6 +45,7 @@ component_names["kafka-exporter/"]="Kafka exporter"
component_names["maven-extension/"]="Maven extension"
component_names["micrometer-meter-provider/"]="Micrometer MeterProvider"
component_names["noop-api/"]="No-op API"
component_names["opamp-client/"]="OpAMP client"
component_names["processors/"]="Telemetry processors"
component_names["prometheus-client-bridge/"]="Prometheus client bridge"
component_names["runtime-attach/"]="Runtime attach"
Expand Down
62 changes: 0 additions & 62 deletions .github/scripts/link-check.sh

This file was deleted.

16 changes: 0 additions & 16 deletions .github/scripts/lychee-config.toml

This file was deleted.

27 changes: 27 additions & 0 deletions .github/scripts/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .github/scripts/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"//": "Dependencies for GitHub Actions workflows that use actions/github-script",
"name": "github-scripts",
"version": "1.0.0",
"private": true,
"dependencies": {
"yaml": "2.8.1"
}
}
10 changes: 5 additions & 5 deletions .github/workflows/assign-issue-owners.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ jobs:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

- name: Install js-yaml
run: npm install js-yaml
- name: Install yaml dependency used below
run: npm install .github/scripts

- name: Parse component label and assign owners
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const fs = require('fs');
const yaml = require('js-yaml');
const { parse } = require('yaml');

// Extract component name from label
const labelName = context.payload.label.name;
Expand All @@ -42,7 +42,7 @@ jobs:

// Read and parse component_owners.yml
const yamlContent = fs.readFileSync('.github/component_owners.yml', 'utf8');
const data = yaml.load(yamlContent);
const data = parse(yamlContent);

if (!data || !data.components) {
core.setFailed('Invalid component_owners.yml structure');
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/assign-reviewers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
pull-requests: write # for assigning reviewers
runs-on: ubuntu-latest
steps:
- uses: open-telemetry/assign-reviewers-action@2f4f06ccc561740d5094d9ca5e66dc2392d13e8f # main
- uses: dyladan/component-owners@58bd86e9814d23f1525d0a970682cead459fa783 # v0.1.0
with:
config-file: .github/component_owners.yml
assign-owners: false
2 changes: 1 addition & 1 deletion .github/workflows/auto-spotless-apply.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
echo "exists=true" >> $GITHUB_OUTPUT
fi

- uses: actions/create-github-app-token@a8d616148505b5069dccd32f177bb87d7f39123b # v2.1.1
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
if: steps.unzip-patch.outputs.exists == 'true'
id: otelbot-token
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/auto-spotless-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ jobs:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

- name: Set up JDK for running Gradle
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: temurin
java-version: 17

- name: Set up gradle
uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2
uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4.4.3
with:
cache-read-only: true

Expand Down
Loading