Compare commits
26 Commits
Author | SHA1 | Date |
---|---|---|
|
4237a26517 | |
|
590f11213c | |
|
ff4d32646a | |
|
17b4065d6c | |
|
b79242d858 | |
|
dfd35c7a8d | |
|
c0855e867a | |
|
5764814b8e | |
|
42c4091802 | |
|
dc2874e2fa | |
|
352acfb24b | |
|
3e5368eba8 | |
|
80da2ab3d9 | |
|
29a7fe8f13 | |
|
887778fa0b | |
|
8e232157d1 | |
|
b185cfb94f | |
|
57580f56e5 | |
|
7781706de2 | |
|
ce1e26f579 | |
|
80094155e9 | |
|
38207b740e | |
|
c54a301e5e | |
|
804d5f3a07 | |
|
40f71ed52a | |
|
95dc35b2dd |
|
@ -171,7 +171,7 @@ jobs:
|
|||
- 23
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: graalvm/setup-graalvm@e1df20a713a4cc6ab5b0eb03f0e0dcdc0199b805 # v1.3.4
|
||||
- uses: graalvm/setup-graalvm@7f488cf82a3629ee755e4e97342c01d6bed318fa # v1.3.5
|
||||
with:
|
||||
java-version: ${{ matrix.test-graal-version }}
|
||||
distribution: 'graalvm'
|
||||
|
|
|
@ -45,7 +45,7 @@ jobs:
|
|||
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/init@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# using "latest" helps to keep up with the latest Kotlin support
|
||||
|
@ -60,6 +60,6 @@ jobs:
|
|||
run: ./gradlew assemble --no-build-cache --no-daemon
|
||||
|
||||
- name: Perform CodeQL analysis
|
||||
uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/analyze@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
|
@ -42,6 +42,6 @@ jobs:
|
|||
# Upload the results to GitHub's code scanning dashboard (optional).
|
||||
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/upload-sarif@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
## Unreleased
|
||||
|
||||
## Version 1.52.0 (2025-07-11)
|
||||
|
||||
### API
|
||||
|
||||
#### Common
|
||||
|
|
64
README.md
64
README.md
|
@ -57,8 +57,8 @@ A bill of materials (or BOM) helps sync dependency versions of related artifacts
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|----------------------------------------------|----------------------------------------|---------------------------|-------------------------------------------------------------|---------|
|
||||
| [Bill of Materials (BOM)](./bom) | Bill of materials for stable artifacts | `opentelemetry-bom` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | N/A |
|
||||
| [Alpha Bill of Materials (BOM)](./bom-alpha) | Bill of materials for alpha artifacts | `opentelemetry-bom-alpha` | <!--VERSION_UNSTABLE-->1.51.0-alpha<!--/VERSION_UNSTABLE--> | N/A |
|
||||
| [Bill of Materials (BOM)](./bom) | Bill of materials for stable artifacts | `opentelemetry-bom` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | N/A |
|
||||
| [Alpha Bill of Materials (BOM)](./bom-alpha) | Bill of materials for alpha artifacts | `opentelemetry-bom-alpha` | <!--VERSION_UNSTABLE-->1.52.0-alpha<!--/VERSION_UNSTABLE--> | N/A |
|
||||
</details>
|
||||
|
||||
<details open>
|
||||
|
@ -68,10 +68,10 @@ The OpenTelemetry API for recording telemetry.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|-----------------------------------|--------------------------------------------------------------------------------------|-------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api) |
|
||||
| [API Incubator](./api/incubator) | API incubator, including pass through propagator, and extended tracer, and Event API | `opentelemetry-api-incubator` | <!--VERSION_UNSTABLE-->1.51.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-incubator) |
|
||||
| [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) |
|
||||
| [Common](./common) | Common utility methods used across API components | `opentelemetry-common` | TODO: add after first publish | TODO: add link after first publish |
|
||||
| [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api) |
|
||||
| [API Incubator](./api/incubator) | API incubator, including pass through propagator, and extended tracer, and Event API | `opentelemetry-api-incubator` | <!--VERSION_UNSTABLE-->1.52.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-incubator) |
|
||||
| [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) |
|
||||
| [Common](./common) | Common utility methods used across API components | `opentelemetry-common` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-common) |
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
@ -81,8 +81,8 @@ Extensions to the OpenTelemetry API.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [Kotlin Extension](./extensions/kotlin) | Context extension for coroutines | `opentelemetry-extension-kotlin` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-kotlin) |
|
||||
| [Trace Propagators Extension](./extensions/trace-propagators) | Trace propagators, including B3, Jaeger, OT Trace | `opentelemetry-extension-trace-propagators` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-trace-propagators) |
|
||||
| [Kotlin Extension](./extensions/kotlin) | Context extension for coroutines | `opentelemetry-extension-kotlin` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-kotlin) |
|
||||
| [Trace Propagators Extension](./extensions/trace-propagators) | Trace propagators, including B3, Jaeger, OT Trace | `opentelemetry-extension-trace-propagators` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-trace-propagators) |
|
||||
</details>
|
||||
|
||||
<details open>
|
||||
|
@ -92,12 +92,12 @@ The OpenTelemetry SDK for managing telemetry producing by the API.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|------------------------------|--------------------------------------------------------|-----------------------------|---------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [SDK](./sdk/all) | OpenTelemetry SDK, including metrics, traces, and logs | `opentelemetry-sdk` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk) |
|
||||
| [Metrics SDK](./sdk/metrics) | OpenTelemetry metrics SDK | `opentelemetry-sdk-metrics` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-metrics) |
|
||||
| [Trace SDK](./sdk/trace) | OpenTelemetry trace SDK | `opentelemetry-sdk-trace` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace) |
|
||||
| [Log SDK](./sdk/logs) | OpenTelemetry log SDK | `opentelemetry-sdk-logs` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-logs) |
|
||||
| [SDK Common](./sdk/common) | Shared SDK components | `opentelemetry-sdk-common` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-common) |
|
||||
| [SDK Testing](./sdk/testing) | Components for testing OpenTelemetry instrumentation | `opentelemetry-sdk-testing` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-testing) |
|
||||
| [SDK](./sdk/all) | OpenTelemetry SDK, including metrics, traces, and logs | `opentelemetry-sdk` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk) |
|
||||
| [Metrics SDK](./sdk/metrics) | OpenTelemetry metrics SDK | `opentelemetry-sdk-metrics` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-metrics) |
|
||||
| [Trace SDK](./sdk/trace) | OpenTelemetry trace SDK | `opentelemetry-sdk-trace` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace) |
|
||||
| [Log SDK](./sdk/logs) | OpenTelemetry log SDK | `opentelemetry-sdk-logs` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-logs) |
|
||||
| [SDK Common](./sdk/common) | Shared SDK components | `opentelemetry-sdk-common` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-common) |
|
||||
| [SDK Testing](./sdk/testing) | Components for testing OpenTelemetry instrumentation | `opentelemetry-sdk-testing` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-testing) |
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
@ -107,16 +107,16 @@ SDK exporters for shipping traces, metrics, and logs out of process.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|-----------------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [OTLP Exporters](./exporters/otlp/all) | OTLP gRPC & HTTP exporters, including traces, metrics, and logs | `opentelemetry-exporter-otlp` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp) |
|
||||
| [OTLP Logging Exporters](./exporters/logging-otlp) | Logging exporters in OTLP JSON encoding, including traces, metrics, and logs | `opentelemetry-exporter-logging-otlp` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging-otlp) |
|
||||
| [OTLP Common](./exporters/otlp/common) | Shared OTLP components (internal) | `opentelemetry-exporter-otlp-common` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp-common) |
|
||||
| [Logging Exporter](./exporters/logging) | Logging exporters, including metrics, traces, and logs | `opentelemetry-exporter-logging` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging) |
|
||||
| [Zipkin Exporter](./exporters/zipkin) | Zipkin trace exporter | `opentelemetry-exporter-zipkin` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin) |
|
||||
| [Prometheus Exporter](./exporters/prometheus) | Prometheus metric exporter | `opentelemetry-exporter-prometheus` | <!--VERSION_UNSTABLE-->1.51.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus) |
|
||||
| [Exporter Common](./exporters/common) | Shared exporter components (internal) | `opentelemetry-exporter-common` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-common) |
|
||||
| [OkHttp Sender](./exporters/sender/okhttp) | OkHttp implementation of HttpSender (internal) | `opentelemetry-exporter-sender-okhttp` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-okhttp) |
|
||||
| [JDK Sender](./exporters/sender/jdk) | Java 11+ native HttpClient implementation of HttpSender (internal) | `opentelemetry-exporter-sender-jdk` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-jdk) | |
|
||||
| [gRPC ManagedChannel Sender](./exporters/sender/grpc-managed-channel) | gRPC ManagedChannel implementation of GrpcSender (internal) | `opentelemetry-exporter-sender-grpc-managed-channel` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-grpc-managed-channel) | |
|
||||
| [OTLP Exporters](./exporters/otlp/all) | OTLP gRPC & HTTP exporters, including traces, metrics, and logs | `opentelemetry-exporter-otlp` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp) |
|
||||
| [OTLP Logging Exporters](./exporters/logging-otlp) | Logging exporters in OTLP JSON encoding, including traces, metrics, and logs | `opentelemetry-exporter-logging-otlp` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging-otlp) |
|
||||
| [OTLP Common](./exporters/otlp/common) | Shared OTLP components (internal) | `opentelemetry-exporter-otlp-common` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp-common) |
|
||||
| [Logging Exporter](./exporters/logging) | Logging exporters, including metrics, traces, and logs | `opentelemetry-exporter-logging` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging) |
|
||||
| [Zipkin Exporter](./exporters/zipkin) | Zipkin trace exporter | `opentelemetry-exporter-zipkin` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin) |
|
||||
| [Prometheus Exporter](./exporters/prometheus) | Prometheus metric exporter | `opentelemetry-exporter-prometheus` | <!--VERSION_UNSTABLE-->1.52.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus) |
|
||||
| [Exporter Common](./exporters/common) | Shared exporter components (internal) | `opentelemetry-exporter-common` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-common) |
|
||||
| [OkHttp Sender](./exporters/sender/okhttp) | OkHttp implementation of HttpSender (internal) | `opentelemetry-exporter-sender-okhttp` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-okhttp) |
|
||||
| [JDK Sender](./exporters/sender/jdk) | Java 11+ native HttpClient implementation of HttpSender (internal) | `opentelemetry-exporter-sender-jdk` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-jdk) | |
|
||||
| [gRPC ManagedChannel Sender](./exporters/sender/grpc-managed-channel) | gRPC ManagedChannel implementation of GrpcSender (internal) | `opentelemetry-exporter-sender-grpc-managed-channel` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-sender-grpc-managed-channel) | |
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
@ -126,10 +126,10 @@ Extensions to the OpenTelemetry SDK.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [SDK Autoconfigure](./sdk-extensions/autoconfigure) | Autoconfigure OpenTelemetry SDK from env vars, system properties, and SPI | `opentelemetry-sdk-extension-autoconfigure` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure) |
|
||||
| [SDK Autoconfigure SPI](./sdk-extensions/autoconfigure-spi) | Service Provider Interface (SPI) definitions for autoconfigure | `opentelemetry-sdk-extension-autoconfigure-spi` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi) |
|
||||
| [SDK Jaeger Remote Sampler Extension](./sdk-extensions/jaeger-remote-sampler) | Sampler which obtains sampling configuration from remote Jaeger server | `opentelemetry-sdk-extension-jaeger-remote-sampler` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler) |
|
||||
| [SDK Incubator](./sdk-extensions/incubator) | SDK incubator, including YAML based view configuration, LeakDetectingSpanProcessor | `opentelemetry-sdk-extension-incubator` | <!--VERSION_UNSTABLE-->1.51.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-incubator) |
|
||||
| [SDK Autoconfigure](./sdk-extensions/autoconfigure) | Autoconfigure OpenTelemetry SDK from env vars, system properties, and SPI | `opentelemetry-sdk-extension-autoconfigure` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure) |
|
||||
| [SDK Autoconfigure SPI](./sdk-extensions/autoconfigure-spi) | Service Provider Interface (SPI) definitions for autoconfigure | `opentelemetry-sdk-extension-autoconfigure-spi` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi) |
|
||||
| [SDK Jaeger Remote Sampler Extension](./sdk-extensions/jaeger-remote-sampler) | Sampler which obtains sampling configuration from remote Jaeger server | `opentelemetry-sdk-extension-jaeger-remote-sampler` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler) |
|
||||
| [SDK Incubator](./sdk-extensions/incubator) | SDK incubator, including YAML based view configuration, LeakDetectingSpanProcessor | `opentelemetry-sdk-extension-incubator` | <!--VERSION_UNSTABLE-->1.52.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-incubator) |
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
@ -139,8 +139,8 @@ Shims for bridging data from one observability library to another.
|
|||
|
||||
| Component | Description | Artifact ID | Version | Javadoc |
|
||||
|----------------------------------------|--------------------------------------------------------------|----------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [OpenCensus Shim](./opencensus-shim) | Bridge opencensus metrics into the OpenTelemetry metrics SDK | `opentelemetry-opencensus-shim` | <!--VERSION_UNSTABLE-->1.51.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opencensus-shim) |
|
||||
| [OpenTracing Shim](./opentracing-shim) | Bridge opentracing spans into the OpenTelemetry trace API | `opentelemetry-opentracing-shim` | <!--VERSION_STABLE-->1.51.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opentracing-shim) |
|
||||
| [OpenCensus Shim](./opencensus-shim) | Bridge opencensus metrics into the OpenTelemetry metrics SDK | `opentelemetry-opencensus-shim` | <!--VERSION_UNSTABLE-->1.52.0-alpha<!--/VERSION_UNSTABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opencensus-shim) |
|
||||
| [OpenTracing Shim](./opentracing-shim) | Bridge opentracing spans into the OpenTelemetry trace API | `opentelemetry-opentracing-shim` | <!--VERSION_STABLE-->1.52.0<!--/VERSION_STABLE--> | [](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opentracing-shim) |
|
||||
</details>
|
||||
|
||||
## Dependencies
|
||||
|
@ -181,7 +181,7 @@ repositories {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation platform("io.opentelemetry:opentelemetry-bom:1.52.0-SNAPSHOT")
|
||||
implementation platform("io.opentelemetry:opentelemetry-bom:1.53.0-SNAPSHOT")
|
||||
implementation('io.opentelemetry:opentelemetry-api')
|
||||
}
|
||||
```
|
||||
|
@ -203,7 +203,7 @@ dependencies {
|
|||
<dependency>
|
||||
<groupId>io.opentelemetry</groupId>
|
||||
<artifactId>opentelemetry-bom</artifactId>
|
||||
<version>1.52.0-SNAPSHOT</version>
|
||||
<version>1.53.0-SNAPSHOT</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
|
|
@ -102,7 +102,7 @@ public class InstrumentationConfigUtil {
|
|||
* @throws DeclarativeConfigException if an unexpected type is encountered accessing the property
|
||||
*/
|
||||
@Nullable
|
||||
public static List<String> httpSeverResponseCapturedHeaders(ConfigProvider configProvider) {
|
||||
public static List<String> httpServerResponseCapturedHeaders(ConfigProvider configProvider) {
|
||||
return getOrNull(
|
||||
configProvider,
|
||||
config -> config.getScalarList("response_captured_headers", String.class),
|
||||
|
|
|
@ -128,16 +128,16 @@ class InstrumentationConfigUtilTest {
|
|||
@Test
|
||||
void httpServerResponseCapturedHeaders() {
|
||||
assertThat(
|
||||
InstrumentationConfigUtil.httpSeverResponseCapturedHeaders(kitchenSinkConfigProvider))
|
||||
InstrumentationConfigUtil.httpServerResponseCapturedHeaders(kitchenSinkConfigProvider))
|
||||
.isEqualTo(Arrays.asList("server-response-header1", "server-response-header2"));
|
||||
assertThat(
|
||||
InstrumentationConfigUtil.httpSeverResponseCapturedHeaders(
|
||||
InstrumentationConfigUtil.httpServerResponseCapturedHeaders(
|
||||
emptyInstrumentationConfigProvider))
|
||||
.isNull();
|
||||
assertThat(
|
||||
InstrumentationConfigUtil.httpSeverResponseCapturedHeaders(emptyGeneralConfigProvider))
|
||||
InstrumentationConfigUtil.httpServerResponseCapturedHeaders(emptyGeneralConfigProvider))
|
||||
.isNull();
|
||||
assertThat(InstrumentationConfigUtil.httpSeverResponseCapturedHeaders(emptyHttpConfigProvider))
|
||||
assertThat(InstrumentationConfigUtil.httpServerResponseCapturedHeaders(emptyHttpConfigProvider))
|
||||
.isNull();
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** Unit tests for No-op {@link Meter}. */
|
||||
@SuppressLogger()
|
||||
@SuppressLogger
|
||||
public abstract class AbstractDefaultMeterTest {
|
||||
private final Meter meter = getMeter();
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ plugins {
|
|||
`kotlin-dsl`
|
||||
|
||||
// When updating, update below in dependencies too
|
||||
id("com.diffplug.spotless") version "7.1.0"
|
||||
id("com.diffplug.spotless") version "7.2.1"
|
||||
}
|
||||
|
||||
if (!hasLauncherForJavaVersion(17)) {
|
||||
|
@ -53,8 +53,8 @@ dependencies {
|
|||
implementation(enforcedPlatform("com.squareup.wire:wire-bom:5.3.5"))
|
||||
implementation("com.google.auto.value:auto-value-annotations:1.11.0")
|
||||
// When updating, update above in plugins too
|
||||
implementation("com.diffplug.spotless:spotless-plugin-gradle:7.1.0")
|
||||
implementation("com.gradle.develocity:com.gradle.develocity.gradle.plugin:4.0.2")
|
||||
implementation("com.diffplug.spotless:spotless-plugin-gradle:7.2.1")
|
||||
implementation("com.gradle.develocity:com.gradle.develocity.gradle.plugin:4.1")
|
||||
implementation("com.squareup:javapoet:1.13.0")
|
||||
implementation("com.squareup.wire:wire-compiler")
|
||||
implementation("com.squareup.wire:wire-gradle-plugin")
|
||||
|
@ -64,7 +64,7 @@ dependencies {
|
|||
implementation("me.champeau.jmh:jmh-gradle-plugin:0.7.3")
|
||||
implementation("net.ltgt.gradle:gradle-errorprone-plugin:4.3.0")
|
||||
implementation("net.ltgt.gradle:gradle-nullaway-plugin:2.2.0")
|
||||
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.21")
|
||||
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.0")
|
||||
implementation("org.owasp:dependency-check-gradle:12.1.3")
|
||||
implementation("ru.vyarus:gradle-animalsniffer-plugin:2.0.1")
|
||||
}
|
||||
|
|
|
@ -142,6 +142,7 @@ if (!project.hasProperty("otel.release") && !project.name.startsWith("bom")) {
|
|||
// Temporarily suppress warnings from public generated classes from :sdk-extensions:jaeger-remote-sampler
|
||||
"io.opentelemetry.sdk.extension.trace.jaeger.proto.api_v2"
|
||||
)
|
||||
annotationExcludes.add("@kotlin.Metadata")
|
||||
val baseVersionString = if (apiBaseVersion == null) "latest" else baselineVersion
|
||||
txtOutputFile.set(
|
||||
apiNewVersion?.let { file("$rootDir/docs/apidiffs/${apiNewVersion}_vs_$baselineVersion/${base.archivesName.get()}.txt") }
|
||||
|
|
|
@ -7,37 +7,39 @@ data class DependencySet(val group: String, val version: String, val modules: Li
|
|||
val dependencyVersions = hashMapOf<String, String>()
|
||||
rootProject.extra["versions"] = dependencyVersions
|
||||
|
||||
|
||||
val autoValueVersion = "1.11.0"
|
||||
val errorProneVersion = "2.41.0"
|
||||
val jmhVersion = "1.37"
|
||||
// Mockito 5.x.x requires Java 11 https://github.com/mockito/mockito/releases/tag/v5.0.0
|
||||
val mockitoVersion = "4.11.0"
|
||||
val slf4jVersion = "2.0.17"
|
||||
val opencensusVersion = "0.31.1"
|
||||
val prometheusServerVersion = "1.3.10"
|
||||
val armeriaVersion = "1.32.5"
|
||||
val junitVersion = "5.13.4"
|
||||
val okhttpVersion = "5.1.0"
|
||||
|
||||
val DEPENDENCY_BOMS = listOf(
|
||||
// for some reason boms show up as runtime dependencies in license and vulnerability scans
|
||||
// even if they are only used by test dependencies, so not using junit bom here
|
||||
// (which is EPL licensed) or armeria bom (which is Apache licensed but is getting flagged
|
||||
// by FOSSA for containing EPL-licensed)
|
||||
|
||||
"com.fasterxml.jackson:jackson-bom:2.19.1",
|
||||
"com.fasterxml.jackson:jackson-bom:2.19.2",
|
||||
"com.google.guava:guava-bom:33.4.8-jre",
|
||||
"com.google.protobuf:protobuf-bom:4.31.1",
|
||||
"com.squareup.okhttp3:okhttp-bom:5.1.0",
|
||||
"com.squareup.okhttp3:okhttp-bom:$okhttpVersion",
|
||||
"com.squareup.okio:okio-bom:3.15.0", // applies to transitive dependencies of okhttp
|
||||
"io.grpc:grpc-bom:1.73.0",
|
||||
"io.netty:netty-bom:4.2.2.Final",
|
||||
"io.grpc:grpc-bom:1.74.0",
|
||||
"io.netty:netty-bom:4.2.3.Final",
|
||||
"io.zipkin.brave:brave-bom:6.3.0",
|
||||
"io.zipkin.reporter2:zipkin-reporter-bom:3.5.1",
|
||||
"org.assertj:assertj-bom:3.27.3",
|
||||
"org.testcontainers:testcontainers-bom:1.21.3",
|
||||
"org.snakeyaml:snakeyaml-engine:2.9"
|
||||
"org.snakeyaml:snakeyaml-engine:2.10"
|
||||
)
|
||||
|
||||
val autoValueVersion = "1.11.0"
|
||||
val errorProneVersion = "2.38.0"
|
||||
val jmhVersion = "1.37"
|
||||
// Mockito 5.x.x requires Java 11 https://github.com/mockito/mockito/releases/tag/v5.0.0
|
||||
val mockitoVersion = "4.11.0"
|
||||
val slf4jVersion = "2.0.17"
|
||||
val opencensusVersion = "0.31.1"
|
||||
val prometheusServerVersion = "1.3.8"
|
||||
val armeriaVersion = "1.32.5"
|
||||
val junitVersion = "5.12.2"
|
||||
|
||||
val DEPENDENCIES = listOf(
|
||||
"org.junit.jupiter:junit-jupiter-api:${junitVersion}",
|
||||
"org.junit.jupiter:junit-jupiter-params:${junitVersion}",
|
||||
|
@ -68,17 +70,18 @@ val DEPENDENCIES = listOf(
|
|||
"io.prometheus:prometheus-metrics-exposition-formats-no-protobuf:${prometheusServerVersion}",
|
||||
"javax.annotation:javax.annotation-api:1.3.2",
|
||||
"com.github.stefanbirkner:system-rules:1.19.0",
|
||||
"com.google.api.grpc:proto-google-common-protos:2.59.1",
|
||||
"com.google.api.grpc:proto-google-common-protos:2.59.2",
|
||||
"com.google.code.findbugs:jsr305:3.0.2",
|
||||
"com.google.guava:guava-beta-checker:1.0",
|
||||
"com.sun.net.httpserver:http:20070405",
|
||||
"com.squareup.okhttp3:okhttp-jvm:$okhttpVersion",
|
||||
"com.tngtech.archunit:archunit-junit5:1.4.1",
|
||||
"com.uber.nullaway:nullaway:0.12.7",
|
||||
"edu.berkeley.cs.jqf:jqf-fuzz:1.7", // jqf-fuzz version 1.8+ requires Java 11+
|
||||
"eu.rekawek.toxiproxy:toxiproxy-java:2.1.7",
|
||||
"io.github.netmikey.logunit:logunit-jul:2.0.0",
|
||||
"io.jaegertracing:jaeger-client:1.8.1",
|
||||
"io.opentelemetry.contrib:opentelemetry-aws-xray-propagator:1.47.0-alpha",
|
||||
"io.opentelemetry.contrib:opentelemetry-aws-xray-propagator:1.48.0-alpha",
|
||||
"io.opentelemetry.semconv:opentelemetry-semconv-incubating:1.34.0-alpha",
|
||||
"io.opentelemetry.proto:opentelemetry-proto:1.7.0-alpha",
|
||||
"io.opentracing:opentracing-api:0.33.0",
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Comparing source compatibility of opentelemetry-api-1.52.0.jar against opentelemetry-api-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.api.GlobalOpenTelemetry (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) STATIC(+) void set(java.util.function.Supplier<io.opentelemetry.api.OpenTelemetry>)
|
|
@ -0,0 +1,7 @@
|
|||
Comparing source compatibility of opentelemetry-common-1.52.0.jar against
|
||||
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.common.ComponentLoader (not serializable)
|
||||
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
|
||||
+++ NEW SUPERCLASS: java.lang.Object
|
||||
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.common.ComponentLoader forClassLoader(java.lang.ClassLoader)
|
||||
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable<T> load(java.lang.Class<T>)
|
||||
GENERIC TEMPLATES: +++ T:java.lang.Object
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-context-1.52.0.jar against opentelemetry-context-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-common-1.52.0.jar against opentelemetry-exporter-common-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-logging-otlp-1.52.0.jar against opentelemetry-exporter-logging-otlp-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-logging-1.52.0.jar against opentelemetry-exporter-logging-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-otlp-common-1.52.0.jar against opentelemetry-exporter-otlp-common-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,19 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-otlp-1.52.0.jar against opentelemetry-exporter-otlp-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-grpc-managed-channel-1.52.0.jar against opentelemetry-exporter-sender-grpc-managed-channel-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-jdk-1.52.0.jar against opentelemetry-exporter-sender-jdk-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-okhttp-1.52.0.jar against opentelemetry-exporter-sender-okhttp-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-zipkin-1.52.0.jar against opentelemetry-exporter-zipkin-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-extension-kotlin-1.52.0.jar against opentelemetry-extension-kotlin-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-extension-trace-propagators-1.52.0.jar against opentelemetry-extension-trace-propagators-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-opentracing-shim-1.52.0.jar against opentelemetry-opentracing-shim-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-common-1.52.0.jar against opentelemetry-sdk-common-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,4 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.52.0.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar
|
||||
*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.common.ComponentLoader getComponentLoader()
|
|
@ -0,0 +1,4 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.52.0.jar against opentelemetry-sdk-extension-autoconfigure-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-jaeger-remote-sampler-1.52.0.jar against opentelemetry-sdk-extension-jaeger-remote-sampler-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-logs-1.52.0.jar against opentelemetry-sdk-logs-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-metrics-1.52.0.jar against opentelemetry-sdk-metrics-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-testing-1.52.0.jar against opentelemetry-sdk-testing-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-trace-1.52.0.jar against opentelemetry-sdk-trace-1.51.0.jar
|
||||
No changes.
|
|
@ -0,0 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-1.52.0.jar against opentelemetry-sdk-1.51.0.jar
|
||||
No changes.
|
|
@ -1,4 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-api-1.52.0-SNAPSHOT.jar against opentelemetry-api-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.api.GlobalOpenTelemetry (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) STATIC(+) void set(java.util.function.Supplier<io.opentelemetry.api.OpenTelemetry>)
|
||||
Comparing source compatibility of opentelemetry-api-1.53.0-SNAPSHOT.jar against opentelemetry-api-1.52.0.jar
|
||||
No changes.
|
|
@ -1,7 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-common-1.52.0-SNAPSHOT.jar against
|
||||
+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.opentelemetry.common.ComponentLoader (not serializable)
|
||||
+++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
|
||||
+++ NEW SUPERCLASS: java.lang.Object
|
||||
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.opentelemetry.common.ComponentLoader forClassLoader(java.lang.ClassLoader)
|
||||
+++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.Iterable<T> load(java.lang.Class<T>)
|
||||
GENERIC TEMPLATES: +++ T:java.lang.Object
|
||||
Comparing source compatibility of opentelemetry-common-1.53.0-SNAPSHOT.jar against opentelemetry-common-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-context-1.52.0-SNAPSHOT.jar against opentelemetry-context-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-context-1.53.0-SNAPSHOT.jar against opentelemetry-context-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-common-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-common-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-common-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-common-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-logging-otlp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-logging-otlp-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-logging-otlp-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-logging-otlp-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-logging-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-logging-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-logging-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-logging-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-otlp-common-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-common-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-otlp-common-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-common-1.52.0.jar
|
||||
No changes.
|
|
@ -1,19 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-otlp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
Comparing source compatibility of opentelemetry-exporter-otlp-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-otlp-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-grpc-managed-channel-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-sender-grpc-managed-channel-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-sender-grpc-managed-channel-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-sender-grpc-managed-channel-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-jdk-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-sender-jdk-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-sender-jdk-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-sender-jdk-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-sender-okhttp-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-sender-okhttp-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-sender-okhttp-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-sender-okhttp-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-exporter-zipkin-1.52.0-SNAPSHOT.jar against opentelemetry-exporter-zipkin-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-exporter-zipkin-1.53.0-SNAPSHOT.jar against opentelemetry-exporter-zipkin-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-extension-kotlin-1.52.0-SNAPSHOT.jar against opentelemetry-extension-kotlin-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-extension-kotlin-1.53.0-SNAPSHOT.jar against opentelemetry-extension-kotlin-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-extension-trace-propagators-1.52.0-SNAPSHOT.jar against opentelemetry-extension-trace-propagators-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-extension-trace-propagators-1.53.0-SNAPSHOT.jar against opentelemetry-extension-trace-propagators-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-opentracing-shim-1.52.0-SNAPSHOT.jar against opentelemetry-opentracing-shim-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-opentracing-shim-1.53.0-SNAPSHOT.jar against opentelemetry-opentracing-shim-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-common-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-common-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-common-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-common-1.52.0.jar
|
||||
No changes.
|
|
@ -1,4 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar
|
||||
*** MODIFIED INTERFACE: PUBLIC ABSTRACT io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.common.ComponentLoader getComponentLoader()
|
||||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-spi-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-spi-1.52.0.jar
|
||||
No changes.
|
|
@ -1,4 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.51.0.jar
|
||||
*** MODIFIED CLASS: PUBLIC FINAL io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder (not serializable)
|
||||
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
|
||||
+++ NEW METHOD: PUBLIC(+) io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(io.opentelemetry.common.ComponentLoader)
|
||||
Comparing source compatibility of opentelemetry-sdk-extension-autoconfigure-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-extension-autoconfigure-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-extension-jaeger-remote-sampler-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-extension-jaeger-remote-sampler-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-extension-jaeger-remote-sampler-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-extension-jaeger-remote-sampler-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-logs-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-logs-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-logs-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-logs-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-metrics-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-metrics-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-metrics-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-metrics-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-testing-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-testing-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-testing-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-testing-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-trace-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-trace-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-trace-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-trace-1.52.0.jar
|
||||
No changes.
|
|
@ -1,2 +1,2 @@
|
|||
Comparing source compatibility of opentelemetry-sdk-1.52.0-SNAPSHOT.jar against opentelemetry-sdk-1.51.0.jar
|
||||
Comparing source compatibility of opentelemetry-sdk-1.53.0-SNAPSHOT.jar against opentelemetry-sdk-1.52.0.jar
|
||||
No changes.
|
|
@ -66,6 +66,7 @@ testing {
|
|||
|
||||
implementation("io.grpc:grpc-stub")
|
||||
implementation("io.grpc:grpc-netty")
|
||||
implementation("com.fasterxml.jackson.core:jackson-core")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ class UnsafeAccess {
|
|||
private UnsafeAccess() {}
|
||||
|
||||
private static class UnsafeHolder {
|
||||
public static final Unsafe UNSAFE;
|
||||
private static final Unsafe UNSAFE;
|
||||
|
||||
static {
|
||||
UNSAFE = getUnsafe();
|
||||
|
|
|
@ -36,7 +36,7 @@ class ExporterInstrumentationTest {
|
|||
Supplier<MeterProvider> meterProviderSupplier = mock(Supplier.class);
|
||||
|
||||
@ParameterizedTest
|
||||
@EnumSource()
|
||||
@EnumSource
|
||||
void validMeterProvider(InternalTelemetryVersion schemaVersion) {
|
||||
when(meterProviderSupplier.get())
|
||||
.thenReturn(
|
||||
|
@ -84,7 +84,7 @@ class ExporterInstrumentationTest {
|
|||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@EnumSource()
|
||||
@EnumSource
|
||||
void noopMeterProvider(InternalTelemetryVersion schemaVersion) {
|
||||
|
||||
when(meterProviderSupplier.get()).thenReturn(MeterProvider.noop());
|
||||
|
|
|
@ -121,7 +121,7 @@ class GrpcExporterTest {
|
|||
private static class DummyServiceFutureStub
|
||||
extends MarshalerServiceStub<DummyMarshaler, Object, DummyServiceFutureStub> {
|
||||
|
||||
protected DummyServiceFutureStub(Channel channel, CallOptions callOptions) {
|
||||
private DummyServiceFutureStub(Channel channel, CallOptions callOptions) {
|
||||
super(channel, callOptions);
|
||||
}
|
||||
|
||||
|
@ -147,7 +147,7 @@ class GrpcExporterTest {
|
|||
|
||||
private static class DummyMarshaler extends MarshalerWithSize {
|
||||
|
||||
protected DummyMarshaler() {
|
||||
private DummyMarshaler() {
|
||||
super(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ dependencies {
|
|||
jmhImplementation("com.linecorp.armeria:armeria")
|
||||
jmhImplementation("com.linecorp.armeria:armeria-grpc")
|
||||
jmhImplementation("io.opentelemetry.proto:opentelemetry-proto")
|
||||
jmhRuntimeOnly("com.squareup.okhttp3:okhttp")
|
||||
jmhRuntimeOnly("com.squareup.okhttp3:okhttp-jvm")
|
||||
jmhRuntimeOnly("io.grpc:grpc-netty")
|
||||
}
|
||||
|
||||
|
@ -64,8 +64,12 @@ testing {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (it.equals("LATEST")) {
|
||||
implementation("com.squareup.okhttp3:okhttp-jvm")
|
||||
} else {
|
||||
implementation("com.squareup.okhttp3:okhttp")
|
||||
}
|
||||
|
||||
implementation("com.squareup.okhttp3:okhttp")
|
||||
implementation("io.grpc:grpc-stub")
|
||||
}
|
||||
|
||||
|
|
|
@ -110,12 +110,12 @@ public class StringMarshalBenchmark {
|
|||
context = new MarshalerContext(/* marshalStringNoAllocation= */ true, useUnsafe);
|
||||
}
|
||||
|
||||
public void initialize(String string) {
|
||||
private void initialize(String string) {
|
||||
value = string;
|
||||
size = StringAnyValueStatelessMarshaler.INSTANCE.getBinarySerializedSize(string, context);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
private void reset() {
|
||||
context.reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -42,12 +42,12 @@ public final class ResourceLogsMarshaler extends MarshalerWithSize {
|
|||
int posResource = 0;
|
||||
for (Map.Entry<Resource, Map<InstrumentationScopeInfo, List<Marshaler>>> entry :
|
||||
resourceAndScopeMap.entrySet()) {
|
||||
InstrumentationScopeLogsMarshaler[] instrumentationLibrarySpansMarshalers =
|
||||
InstrumentationScopeLogsMarshaler[] instrumentationScopeLogsMarshalers =
|
||||
new InstrumentationScopeLogsMarshaler[entry.getValue().size()];
|
||||
int posInstrumentation = 0;
|
||||
for (Map.Entry<InstrumentationScopeInfo, List<Marshaler>> entryIs :
|
||||
entry.getValue().entrySet()) {
|
||||
instrumentationLibrarySpansMarshalers[posInstrumentation++] =
|
||||
instrumentationScopeLogsMarshalers[posInstrumentation++] =
|
||||
new InstrumentationScopeLogsMarshaler(
|
||||
InstrumentationScopeMarshaler.create(entryIs.getKey()),
|
||||
MarshalerUtil.toBytes(entryIs.getKey().getSchemaUrl()),
|
||||
|
@ -57,7 +57,7 @@ public final class ResourceLogsMarshaler extends MarshalerWithSize {
|
|||
new ResourceLogsMarshaler(
|
||||
ResourceMarshaler.create(entry.getKey()),
|
||||
MarshalerUtil.toBytes(entry.getKey().getSchemaUrl()),
|
||||
instrumentationLibrarySpansMarshalers);
|
||||
instrumentationScopeLogsMarshalers);
|
||||
}
|
||||
|
||||
return resourceLogsMarshalers;
|
||||
|
|
|
@ -42,12 +42,12 @@ public final class ResourceMetricsMarshaler extends MarshalerWithSize {
|
|||
int posResource = 0;
|
||||
for (Map.Entry<Resource, Map<InstrumentationScopeInfo, List<Marshaler>>> entry :
|
||||
resourceAndScopeMap.entrySet()) {
|
||||
InstrumentationScopeMetricsMarshaler[] instrumentationLibrarySpansMarshalers =
|
||||
InstrumentationScopeMetricsMarshaler[] instrumentationScopeMetricsMarshalers =
|
||||
new InstrumentationScopeMetricsMarshaler[entry.getValue().size()];
|
||||
int posInstrumentation = 0;
|
||||
for (Map.Entry<InstrumentationScopeInfo, List<Marshaler>> entryIs :
|
||||
entry.getValue().entrySet()) {
|
||||
instrumentationLibrarySpansMarshalers[posInstrumentation++] =
|
||||
instrumentationScopeMetricsMarshalers[posInstrumentation++] =
|
||||
new InstrumentationScopeMetricsMarshaler(
|
||||
InstrumentationScopeMarshaler.create(entryIs.getKey()),
|
||||
MarshalerUtil.toBytes(entryIs.getKey().getSchemaUrl()),
|
||||
|
@ -57,7 +57,7 @@ public final class ResourceMetricsMarshaler extends MarshalerWithSize {
|
|||
new ResourceMetricsMarshaler(
|
||||
ResourceMarshaler.create(entry.getKey()),
|
||||
MarshalerUtil.toBytes(entry.getKey().getSchemaUrl()),
|
||||
instrumentationLibrarySpansMarshalers);
|
||||
instrumentationScopeMetricsMarshalers);
|
||||
}
|
||||
|
||||
return resourceMetricsMarshalers;
|
||||
|
|
|
@ -55,6 +55,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
|||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
|
||||
class LowAllocationMetricsRequestMarshalerTest {
|
||||
|
||||
|
@ -127,7 +128,7 @@ class LowAllocationMetricsRequestMarshalerTest {
|
|||
MarshalerContext context = new MarshalerContext();
|
||||
class TestMarshaler extends MarshalerWithSize {
|
||||
|
||||
protected TestMarshaler() {
|
||||
TestMarshaler() {
|
||||
super(ExemplarStatelessMarshaler.INSTANCE.getBinarySerializedSize(exemplar, context));
|
||||
}
|
||||
|
||||
|
@ -170,7 +171,7 @@ class LowAllocationMetricsRequestMarshalerTest {
|
|||
MarshalerContext context = new MarshalerContext();
|
||||
class TestMarshaler extends MarshalerWithSize {
|
||||
|
||||
protected TestMarshaler() {
|
||||
TestMarshaler() {
|
||||
super(SummaryStatelessMarshaler.INSTANCE.getBinarySerializedSize(summary, context));
|
||||
}
|
||||
|
||||
|
@ -225,7 +226,8 @@ class LowAllocationMetricsRequestMarshalerTest {
|
|||
|
||||
private static class MetricsProvider implements ArgumentsProvider {
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) {
|
||||
return Stream.of(
|
||||
arguments(
|
||||
named(
|
||||
|
@ -386,7 +388,8 @@ class LowAllocationMetricsRequestMarshalerTest {
|
|||
|
||||
private static class ExemplarProvider implements ArgumentsProvider {
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) {
|
||||
SpanContext spanContext =
|
||||
SpanContext.create(
|
||||
"7b2e170db4df2d593ddb4ddf2ddf2d59",
|
||||
|
|
|
@ -35,13 +35,13 @@ final class ResourceProfilesMarshaler extends MarshalerWithSize {
|
|||
int posResource = 0;
|
||||
for (Map.Entry<Resource, Map<InstrumentationScopeInfo, List<ProfileMarshaler>>> entry :
|
||||
resourceAndScopeMap.entrySet()) {
|
||||
InstrumentationScopeProfilesMarshaler[] instrumentationLibrarySpansMarshalers =
|
||||
InstrumentationScopeProfilesMarshaler[] instrumentationScopeProfilesMarshalers =
|
||||
new InstrumentationScopeProfilesMarshaler[entry.getValue().size()];
|
||||
int posInstrumentation = 0;
|
||||
|
||||
for (Map.Entry<InstrumentationScopeInfo, List<ProfileMarshaler>> entryIs :
|
||||
entry.getValue().entrySet()) {
|
||||
instrumentationLibrarySpansMarshalers[posInstrumentation++] =
|
||||
instrumentationScopeProfilesMarshalers[posInstrumentation++] =
|
||||
new InstrumentationScopeProfilesMarshaler(
|
||||
InstrumentationScopeMarshaler.create(entryIs.getKey()),
|
||||
MarshalerUtil.toBytes(entryIs.getKey().getSchemaUrl()),
|
||||
|
@ -52,7 +52,7 @@ final class ResourceProfilesMarshaler extends MarshalerWithSize {
|
|||
new ResourceProfilesMarshaler(
|
||||
ResourceMarshaler.create(entry.getKey()),
|
||||
MarshalerUtil.toBytes(entry.getKey().getSchemaUrl()),
|
||||
instrumentationLibrarySpansMarshalers);
|
||||
instrumentationScopeProfilesMarshalers);
|
||||
}
|
||||
|
||||
return resourceProfilesMarshalers;
|
||||
|
|
|
@ -27,7 +27,7 @@ dependencies {
|
|||
|
||||
api("io.opentelemetry.proto:opentelemetry-proto")
|
||||
api("org.junit.jupiter:junit-jupiter-api")
|
||||
implementation("com.squareup.okhttp3:okhttp")
|
||||
implementation("com.squareup.okhttp3:okhttp-jvm")
|
||||
implementation("org.junit.jupiter:junit-jupiter-params")
|
||||
|
||||
implementation("com.linecorp.armeria:armeria-grpc-protocol")
|
||||
|
|
|
@ -98,6 +98,7 @@ import org.junit.jupiter.params.provider.Arguments;
|
|||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
import org.slf4j.event.Level;
|
||||
import org.slf4j.event.LoggingEvent;
|
||||
|
||||
|
@ -461,7 +462,8 @@ public abstract class AbstractGrpcTelemetryExporterTest<T, U extends Message> {
|
|||
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
|
||||
@Override
|
||||
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) throws Exception {
|
||||
return Stream.of(
|
||||
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
|
||||
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
|
||||
|
|
|
@ -99,6 +99,7 @@ import org.junit.jupiter.params.provider.Arguments;
|
|||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
import org.mockserver.integration.ClientAndServer;
|
||||
import org.slf4j.event.Level;
|
||||
import org.slf4j.event.LoggingEvent;
|
||||
|
@ -475,7 +476,8 @@ public abstract class AbstractHttpTelemetryExporterTest<T, U extends Message> {
|
|||
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
|
||||
@Override
|
||||
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) throws Exception {
|
||||
return Stream.of(
|
||||
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
|
||||
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
|
||||
|
|
|
@ -46,7 +46,7 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData;
|
|||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.prometheus.metrics.exporter.httpserver.HTTPServer;
|
||||
import io.prometheus.metrics.exporter.httpserver.MetricsHandler;
|
||||
import io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_31_0.Metrics;
|
||||
import io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_31_1.Metrics;
|
||||
import io.prometheus.metrics.model.registry.PrometheusRegistry;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -10,7 +10,7 @@ dependencies {
|
|||
implementation(project(":exporters:common"))
|
||||
implementation(project(":sdk:common"))
|
||||
|
||||
compileOnly("com.fasterxml.jackson.core:jackson-core")
|
||||
testImplementation("com.fasterxml.jackson.core:jackson-core")
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
|
|
@ -12,7 +12,7 @@ dependencies {
|
|||
implementation(project(":exporters:common"))
|
||||
implementation(project(":sdk:common"))
|
||||
|
||||
implementation("com.squareup.okhttp3:okhttp")
|
||||
implementation("com.squareup.okhttp3:okhttp-jvm")
|
||||
|
||||
compileOnly("io.grpc:grpc-stub")
|
||||
compileOnly("com.fasterxml.jackson.core:jackson-core")
|
||||
|
|
|
@ -75,6 +75,7 @@ public final class OkHttpGrpcSender<T extends Marshaler> implements GrpcSender<T
|
|||
@Nullable private final Compressor compressor;
|
||||
|
||||
/** Creates a new {@link OkHttpGrpcSender}. */
|
||||
@SuppressWarnings("TooManyParameters")
|
||||
public OkHttpGrpcSender(
|
||||
String endpoint,
|
||||
@Nullable Compressor compressor,
|
||||
|
|
|
@ -23,7 +23,7 @@ dependencies {
|
|||
implementation(project(":api:incubator"))
|
||||
}
|
||||
|
||||
// org.graalvm.buildtools.native pluging requires java 11+ as of version 0.9.26
|
||||
// org.graalvm.buildtools.native plugin requires java 11+ as of version 0.9.26
|
||||
// https://github.com/graalvm/native-build-tools/blob/master/docs/src/docs/asciidoc/index.adoc
|
||||
tasks {
|
||||
withType<JavaCompile>().configureEach {
|
||||
|
@ -43,6 +43,24 @@ graalvmNative {
|
|||
// Required as of junit 5.10.0: https://junit.org/junit5/docs/5.10.0/release-notes/#deprecations-and-breaking-changes
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherConfig")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter")
|
||||
// Required as of junit 5.13.0: https://junit.org/junit5/docs/5.13.0/release-notes/#deprecations-and-breaking-changes
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator\$IndicativeSentences")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$ClassInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$LifecycleMethods")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter\$Mode")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector\$1")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor\$MethodInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver\$DummyClassTemplateInvocationContext")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore\$EvaluatedValue")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult\$EngineResultInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherPhase")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.DiscoverySelectorResolver")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor\$DiscoveryIssueForwardingListener")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor\$LifecycleMethods")
|
||||
}
|
||||
}
|
||||
toolchainDetection.set(false)
|
||||
|
|
|
@ -21,7 +21,7 @@ dependencies {
|
|||
implementation(project(":exporters:otlp:all"))
|
||||
}
|
||||
|
||||
// org.graalvm.buildtools.native pluging requires java 11+ as of version 0.9.26
|
||||
// org.graalvm.buildtools.native plugin requires java 11+ as of version 0.9.26
|
||||
// https://github.com/graalvm/native-build-tools/blob/master/docs/src/docs/asciidoc/index.adoc
|
||||
tasks {
|
||||
withType<JavaCompile>().configureEach {
|
||||
|
@ -41,6 +41,24 @@ graalvmNative {
|
|||
// Required as of junit 5.10.0: https://junit.org/junit5/docs/5.10.0/release-notes/#deprecations-and-breaking-changes
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherConfig")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter")
|
||||
// Required as of junit 5.13.0: https://junit.org/junit5/docs/5.13.0/release-notes/#deprecations-and-breaking-changes
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator\$IndicativeSentences")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$ClassInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor\$LifecycleMethods")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter\$Mode")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector\$1")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor\$MethodInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver\$DummyClassTemplateInvocationContext")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore\$EvaluatedValue")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult\$EngineResultInfo")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.launcher.core.LauncherPhase")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.DiscoverySelectorResolver")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor\$DiscoveryIssueForwardingListener")
|
||||
buildArgs.add("--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor\$LifecycleMethods")
|
||||
}
|
||||
}
|
||||
toolchainDetection.set(false)
|
||||
|
|
|
@ -30,7 +30,6 @@ import io.opentelemetry.sdk.testing.exporter.InMemorySpanExporter;
|
|||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
@ -44,6 +43,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
|||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
|
||||
/** Integration tests for the B3 propagators, in various configurations. */
|
||||
class B3PropagationIntegrationTest {
|
||||
|
@ -161,7 +161,7 @@ class B3PropagationIntegrationTest {
|
|||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WebClientArgumentSupplier.class)
|
||||
void propagation(String testType, WebClient client) throws IOException {
|
||||
void propagation(String testType, WebClient client) {
|
||||
OpenTelemetrySdk clientSdk = setupClient();
|
||||
|
||||
Span span = clientSdk.getTracer("testTracer").spanBuilder("clientSpan").startSpan();
|
||||
|
@ -182,7 +182,7 @@ class B3PropagationIntegrationTest {
|
|||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WebClientArgumentSupplier.class)
|
||||
void noClientTracing(String testType, WebClient client) throws IOException {
|
||||
void noClientTracing(String testType, WebClient client) {
|
||||
assertThat(client.get("/frontend").aggregate().join().contentUtf8()).isEqualTo("OK");
|
||||
|
||||
List<SpanData> finishedSpanItems = spanExporter.getFinishedSpanItems();
|
||||
|
@ -237,7 +237,8 @@ class B3PropagationIntegrationTest {
|
|||
|
||||
public static class WebClientArgumentSupplier implements ArgumentsProvider {
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) {
|
||||
return Stream.of(
|
||||
Arguments.of("b3multi", b3MultiClient), Arguments.of("b3single", b3SingleClient));
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM python:3.13.5@sha256:a6af772cf98267c48c145928cbeb35bd8e89b610acd70f93e3e8ac3e96c92af8 AS build
|
||||
FROM python:3.13.5@sha256:4ea77121eab13d9e71f2783d7505f5655b25bb7b2c263e8020aae3b555dbc0b2 AS build
|
||||
|
||||
# Main branch SHA as of April-1-2021
|
||||
ARG TRACECONTEXT_GIT_TAG="dcd3ad9b7d6ac36f70ff3739874b73c11b0302a1"
|
||||
|
@ -11,7 +11,7 @@ RUN unzip trace-context.zip
|
|||
RUN rm trace-context.zip
|
||||
RUN mv trace-context-${TRACECONTEXT_GIT_TAG}/test /tracecontext-testsuite
|
||||
|
||||
FROM python:3.13.5-slim@sha256:6544e0e002b40ae0f59bc3618b07c1e48064c4faed3a15ae2fbd2e8f663e8283
|
||||
FROM python:3.13.5-slim@sha256:4c2cf9917bd1cbacc5e9b07320025bdb7cdf2df7b0ceaccb55e9dd7e30987419
|
||||
|
||||
RUN pip install aiohttp
|
||||
|
||||
|
|
|
@ -129,12 +129,12 @@ final class OpenTelemetrySpanBuilderImpl extends SpanBuilder {
|
|||
Boolean hasRemoteParent = null;
|
||||
if (ocRemoteParentSpanContext != null && ocRemoteParentSpanContext.isValid()) {
|
||||
ocParentContext = ocRemoteParentSpanContext;
|
||||
hasRemoteParent = Boolean.TRUE;
|
||||
hasRemoteParent = true;
|
||||
ocTraceId = ocParentContext.getTraceId();
|
||||
ocTracestate = ocParentContext.getTracestate();
|
||||
} else if (ocParent != null && ocParent.getContext().isValid()) {
|
||||
ocParentContext = ocParent.getContext();
|
||||
hasRemoteParent = Boolean.FALSE;
|
||||
hasRemoteParent = false;
|
||||
ocTraceId = ocParentContext.getTraceId();
|
||||
ocTracestate = ocParentContext.getTracestate();
|
||||
} else {
|
||||
|
|
|
@ -246,7 +246,7 @@ public final class DeclarativeConfiguration {
|
|||
private final LoadSettings settings;
|
||||
private final Map<String, String> environmentVariables;
|
||||
|
||||
public EnvLoad(LoadSettings settings, Map<String, String> environmentVariables) {
|
||||
private EnvLoad(LoadSettings settings, Map<String, String> environmentVariables) {
|
||||
super(settings);
|
||||
this.settings = settings;
|
||||
this.environmentVariables = environmentVariables;
|
||||
|
@ -295,7 +295,7 @@ public final class DeclarativeConfiguration {
|
|||
private static final int ESCAPE_SEQUENCE_LENGTH = ESCAPE_SEQUENCE.length();
|
||||
private static final char ESCAPE_SEQUENCE_REPLACEMENT = '$';
|
||||
|
||||
public EnvComposer(
|
||||
private EnvComposer(
|
||||
LoadSettings settings, ParserImpl parser, Map<String, String> environmentVariables) {
|
||||
super(settings, parser);
|
||||
this.load = new Load(settings);
|
||||
|
|
|
@ -34,12 +34,12 @@ final class OpenTelemetryConfigurationFactory
|
|||
String fileFormat = model.getFileFormat();
|
||||
if (fileFormat == null || !SUPPORTED_FILE_FORMATS.matcher(fileFormat).matches()) {
|
||||
throw new DeclarativeConfigException(
|
||||
"Unsupported file format. Supported formats include 0.4, 1.0*");
|
||||
"Unsupported file format '" + fileFormat + "'. Supported formats include 0.4, 1.0*");
|
||||
}
|
||||
// TODO(jack-berg): log warning if version is not exact match, which may result in unexpected
|
||||
// behavior for experimental properties.
|
||||
|
||||
if (Objects.equals(Boolean.TRUE, model.getDisabled())) {
|
||||
if (Objects.equals(true, model.getDisabled())) {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,8 @@ class OpenTelemetryConfigurationFactoryTest {
|
|||
assertThatThrownBy(
|
||||
() -> OpenTelemetryConfigurationFactory.getInstance().create(model, context))
|
||||
.isInstanceOf(DeclarativeConfigException.class)
|
||||
.hasMessage("Unsupported file format. Supported formats include 0.4, 1.0*");
|
||||
.hasMessageMatching(
|
||||
"Unsupported file format '.+'\\. Supported formats include 0\\.4, 1\\.0\\*");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ dependencies {
|
|||
implementation(project(":exporters:common"))
|
||||
implementation(project(":exporters:sender:okhttp"))
|
||||
|
||||
implementation("com.squareup.okhttp3:okhttp")
|
||||
implementation("com.squareup.okhttp3:okhttp-jvm")
|
||||
|
||||
compileOnly("io.grpc:grpc-api")
|
||||
compileOnly("io.grpc:grpc-protobuf")
|
||||
|
|
|
@ -51,6 +51,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
|||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
import org.slf4j.event.Level;
|
||||
import org.slf4j.event.LoggingEvent;
|
||||
|
||||
|
@ -192,7 +193,8 @@ class JaegerRemoteSamplerTest {
|
|||
private static class ClientPrivateKeyProvider implements ArgumentsProvider {
|
||||
@Override
|
||||
@SuppressWarnings("PrimitiveArrayPassedToVarargsMethod")
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) throws Exception {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) throws Exception {
|
||||
return Stream.of(
|
||||
arguments(named("PEM", Files.readAllBytes(clientCertificate.privateKeyFile().toPath()))),
|
||||
arguments(named("DER", clientCertificate.privateKey().getEncoded())));
|
||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.sdk.internal;
|
|||
import static java.util.concurrent.TimeUnit.MINUTES;
|
||||
|
||||
import io.opentelemetry.sdk.common.Clock;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.logging.Level;
|
||||
|
@ -21,28 +22,52 @@ import javax.annotation.Nullable;
|
|||
* at any time.
|
||||
*/
|
||||
public class ThrottlingLogger {
|
||||
private static final double RATE_LIMIT = 5;
|
||||
private static final double THROTTLED_RATE_LIMIT = 1;
|
||||
private static final TimeUnit rateTimeUnit = MINUTES;
|
||||
private static final double DEFAULT_RATE_LIMIT = 5;
|
||||
private static final double DEFAULT_THROTTLED_RATE_LIMIT = 1;
|
||||
private static final TimeUnit DEFAULT_RATE_TIME_UNIT = MINUTES;
|
||||
|
||||
private final Logger delegate;
|
||||
private final AtomicBoolean throttled = new AtomicBoolean(false);
|
||||
private final RateLimiter fastRateLimiter;
|
||||
private final RateLimiter throttledRateLimiter;
|
||||
|
||||
private final double rateLimit;
|
||||
private final double throttledRateLimit;
|
||||
private final TimeUnit rateTimeUnit;
|
||||
|
||||
/** Create a new logger which will enforce a max number of messages per minute. */
|
||||
public ThrottlingLogger(Logger delegate) {
|
||||
this(delegate, Clock.getDefault());
|
||||
}
|
||||
|
||||
/** Alternate way to create logger that allows setting custom intervals and units. * */
|
||||
public ThrottlingLogger(
|
||||
Logger delegate, double rateLimit, double throttledRateLimit, TimeUnit rateTimeUnit) {
|
||||
this(delegate, Clock.getDefault(), rateLimit, throttledRateLimit, rateTimeUnit);
|
||||
}
|
||||
|
||||
// visible for testing
|
||||
ThrottlingLogger(Logger delegate, Clock clock) {
|
||||
this(delegate, clock, DEFAULT_RATE_LIMIT, DEFAULT_THROTTLED_RATE_LIMIT, DEFAULT_RATE_TIME_UNIT);
|
||||
}
|
||||
|
||||
ThrottlingLogger(
|
||||
Logger delegate,
|
||||
Clock clock,
|
||||
double rateLimit,
|
||||
double throttledRateLimit,
|
||||
TimeUnit rateTimeUnit) {
|
||||
this.delegate = delegate;
|
||||
this.rateLimit = rateLimit;
|
||||
this.throttledRateLimit = throttledRateLimit;
|
||||
this.rateTimeUnit = rateTimeUnit;
|
||||
this.fastRateLimiter =
|
||||
new RateLimiter(RATE_LIMIT / rateTimeUnit.toSeconds(1), RATE_LIMIT, clock);
|
||||
new RateLimiter(this.rateLimit / this.rateTimeUnit.toSeconds(1), this.rateLimit, clock);
|
||||
this.throttledRateLimiter =
|
||||
new RateLimiter(
|
||||
THROTTLED_RATE_LIMIT / rateTimeUnit.toSeconds(1), THROTTLED_RATE_LIMIT, clock);
|
||||
this.throttledRateLimit / this.rateTimeUnit.toSeconds(1),
|
||||
this.throttledRateLimit,
|
||||
clock);
|
||||
}
|
||||
|
||||
/** Log a message at the given level. */
|
||||
|
@ -69,9 +94,15 @@ public class ThrottlingLogger {
|
|||
|
||||
if (throttled.compareAndSet(false, true)) {
|
||||
// spend the balance in the throttled one, so that it starts at zero.
|
||||
throttledRateLimiter.trySpend(THROTTLED_RATE_LIMIT);
|
||||
delegate.log(
|
||||
level, "Too many log messages detected. Will only log once per minute from now on.");
|
||||
throttledRateLimiter.trySpend(throttledRateLimit);
|
||||
String timeUnitString = rateTimeUnit.toString().toLowerCase(Locale.ROOT);
|
||||
String throttleMessage =
|
||||
String.format(
|
||||
Locale.ROOT,
|
||||
"Too many log messages detected. Will only log %.0f time(s) per %s from now on.",
|
||||
throttledRateLimit,
|
||||
timeUnitString.substring(0, timeUnitString.length() - 1));
|
||||
delegate.log(level, throttleMessage);
|
||||
doLog(level, message, throwable);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import io.opentelemetry.internal.testing.slf4j.SuppressLogger;
|
|||
import io.opentelemetry.sdk.common.Clock;
|
||||
import io.opentelemetry.sdk.testing.time.TestClock;
|
||||
import java.time.Duration;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -45,6 +46,23 @@ class ThrottlingLoggerTest {
|
|||
.isSameAs(throwable);
|
||||
}
|
||||
|
||||
@Test
|
||||
void delegationCustom() {
|
||||
ThrottlingLogger logger = new ThrottlingLogger(realLogger, 10, 2, TimeUnit.HOURS);
|
||||
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
logger.log(Level.INFO, "oh yes!");
|
||||
RuntimeException throwable = new RuntimeException();
|
||||
logger.log(Level.SEVERE, "secrets", throwable);
|
||||
|
||||
logs.assertContains(loggingEvent -> loggingEvent.getLevel().equals(WARN), "oh no!");
|
||||
logs.assertContains(loggingEvent -> loggingEvent.getLevel().equals(INFO), "oh yes!");
|
||||
assertThat(
|
||||
logs.assertContains(loggingEvent -> loggingEvent.getLevel().equals(ERROR), "secrets")
|
||||
.getThrowable())
|
||||
.isSameAs(throwable);
|
||||
}
|
||||
|
||||
@Test
|
||||
void logsBelowLevelDontCount() {
|
||||
ThrottlingLogger logger =
|
||||
|
@ -76,7 +94,26 @@ class ThrottlingLoggerTest {
|
|||
assertThat(logs.getEvents()).hasSize(7);
|
||||
logs.assertDoesNotContain("oh no I should be suppressed!");
|
||||
logs.assertContains(
|
||||
"Too many log messages detected. Will only log once per minute from now on.");
|
||||
"Too many log messages detected. Will only log 1 time(s) per minute from now on.");
|
||||
logs.assertContains("oh no I should trigger suppression!");
|
||||
}
|
||||
|
||||
@Test
|
||||
void tenInAnHourTriggersLimiting() {
|
||||
Clock clock = TestClock.create();
|
||||
ThrottlingLogger logger = new ThrottlingLogger(realLogger, clock, 10, 2, TimeUnit.HOURS);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
}
|
||||
|
||||
logger.log(Level.WARNING, "oh no I should trigger suppression!");
|
||||
logger.log(Level.WARNING, "oh no I should be suppressed!");
|
||||
|
||||
assertThat(logs.getEvents()).hasSize(12);
|
||||
logs.assertDoesNotContain("oh no I should be suppressed!");
|
||||
logs.assertContains(
|
||||
"Too many log messages detected. Will only log 2 time(s) per hour from now on.");
|
||||
logs.assertContains("oh no I should trigger suppression!");
|
||||
}
|
||||
|
||||
|
@ -130,7 +167,7 @@ class ThrottlingLoggerTest {
|
|||
logs.assertDoesNotContain("oh no I should be suppressed!");
|
||||
logs.assertContains("oh no I should trigger suppression!");
|
||||
logs.assertContains(
|
||||
"Too many log messages detected. Will only log once per minute from now on.");
|
||||
"Too many log messages detected. Will only log 1 time(s) per minute from now on.");
|
||||
|
||||
clock.advance(Duration.ofMillis(60_001));
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
|
@ -145,6 +182,41 @@ class ThrottlingLoggerTest {
|
|||
assertThat(logs.getEvents().get(8).getMessage()).isEqualTo("oh no!");
|
||||
}
|
||||
|
||||
@Test
|
||||
void afterAnHourLetTwoThrough() {
|
||||
TestClock clock = TestClock.create();
|
||||
ThrottlingLogger logger = new ThrottlingLogger(realLogger, clock, 10, 2, TimeUnit.HOURS);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
}
|
||||
|
||||
logger.log(Level.WARNING, "oh no I should trigger suppression!");
|
||||
logger.log(Level.WARNING, "oh no I should be suppressed!");
|
||||
|
||||
assertThat(logs.getEvents()).hasSize(12);
|
||||
logs.assertDoesNotContain("oh no I should be suppressed!");
|
||||
logs.assertContains("oh no I should trigger suppression!");
|
||||
logs.assertContains(
|
||||
"Too many log messages detected. Will only log 2 time(s) per hour from now on.");
|
||||
|
||||
clock.advance(Duration.ofMinutes(61));
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
logger.log(Level.WARNING, "oh no I should be suppressed!");
|
||||
assertThat(logs.getEvents()).hasSize(14);
|
||||
assertThat(logs.getEvents().get(13).getMessage()).isEqualTo("oh no!");
|
||||
|
||||
clock.advance(Duration.ofMinutes(61));
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
logger.log(Level.WARNING, "oh no I should be suppressed!");
|
||||
assertThat(logs.getEvents()).hasSize(16);
|
||||
assertThat(logs.getEvents().get(15).getMessage()).isEqualTo("oh no!");
|
||||
|
||||
logs.assertDoesNotContain("oh no I should be suppressed!");
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowOnlyOneLogPerMinuteAfterSuppression() {
|
||||
TestClock clock = TestClock.create();
|
||||
|
@ -181,4 +253,45 @@ class ThrottlingLoggerTest {
|
|||
assertThat(logs.getEvents()).hasSize(8);
|
||||
assertThat(logs.getEvents().get(7).getMessage()).isEqualTo("allowed 1");
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowOnlyTwoLogPerHourAfterSuppression() {
|
||||
TestClock clock = TestClock.create();
|
||||
ThrottlingLogger logger = new ThrottlingLogger(realLogger, clock, 10, 2, TimeUnit.HOURS);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
logger.log(Level.WARNING, "oh no!");
|
||||
}
|
||||
|
||||
logger.log(Level.WARNING, "oh no I should trigger suppression!");
|
||||
logger.log(Level.WARNING, "oh no I should be suppressed!");
|
||||
|
||||
assertThat(logs.getEvents()).hasSize(12);
|
||||
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
logger.log(Level.WARNING, "suppression 1");
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
logger.log(Level.WARNING, "suppression 2");
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
clock.advance(Duration.ofSeconds(1));
|
||||
logger.log(Level.WARNING, "allowed 1");
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
logger.log(Level.WARNING, "suppression 3");
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
logger.log(Level.WARNING, "suppression 4");
|
||||
clock.advance(Duration.ofMinutes(10));
|
||||
clock.advance(Duration.ofSeconds(1));
|
||||
logger.log(Level.WARNING, "allowed 2");
|
||||
|
||||
logs.assertDoesNotContain("suppression 1");
|
||||
logs.assertDoesNotContain("suppression 2");
|
||||
logs.assertDoesNotContain("suppression 3");
|
||||
logs.assertDoesNotContain("suppression 4");
|
||||
logs.assertContains("allowed 1");
|
||||
logs.assertContains("allowed 2");
|
||||
|
||||
assertThat(logs.getEvents()).hasSize(14);
|
||||
assertThat(logs.getEvents().get(12).getMessage()).isEqualTo("allowed 1");
|
||||
assertThat(logs.getEvents().get(13).getMessage()).isEqualTo("allowed 2");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ public enum TestSdk {
|
|||
private abstract static class SdkBuilder {
|
||||
abstract Meter build();
|
||||
|
||||
protected static Tracer buildTracer() {
|
||||
private static Tracer buildTracer() {
|
||||
return SdkTracerProvider.builder()
|
||||
.setSampler(Sampler.alwaysOn())
|
||||
.build()
|
||||
|
|
|
@ -49,7 +49,7 @@ public enum HistogramValueGenerator {
|
|||
private final double[] pool;
|
||||
private final AtomicInteger idx = new AtomicInteger(0);
|
||||
|
||||
public PoolSupplier(double[] pool) {
|
||||
private PoolSupplier(double[] pool) {
|
||||
this.pool = pool;
|
||||
}
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ public class MutableHistogramPointDataTest {
|
|||
assertThat(anotherPointData.hashCode()).isNotEqualTo(pointData.hashCode());
|
||||
}
|
||||
|
||||
@Test()
|
||||
@Test
|
||||
void testBoundaries() {
|
||||
MutableHistogramPointData pointData = new MutableHistogramPointData(10);
|
||||
assertThatThrownBy(
|
||||
|
|
|
@ -56,6 +56,7 @@ import org.junit.jupiter.params.ParameterizedTest;
|
|||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.junit.jupiter.params.support.ParameterDeclarations;
|
||||
|
||||
class AttributesAdviceTest {
|
||||
|
||||
|
@ -220,7 +221,8 @@ class AttributesAdviceTest {
|
|||
static final class InstrumentsProvider implements ArgumentsProvider {
|
||||
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
|
||||
public Stream<? extends Arguments> provideArguments(
|
||||
ParameterDeclarations parameters, ExtensionContext context) {
|
||||
return Stream.of(
|
||||
// double counter
|
||||
arguments(
|
||||
|
|
|
@ -151,7 +151,7 @@ class SdkTracerTest {
|
|||
private static class SimpleSpanOperation implements OperationUpdater {
|
||||
private final SdkTracer tracer;
|
||||
|
||||
public SimpleSpanOperation(SdkTracer tracer) {
|
||||
private SimpleSpanOperation(SdkTracer tracer) {
|
||||
this.tracer = tracer;
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ class SdkTracerTest {
|
|||
|
||||
private static class CountingSpanExporter implements SpanExporter {
|
||||
|
||||
public final AtomicLong numberOfSpansExported = new AtomicLong();
|
||||
private final AtomicLong numberOfSpansExported = new AtomicLong();
|
||||
|
||||
@Override
|
||||
public CompletableResultCode export(Collection<SpanData> spans) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
pluginManagement {
|
||||
plugins {
|
||||
id("com.gradleup.shadow") version "8.3.8"
|
||||
id("com.gradle.develocity") version "4.0.2"
|
||||
id("com.gradle.develocity") version "4.1"
|
||||
id("de.undercouch.download") version "5.6.0"
|
||||
id("org.jsonschema2pojo") version "1.2.2"
|
||||
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
val snapshot = true
|
||||
|
||||
allprojects {
|
||||
var ver = "1.52.0"
|
||||
var ver = "1.53.0"
|
||||
val release = findProperty("otel.release")
|
||||
if (release != null) {
|
||||
ver += "-" + release
|
||||
|
|
Loading…
Reference in New Issue