Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
113 changes: 2 additions & 111 deletions .github/repository-settings.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,8 @@
# Repository settings

This document describes any changes that have been made to the
settings for this repository beyond the [OpenTelemetry default repository
settings](https://github.com/open-telemetry/community/blob/main/docs/how-to-configure-new-repository.md#repository-settings).

## General > Pull Requests

- Allow squash merging > Default to pull request title

- Allow auto-merge

## Actions > General

- Fork pull request workflows from outside collaborators:
"Require approval for first-time contributors who are new to GitHub"

(To reduce friction for new contributors,
as the default is "Require approval for first-time contributors")

- Workflow permissions
- Default permissions granted to the `GITHUB_TOKEN` when running workflows in this repository:
Read repository contents and packages permissions
- Allow GitHub Actions to create and approve pull requests: UNCHECKED

## Rules > Rulesets

### `main` and release branches

- Targeted branches:
- `main`
- `release/*`
- Branch rules
- Restrict deletions: CHECKED
- Require a pull request before merging: CHECKED
- Required approvals: 1
- Require review from Code Owners: CHECKED
- Allowed merge methods: Squash
- Require status checks to pass
- Do not require status checks on creation: CHECKED
- Status checks that are required
- EasyCLA
- `required-status-check`
- `gradle-wrapper-validation`
- Block force pushes: CHECKED
- Require code scanning results: CHECKED
- CodeQL
- Security alerts: High or higher
- Alerts: Errors

> [!NOTE]
> This repository can't "require linear history" because there is an old merge commit on `main`
> (and so also on the release branches).

### `cloudfoundry` branch

- Targeted branches:
- `cloudfoundry`
- Branch rules
- Restrict deletions: CHECKED
- Require linear history: CHECKED
- Require a pull request before merging: CHECKED
- Required approvals: 1
- Require review from Code Owners: CHECKED
- Allowed merge methods: Squash
- Require status checks to pass
- EasyCLA
- Block force pushes: CHECKED

### `gh-pages` branch

- Targeted branches:
- `gh-pages`
- Branch rules
- Restrict deletions: CHECKED
- Require linear history: CHECKED
- Block force pushes: CHECKED

### Old-style release branches

- Targeted branches:
- `v0.*`
- `v1.*`
- Branch rules
- Restrict creations: CHECKED
- Restrict updates: CHECKED
- Restrict deletions: CHECKED

### Restrict branch creation

- Targeted branches
- Exclude:
- `release/*`
- `renovate/**/*`
- `otelbot/**/*`
- `revert-*/**/*` (these are created when using the GitHub UI to revert a PR)
- Restrict creations: CHECKED

### Restrict updating tags

- Targeted tags
- All tags
- Restrict updates: CHECKED
- Restrict deletions: CHECKED

## Branch protections

### `main`, `release/*`, `cloudfoundry`

- Restrict who can push to matching branches: CHECKED

## Code security and analysis

- Secret scanning: Enabled
settings in this repository outside the settings tracked in the
private admin repo.

## Secrets and variables > Actions

Expand Down
28 changes: 27 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

## Unreleased

### Migration notes
- Tomcat metrics definitions provided by JMX Metric Insight subsystem
- metric `http.server.tomcat.errorCount` --> `tomcat.error.count`
- attribute: `name` --> `tomcat.request.processor.name`
- type: Gauge --> Counter
- metric `http.server.tomcat.requestCount` --> `tomcat.request.count`
- attribute: `name` --> `tomcat.request.processor.name`
- type: Gauge --> Counter
- metric `http.server.tomcat.maxTime` --> `tomcat.request.duration.max`
- attribute: `name` --> `tomcat.request.processor.name`
- unit: `ms` --> `s`
- metric `http.server.tomcat.processingTime` --> `tomcat.request.duration.sum`
- attribute: `name` --> `tomcat.request.processor.name`
- unit: `ms` --> `s`
- metric `http.server.tomcat.traffic` --> `tomcat.network.io`
- attribute: `name` --> `tomcat.request.processor.name`, `direction` --> `network.io.direction`
- metric `http.server.tomcat.sessions.activeSessions` --> `tomcat.session.active.count`
- attribute: `context` --> `tomcat.context`
- metric `http.server.tomcat.threads` split into two metrics: `tomcat.thread.count` and `tomcat.thread.busy.count`
- attribute: `name` --> `tomcat.thread.pool.name`, `state` removed

### 📈 Enhancements

- **JMX Metric Insight**: improved Tomcat metrics alignment to semconv (see Migration notes above for details) and added new Tomcat metrics: `tomcat.session.active.limit`, `tomcat.thread.limit`
([#13650](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13650))


## Version 2.16.0 (2025-05-15)

### ⚠️⚠️ Breaking changes ⚠️⚠️
Expand All @@ -11,7 +38,6 @@
- Remove deprecated property for disabling kafka metrics
([#13803](https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/13803))


### 🌟 New javaagent instrumentation

- Add Avaje Jex Instrumentation
Expand Down
2 changes: 1 addition & 1 deletion benchmark-overhead/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ repositories {
}

dependencies {
implementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
implementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))

testImplementation("org.testcontainers:testcontainers:1.21.1")
testImplementation("org.testcontainers:postgresql:1.21.1")
Expand Down
4 changes: 2 additions & 2 deletions benchmark-overhead/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionSha256Sum=7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion conventions/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ dependencies {
implementation("net.ltgt.gradle:gradle-nullaway-plugin:2.2.0")
implementation("me.champeau.gradle:japicmp-gradle-plugin:0.4.6")

testImplementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
testImplementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testImplementation("org.assertj:assertj-core:3.27.3")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

dependencies {
add("signature", "com.toasttab.android:gummy-bears-api-21:0.3.0:coreLib@signature")
add("signature", "com.toasttab.android:gummy-bears-api-21:0.12.0:coreLib@signature")
}

animalsniffer {
Expand Down
2 changes: 1 addition & 1 deletion dependencyManagement/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ val CORE_DEPENDENCIES = listOf(
// There are dependencies included here that appear to have no usages, but are maintained at
// this top level to help consistently satisfy large numbers of transitive dependencies.
val DEPENDENCIES = listOf(
"org.junit.jupiter:junit-jupiter-api:5.12.2",
"org.junit.jupiter:junit-jupiter-api:5.13.0",
"org.spockframework:spock-core:2.4-M6-groovy-4.0",
"org.spockframework:spock-junit4:2.4-M6-groovy-4.0",

Expand Down
2 changes: 1 addition & 1 deletion examples/distro/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ subprojects {

testImplementation("org.mockito:mockito-core:5.18.0")

testImplementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
testImplementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
Expand Down
4 changes: 2 additions & 2 deletions examples/distro/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionSha256Sum=7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion examples/extension/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ dependencies {
testImplementation("io.opentelemetry:opentelemetry-api")
testImplementation("io.opentelemetry.proto:opentelemetry-proto:1.7.0-alpha")

testImplementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
testImplementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
Expand Down
4 changes: 2 additions & 2 deletions examples/extension/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionSha256Sum=7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion gradle-plugins/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ dependencies {

testImplementation("org.assertj:assertj-core:3.27.3")

testImplementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
testImplementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
Expand Down
4 changes: 2 additions & 2 deletions gradle-plugins/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionSha256Sum=7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=845952a9d6afa783db70bb3b0effaae45ae5542ca2bb7929619e8af49cb634cf
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
distributionSha256Sum=7197a12f450794931532469d4ff21a59ea2c1cd59a3ec3f89c035c3c420a6999
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.support.ParameterDeclarations;

final class ValidRequestMethodsProvider implements ArgumentsProvider {

@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
public Stream<? extends Arguments> provideArguments(
ParameterDeclarations parameters, ExtensionContext context) {
return HttpConstants.KNOWN_METHODS.stream().map(Arguments::of);
}
}
3 changes: 2 additions & 1 deletion instrumentation-docs/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies {
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.19.0")
implementation("io.opentelemetry:opentelemetry-sdk-common")

testImplementation(enforcedPlatform("org.junit:junit-bom:5.12.2"))
testImplementation(enforcedPlatform("org.junit:junit-bom:5.13.0"))
testImplementation("org.assertj:assertj-core:3.27.3")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
Expand All @@ -22,6 +22,7 @@ tasks {
val runAnalysis by registering(JavaExec::class) {
dependsOn(classes)

systemProperty("basePath", project.rootDir)
mainClass.set("io.opentelemetry.instrumentation.docs.DocGeneratorApplication")
classpath(sourceSets["main"].runtimeClasspath)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,11 @@

import static java.util.Locale.Category.FORMAT;

import com.fasterxml.jackson.core.JsonProcessingException;
import io.opentelemetry.instrumentation.docs.internal.InstrumentationModule;
import io.opentelemetry.instrumentation.docs.utils.FileManager;
import io.opentelemetry.instrumentation.docs.utils.YamlHelper;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
Expand All @@ -26,20 +24,25 @@ public class DocGeneratorApplication {

private static final Logger logger = Logger.getLogger(DocGeneratorApplication.class.getName());

public static void main(String[] args) throws JsonProcessingException {
FileManager fileManager = new FileManager("instrumentation/");
public static void main(String[] args) throws IOException {
// Identify path to repo so we can use absolute paths
String baseRepoPath = System.getProperty("basePath");
if (baseRepoPath == null) {
baseRepoPath = "./";
} else {
baseRepoPath += "/";
}

FileManager fileManager = new FileManager(baseRepoPath);
List<InstrumentationModule> modules = new InstrumentationAnalyzer(fileManager).analyze();

try (BufferedWriter writer =
Files.newBufferedWriter(
Paths.get("docs/instrumentation-list.yaml"), Charset.defaultCharset())) {
Files.newBufferedWriter(Paths.get(baseRepoPath + "docs/instrumentation-list.yaml"))) {
writer.write("# This file is generated and should not be manually edited.\n");
writer.write("# The structure and contents are a work in progress and subject to change.\n");
writer.write(
"# For more information see: https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/13468\n\n");
YamlHelper.generateInstrumentationYaml(modules, writer);
} catch (IOException e) {
logger.severe("Error writing instrumentation list: " + e.getMessage());
}

printStats(modules);
Expand Down
Loading