diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
index 70fb482d600..0d8d88ca730 100644
--- a/.github/workflows/changelog.yml
+++ b/.github/workflows/changelog.yml
@@ -15,7 +15,7 @@ jobs:
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog')}}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Check for CHANGELOG changes
run: |
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 659cde8d2f1..f67b78fe0ed 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -2,17 +2,9 @@ name: "CodeQL Analysis"
on:
workflow_dispatch:
- schedule:
- # ┌───────────── minute (0 - 59)
- # │ ┌───────────── hour (0 - 23)
- # │ │ ┌───────────── day of the month (1 - 31)
- # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
- # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
- # │ │ │ │ │
- # │ │ │ │ │
- # │ │ │ │ │
- # * * * * *
- - cron: '30 1 * * *'
+ push:
+ branches: [ main ]
+ pull_request:
jobs:
CodeQL-Build:
@@ -20,7 +12,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index cde3ca25c70..787e11a91ed 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 79c0f720bea..a8bb9e14dc0 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -16,7 +16,7 @@ jobs:
with:
node-version: '16'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Lint changelog file
uses: avto-dev/markdown-lint@v1
diff --git a/.github/workflows/peer-api.yml b/.github/workflows/peer-api.yml
index e6f52cccd77..bb5094ec406 100644
--- a/.github/workflows/peer-api.yml
+++ b/.github/workflows/peer-api.yml
@@ -14,7 +14,7 @@ jobs:
image: node:20
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Install lerna
run: npm install -g lerna
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 26eea6386b3..da15818d5f4 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -20,7 +20,7 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
@@ -46,6 +46,10 @@ jobs:
experimental/packages/*/package-lock.json
key: node-tests-${{ runner.os }}-${{ matrix.node_version }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022
+ # temporary fix for https://github.com/nrwl/nx/issues/19022
+ - run: npm install --save-dev nx@16.7.4 @nx/devkit@16.7.4
+ if: ${{ matrix.node_version == '14' }}
+
- name: Bootstrap
run: |
npm install --ignore-scripts
@@ -71,7 +75,7 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
@@ -112,7 +116,7 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
@@ -150,7 +154,7 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
- uses: actions/checkout@v3.5.3
+ uses: actions/checkout@v4.0.0
- uses: actions/setup-node@v3
with:
node-version: 16
@@ -192,7 +196,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
diff --git a/.github/workflows/w3c-integration-test.yml b/.github/workflows/w3c-integration-test.yml
index 443fe85fac5..04c07379ab4 100644
--- a/.github/workflows/w3c-integration-test.yml
+++ b/.github/workflows/w3c-integration-test.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40c458cf1ba..53987c41696 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,22 +11,38 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/
### :rocket: (Enhancement)
-* feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)
+### :bug: (Bug Fix)
+
+### :books: (Refine Doc)
+
+### :house: (Internal)
+
+* test: added a performance benchmark test for span creation [#4105](https://github.com/open-telemetry/opentelemetry-js/pull/4105)
+
+## 1.17.0
+
+### :bug: (Bug Fix)
+
+* Revert "feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)"
+ * This feature was an unintentional breaking change introduced with API 1.5.0
+ * This PR updates all SDK packages to allow API 1.6.0, where this change has been reverted.
+
+## 1.16.0
+
+### :rocket: (Enhancement)
+
* feat(sdk-metrics): implement MetricProducer specification [#4007](https://github.com/open-telemetry/opentelemetry-js/pull/4007)
* feat: update PeriodicExportingMetricReader and PrometheusExporter to accept optional metric producers [#4077](https://github.com/open-telemetry/opentelemetry-js/pull/4077) @aabmass
### :bug: (Bug Fix)
* fix(exporter-zipkin): rounding duration to the nearest int to be compliant with zipkin protocol [#4064](https://github.com/open-telemetry/opentelemetry-js/pull/4064) @n0cloud
+* fix(sdk-metrics): metric names should be case-insensitive
### :books: (Refine Doc)
* docs(guidelines): add dependencies guidelines [#4040](https://github.com/open-telemetry/opentelemetry-js/pull/4040)
-### :house: (Internal)
-
-* test: added a performance benchmark test for span creation [#4105](https://github.com/open-telemetry/opentelemetry-js/pull/4105)
-
## 1.15.2
### :bug: (Bug Fix)
diff --git a/README.md b/README.md
index 7fbe7879721..c07b4e59249 100644
--- a/README.md
+++ b/README.md
@@ -141,19 +141,27 @@ There may also be API packages for experimental signals in the experimental dire
All stable packages are released with the same version, and all experimental packages are released with the same version.
The below table describes which versions of each set of packages are expected to work together.
-| API | Stable Packages | Experimental Packages |
-| ----- | --------------- | --------------------- |
-| 1.3.x | 1.9.x | 0.35.x |
-| 1.3.x | 1.8.x | 0.34.x |
-| 1.2.x | 1.7.x | 0.33.x |
-| 1.2.x | 1.6.x | 0.32.x |
-| 1.1.x | 1.5.x | 0.31.x |
-| 1.1.x | 1.4.x | 0.30.x |
-| 1.1.x | 1.3.x | 0.29.x |
-| 1.1.x | 1.2.x | 0.29.x |
-| 1.1.x | 1.1.x | 0.28.x |
-| 1.0.x | 1.0.x | 0.27.x |
-| 1.0.x | 1.0.x | 0.26.x |
+| Stable Packages | Experimental Packages |
+|-----------------------------------------------------------------|-----------------------|
+| 1.17.x | 0.43.x |
+| 1.16.x | 0.42.x |
+| 1.15.x | 0.41.x |
+| 1.14.x | 0.40.x |
+| 1.13.x | 0.39.x |
+| 1.12.x | 0.38.x |
+| 1.11.x | 0.37.x |
+| 1.10.x | 0.36.x |
+| 1.9.x | 0.35.x |
+| 1.8.x (this and later versions require API >=1.3.0 for metrics) | 0.34.x |
+| 1.7.x | 0.33.x |
+| 1.6.x | 0.32.x |
+| 1.5.x | 0.31.x |
+| 1.4.x | 0.30.x |
+| 1.3.x | 0.29.x |
+| 1.2.x | 0.29.x |
+| 1.1.x | 0.28.x |
+| 1.0.x | 0.27.x |
+| 1.0.x (this and later versions require API >=1.0.0 for traces) | 0.26.x |
## Versioning
diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md
index a1dcf67d4f5..cba48a41492 100644
--- a/api/CHANGELOG.md
+++ b/api/CHANGELOG.md
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
## Unreleased
+## 1.6.0
+
+### :bug: (Bug Fix)
+
+* Revert "feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)"
+ * This feature was an unintentional breaking change introduced with 1.5.0
+
+## 1.5.0
+
### :rocket: (Enhancement)
* feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)
diff --git a/api/package.json b/api/package.json
index 7369e951c03..2b677d2451e 100644
--- a/api/package.json
+++ b/api/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/api",
- "version": "1.4.1",
+ "version": "1.6.0",
"description": "Public API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
diff --git a/api/src/trace/NonRecordingSpan.ts b/api/src/trace/NonRecordingSpan.ts
index dc7e3de3d78..a9e5bcaf9be 100644
--- a/api/src/trace/NonRecordingSpan.ts
+++ b/api/src/trace/NonRecordingSpan.ts
@@ -71,9 +71,5 @@ export class NonRecordingSpan implements Span {
}
// By default does nothing
- recordException(
- _exception: Exception,
- _attributesOrStartTime?: SpanAttributes | TimeInput,
- _time?: TimeInput
- ): void {}
+ recordException(_exception: Exception, _time?: TimeInput): void {}
}
diff --git a/api/src/trace/span.ts b/api/src/trace/span.ts
index 59eb233a85a..d80b8c2626d 100644
--- a/api/src/trace/span.ts
+++ b/api/src/trace/span.ts
@@ -126,17 +126,4 @@ export interface Span {
* use the current time.
*/
recordException(exception: Exception, time?: TimeInput): void;
-
- /**
- * Sets exception as a span event
- * @param exception the exception the only accepted values are string or Error
- * @param [attributes] the attributes that will be added to the error event.
- * @param [time] the time to set as Span's event time. If not provided,
- * use the current time.
- */
- recordException(
- exception: Exception,
- attributes?: SpanAttributes,
- time?: TimeInput
- ): void;
}
diff --git a/doc/tracing.md b/doc/tracing.md
index ea3e38284bf..fb3371d4fa5 100644
--- a/doc/tracing.md
+++ b/doc/tracing.md
@@ -79,7 +79,7 @@ server.on("GET", "/user/:id", onGet);
Using span relationships, attributes, kind, and the related [semantic conventions](https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/trace/semantic_conventions), we can more accurately describe the span in a way our tracing backend will more easily understand. The following example uses these mechanisms, which are described below.
```typescript
-import { NetTransportValues SemanticAttributes } from '@opentelemetry/semantic-conventions';
+import { NetTransportValues, SemanticAttributes } from '@opentelemetry/semantic-conventions';
import { trace, context, SpanKind, SpanStatusCode } from '@opentelemetry/api';
async function onGet(request, response) {
diff --git a/examples/esm-http-ts/package.json b/examples/esm-http-ts/package.json
index bc2aa9665e1..046ab7fe0a1 100644
--- a/examples/esm-http-ts/package.json
+++ b/examples/esm-http-ts/package.json
@@ -1,7 +1,7 @@
{
"name": "esm-http-ts",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of HTTP integration with OpenTelemetry using ESM and TypeScript",
"main": "build/index.js",
"type": "module",
@@ -30,13 +30,13 @@
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/",
"dependencies": {
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/exporter-trace-otlp-proto": "0.41.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-http": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/exporter-trace-otlp-proto": "0.43.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/instrumentation-http": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
}
}
diff --git a/examples/http/package.json b/examples/http/package.json
index 641344b3f6b..9a3bcb2de40 100644
--- a/examples/http/package.json
+++ b/examples/http/package.json
@@ -1,7 +1,7 @@
{
"name": "http-example",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of HTTP integration with OpenTelemetry",
"main": "index.js",
"scripts": {
@@ -29,14 +29,14 @@
},
"dependencies": {
"@opentelemetry/api": "^1.3.0",
- "@opentelemetry/exporter-jaeger": "1.15.2",
- "@opentelemetry/exporter-zipkin": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-http": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/exporter-jaeger": "1.17.0",
+ "@opentelemetry/exporter-zipkin": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/instrumentation-http": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/http",
"devDependencies": {
diff --git a/examples/https/package.json b/examples/https/package.json
index 8eeac36fa9a..3653c96ff5f 100644
--- a/examples/https/package.json
+++ b/examples/https/package.json
@@ -1,7 +1,7 @@
{
"name": "https-example",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of HTTPs integration with OpenTelemetry",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -33,14 +33,14 @@
},
"dependencies": {
"@opentelemetry/api": "^1.0.0",
- "@opentelemetry/exporter-jaeger": "1.15.2",
- "@opentelemetry/exporter-zipkin": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-http": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/exporter-jaeger": "1.17.0",
+ "@opentelemetry/exporter-zipkin": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/instrumentation-http": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/https",
"devDependencies": {
diff --git a/examples/opentelemetry-web/package.json b/examples/opentelemetry-web/package.json
index 2b79e07cc2c..4a8abc9e171 100644
--- a/examples/opentelemetry-web/package.json
+++ b/examples/opentelemetry-web/package.json
@@ -1,7 +1,7 @@
{
"name": "web-opentelemetry-example",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of using @opentelemetry/sdk-trace-web and @opentelemetry/sdk-metrics in browser",
"main": "index.js",
"scripts": {
@@ -43,20 +43,20 @@
},
"dependencies": {
"@opentelemetry/api": "^1.3.0",
- "@opentelemetry/context-zone": "1.15.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-metrics-otlp-http": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-http": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-proto": "0.41.2",
- "@opentelemetry/exporter-zipkin": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-fetch": "0.41.2",
- "@opentelemetry/instrumentation-xml-http-request": "0.41.2",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-web": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/context-zone": "1.17.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-metrics-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-proto": "0.43.0",
+ "@opentelemetry/exporter-zipkin": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/instrumentation-fetch": "0.43.0",
+ "@opentelemetry/instrumentation-xml-http-request": "0.43.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-web": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web"
}
diff --git a/examples/otlp-exporter-node/package.json b/examples/otlp-exporter-node/package.json
index c8817d0e45d..5091af08362 100644
--- a/examples/otlp-exporter-node/package.json
+++ b/examples/otlp-exporter-node/package.json
@@ -1,7 +1,7 @@
{
"name": "example-otlp-exporter-node",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of using @opentelemetry/collector-exporter in Node.js",
"main": "index.js",
"scripts": {
@@ -29,17 +29,17 @@
},
"dependencies": {
"@opentelemetry/api": "^1.3.0",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-metrics-otlp-grpc": "0.41.2",
- "@opentelemetry/exporter-metrics-otlp-http": "0.41.2",
- "@opentelemetry/exporter-metrics-otlp-proto": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-grpc": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-http": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-proto": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-metrics-otlp-grpc": "0.43.0",
+ "@opentelemetry/exporter-metrics-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-metrics-otlp-proto": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-proto": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/otlp-exporter-node"
}
diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md
index b796a557b87..24f36df117a 100644
--- a/experimental/CHANGELOG.md
+++ b/experimental/CHANGELOG.md
@@ -8,6 +8,34 @@ All notable changes to experimental packages in this project will be documented
### :boom: Breaking Change
+* fix(exporter-logs-otlp-proto): change OTLPLogExporter to OTLPLogExporter [#4140](https://github.com/open-telemetry/opentelemetry-js/pull/4140) @Vunovati
+* fix(sdk-node): remove explicit dependency on @opentelemetry/exporter-jaeger
+ * '@opentelemetry/exporter-jaeger' is no longer be a dependency of this package. To continue using '@opentelemetry/exporter-jaeger', please install it manually.
+ * NOTE: `@opentelemetry/exporter-jaeger` is deprecated, consider switching to one of the alternatives described [here](https://www.npmjs.com/package/@opentelemetry/exporter-jaeger)
+
+### :rocket: (Enhancement)
+
+* feat(exporter-metrics-otlp-proto): add esm build [#4099](https://github.com/open-telemetry/opentelemetry-js/pull/4099) @pichlermarc
+* feat(opencensus-shim): implement OpenCensus metric producer [#4066](https://github.com/open-telemetry/opentelemetry-js/pull/4066) @aabmass
+
+### :bug: (Bug Fix)
+
+### :books: (Refine Doc)
+
+### :house: (Internal)
+
+## 0.43.0
+
+### :bug: (Bug Fix)
+
+* Revert "feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)"
+ * This feature was an unintentional breaking change introduced with API 1.5.0
+ * This PR updates all experimental packages to allow API 1.6.0, where this change has been reverted.
+
+## 0.42.0
+
+### :boom: Breaking Change
+
* chore(sdk-node): deprecate methods in favor of constructor options [#3996](https://github.com/open-telemetry/opentelemetry-js/pull/3996) @pichlermarc
* The following methods are now deprecated and will be removed in `0.43.0`
* `NodeSDK.configureTracerProvider()`, please use constructor options instead
@@ -27,10 +55,6 @@ All notable changes to experimental packages in this project will be documented
* fix(exporter-logs-otlp-http): add @opentelemetry/api-logs as dependency
-### :books: (Refine Doc)
-
-### :house: (Internal)
-
## 0.41.2
### :bug: (Bug Fix)
diff --git a/experimental/backwards-compatibility/node14/package.json b/experimental/backwards-compatibility/node14/package.json
index fc19e3ddb3d..5e7509407c7 100644
--- a/experimental/backwards-compatibility/node14/package.json
+++ b/experimental/backwards-compatibility/node14/package.json
@@ -1,6 +1,6 @@
{
"name": "backcompat-node14",
- "version": "0.41.2",
+ "version": "0.43.0",
"private": true,
"description": "Backwards compatibility app for node 14 types and the OpenTelemetry Node.js SDK",
"main": "index.js",
@@ -9,8 +9,8 @@
"peer-api-check": "node ../../../scripts/peer-api-check.js"
},
"dependencies": {
- "@opentelemetry/sdk-node": "0.41.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/sdk-node": "0.43.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"devDependencies": {
"@types/node": "14.18.25",
diff --git a/experimental/backwards-compatibility/node16/package.json b/experimental/backwards-compatibility/node16/package.json
index 6c94e032093..2c8c2f8e7fa 100644
--- a/experimental/backwards-compatibility/node16/package.json
+++ b/experimental/backwards-compatibility/node16/package.json
@@ -1,6 +1,6 @@
{
"name": "backcompat-node16",
- "version": "0.41.2",
+ "version": "0.43.0",
"private": true,
"description": "Backwards compatibility app for node 16 types and the OpenTelemetry Node.js SDK",
"main": "index.js",
@@ -9,8 +9,8 @@
"peer-api-check": "node ../../../scripts/peer-api-check.js"
},
"dependencies": {
- "@opentelemetry/sdk-node": "0.41.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/sdk-node": "0.43.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"devDependencies": {
"@types/node": "16.11.52",
diff --git a/experimental/examples/logs/package.json b/experimental/examples/logs/package.json
index f978265643b..03ff3e05b16 100644
--- a/experimental/examples/logs/package.json
+++ b/experimental/examples/logs/package.json
@@ -1,12 +1,12 @@
{
"name": "logs-example",
- "version": "0.41.1",
+ "version": "0.43.0",
"private": true,
"scripts": {
"start": "ts-node index.ts"
},
"dependencies": {
- "@opentelemetry/api": "^1.4.1",
+ "@opentelemetry/api": "^1.6.0",
"@opentelemetry/api-logs": "0.41.0",
"@opentelemetry/sdk-logs": "0.41.0"
},
diff --git a/experimental/examples/opencensus-shim/README.md b/experimental/examples/opencensus-shim/README.md
index 0738d67d893..6d95a91356e 100644
--- a/experimental/examples/opencensus-shim/README.md
+++ b/experimental/examples/opencensus-shim/README.md
@@ -9,6 +9,8 @@ The example has:
- Root Spans (on client), instrumented with OpenCensus's HTTP instrumentation
- Child Span from a remote parent (on server), instrumented with OpenCensus's HTTP instrumentation
- Another Child Span created in the server representing some work being done, instrumented manually with OpenTelemetry.
+- Server metrics coming from OpenCensus's HTTP instrumentation, available through the
+OpenTelemetry's Prometheus exporter.
## Installation
@@ -64,6 +66,14 @@ Go to Jaeger with your browser and click on the "Servi

+## Check the Prometheus metrics
+
+Load the Prometheus metrics endpoint of the server at in your
+browser. You should see the `opencensus_io_http_server_*` related metrics in
+the output.
+
+
+
## Useful links
- For more information on OpenTelemetry, visit:
diff --git a/experimental/examples/opencensus-shim/images/prom-metrics.png b/experimental/examples/opencensus-shim/images/prom-metrics.png
new file mode 100644
index 00000000000..953e12253da
Binary files /dev/null and b/experimental/examples/opencensus-shim/images/prom-metrics.png differ
diff --git a/experimental/examples/opencensus-shim/package.json b/experimental/examples/opencensus-shim/package.json
index d3c2726c36d..bd97c726c1e 100644
--- a/experimental/examples/opencensus-shim/package.json
+++ b/experimental/examples/opencensus-shim/package.json
@@ -1,7 +1,7 @@
{
"name": "opencensus-shim",
"private": true,
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Example of using @opentelemetry/shim-opencensus in Node.js",
"main": "index.js",
"scripts": {
@@ -28,13 +28,16 @@
},
"dependencies": {
"@opencensus/core": "0.1.0",
+ "@opencensus/instrumentation-http": "0.1.0",
"@opencensus/nodejs-base": "0.1.0",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/exporter-trace-otlp-grpc": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2",
- "@opentelemetry/shim-opencensus": "0.41.2"
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/exporter-prometheus": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
+ "@opentelemetry/shim-opencensus": "0.43.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/examples/opencensus-shim"
}
diff --git a/experimental/examples/opencensus-shim/server.js b/experimental/examples/opencensus-shim/server.js
index 98ddcf5b60a..00893bafe99 100644
--- a/experimental/examples/opencensus-shim/server.js
+++ b/experimental/examples/opencensus-shim/server.js
@@ -5,6 +5,8 @@ const setup = require('./setup');
const utils = require('./utils');
const { trace } = require('@opentelemetry/api');
+const oc = require('@opencensus/core');
+
setup('opencensus-shim-example-server');
const http = require('http');
diff --git a/experimental/examples/opencensus-shim/setup.js b/experimental/examples/opencensus-shim/setup.js
index 37206971e7c..99bf8bf8b44 100644
--- a/experimental/examples/opencensus-shim/setup.js
+++ b/experimental/examples/opencensus-shim/setup.js
@@ -15,37 +15,64 @@
*/
'use strict';
-const { DiagConsoleLogger, diag, DiagLogLevel } = require('@opentelemetry/api');
+const { diag, metrics } = require('@opentelemetry/api');
const {
NodeTracerProvider,
BatchSpanProcessor,
} = require('@opentelemetry/sdk-trace-node');
+const { MeterProvider } = require('@opentelemetry/sdk-metrics');
const {
OTLPTraceExporter,
} = require('@opentelemetry/exporter-trace-otlp-grpc');
+const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const { Resource } = require('@opentelemetry/resources');
const {
SemanticResourceAttributes,
} = require('@opentelemetry/semantic-conventions');
+const { OpenCensusMetricProducer } = require('@opentelemetry/shim-opencensus');
+const instrumentationHttp = require('@opencensus/instrumentation-http');
+const { TracingBase } = require('@opencensus/nodejs-base');
+const oc = require('@opencensus/core');
module.exports = function setup(serviceName) {
- const tracing = require('@opencensus/nodejs-base');
+ /**
+ * You can alternatively just use the @opentelemetry/nodejs package directly:
+ *
+ * ```js
+ * const tracing = require('@opencensus/nodejs');
+ * ```
+ */
+ const tracing = new TracingBase(['http']);
+ tracing.tracer = new oc.CoreTracer();
- diag.setLogger(new DiagConsoleLogger(), { logLevel: DiagLogLevel.ALL });
- const provider = new NodeTracerProvider({
- resource: new Resource({
- [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
- }),
+ const resource = new Resource({
+ [SemanticResourceAttributes.SERVICE_NAME]: serviceName,
});
- provider.addSpanProcessor(
+ const tracerProvider = new NodeTracerProvider({ resource });
+ tracerProvider.addSpanProcessor(
new BatchSpanProcessor(new OTLPTraceExporter(), {
scheduledDelayMillis: 5000,
})
);
- provider.register();
+ tracerProvider.register();
+
+ const meterProvider = new MeterProvider({ resource });
+ meterProvider.addMetricReader(
+ new PrometheusExporter({
+ metricProducers: [
+ new OpenCensusMetricProducer({
+ openCensusMetricProducerManager:
+ oc.Metrics.getMetricProducerManager(),
+ }),
+ ],
+ })
+ );
+ metrics.setGlobalMeterProvider(meterProvider);
// Start OpenCensus tracing
- tracing.start({ samplingRate: 1, logger: diag });
+ tracing.start({ samplingRate: 1, logger: diag, stats: oc.globalStats });
+ // Register OpenCensus HTTP stats views
+ instrumentationHttp.registerAllViews(oc.globalStats);
- return provider;
+ return tracerProvider;
};
diff --git a/experimental/examples/prometheus/package.json b/experimental/examples/prometheus/package.json
index 678f2212c40..9a7beb79e17 100644
--- a/experimental/examples/prometheus/package.json
+++ b/experimental/examples/prometheus/package.json
@@ -1,6 +1,6 @@
{
"name": "prometheus-example",
- "version": "0.41.2",
+ "version": "0.43.0",
"private": true,
"description": "Example of using @opentelemetry/sdk-metrics and @opentelemetry/exporter-prometheus",
"main": "index.js",
@@ -11,7 +11,7 @@
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/api": "^1.3.0",
- "@opentelemetry/exporter-prometheus": "0.41.2",
- "@opentelemetry/sdk-metrics": "1.15.2"
+ "@opentelemetry/exporter-prometheus": "0.43.0",
+ "@opentelemetry/sdk-metrics": "1.17.0"
}
}
diff --git a/experimental/packages/api-events/package.json b/experimental/packages/api-events/package.json
index eb7081e519a..c93878d9091 100644
--- a/experimental/packages/api-events/package.json
+++ b/experimental/packages/api-events/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/api-events",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Public events API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
diff --git a/experimental/packages/api-logs/package.json b/experimental/packages/api-logs/package.json
index 617a8acfc7b..18806178ce3 100644
--- a/experimental/packages/api-logs/package.json
+++ b/experimental/packages/api-logs/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/api-logs",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Public logs API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
diff --git a/experimental/packages/exporter-logs-otlp-grpc/package.json b/experimental/packages/exporter-logs-otlp-grpc/package.json
index d77260bb81f..82146ce4398 100644
--- a/experimental/packages/exporter-logs-otlp-grpc/package.json
+++ b/experimental/packages/exporter-logs-otlp-grpc/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-grpc",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Exporter allows user to send collected log records to the OpenTelemetry Collector",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -48,12 +48,12 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.3",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/api-logs": "0.41.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/api-logs": "0.43.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -73,10 +73,10 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-grpc-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/sdk-logs": "0.41.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-grpc-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/sdk-logs": "0.43.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-grpc",
"sideEffects": false
diff --git a/experimental/packages/exporter-logs-otlp-http/package.json b/experimental/packages/exporter-logs-otlp-http/package.json
index 3f0c192b0c9..05b217da2d0 100644
--- a/experimental/packages/exporter-logs-otlp-http/package.json
+++ b/experimental/packages/exporter-logs-otlp-http/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-http",
- "version": "0.41.2",
+ "version": "0.43.0",
"publishConfig": {
"access": "public"
},
@@ -71,9 +71,9 @@
],
"sideEffects": false,
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/resources": "1.15.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/resources": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -104,10 +104,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/api-logs": "0.41.2",
- "@opentelemetry/sdk-logs": "0.41.2"
+ "@opentelemetry/api-logs": "0.43.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/sdk-logs": "0.43.0"
}
}
diff --git a/experimental/packages/exporter-logs-otlp-proto/README.md b/experimental/packages/exporter-logs-otlp-proto/README.md
index 3a00476c329..30f1e8bb341 100644
--- a/experimental/packages/exporter-logs-otlp-proto/README.md
+++ b/experimental/packages/exporter-logs-otlp-proto/README.md
@@ -22,7 +22,7 @@ To see documentation and sample code for the metric exporter, see the [exporter-
```js
const { LoggerProvider, SimpleLogRecordProcessor } = require('@opentelemetry/sdk-logs');
-const { OTLPLogsExporter } = require('@opentelemetry/exporter-logs-otlp-proto');
+const { OTLPLogExporter } = require('@opentelemetry/exporter-logs-otlp-proto');
const collectorOptions = {
url: '', // url is optional and can be omitted - default is http://localhost:4318/v1/logs
@@ -32,7 +32,7 @@ const collectorOptions = {
};
const logProvider = new LoggerProvider({resource: new Resource({'service.name': 'testApp'})});
-const logExporter = new OTLPLogsExporter(collectorOptions);
+const logExporter = new OTLPLogExporter(collectorOptions);
logProvider.addLogRecordProcessor(new SimpleLogRecordProcessor(exporter));
const logger = logProvider.getLogger('test_log_instrumentation');
@@ -44,7 +44,7 @@ logger.emit({
## Exporter Timeout Configuration
-The OTLPLogsExporter has a timeout configuration option which is the maximum time, in milliseconds, the OTLP exporter will wait for each batch export. The default value is 10000ms.
+The OTLPLogExporter has a timeout configuration option which is the maximum time, in milliseconds, the OTLP exporter will wait for each batch export. The default value is 10000ms.
To override the default timeout duration, use the following options:
@@ -57,7 +57,7 @@ To override the default timeout duration, use the following options:
> `OTEL_EXPORTER_OTLP_LOGS_TIMEOUT` takes precedence and overrides `OTEL_EXPORTER_OTLP_TIMEOUT`.
-+ Provide `timeoutMillis` to OTLPLogsExporter with `collectorOptions`:
++ Provide `timeoutMillis` to OTLPLogExporter with `collectorOptions`:
```js
const collectorOptions = {
@@ -68,7 +68,7 @@ To override the default timeout duration, use the following options:
}, //an optional object containing custom headers to be sent with each request will only work with http
};
- const exporter = new OTLPLogsExporter(collectorOptions);
+ const exporter = new OTLPLogExporter(collectorOptions);
```
> Providing `timeoutMillis` with `collectorOptions` takes precedence and overrides timeout set with environment variables.
diff --git a/experimental/packages/exporter-logs-otlp-proto/package.json b/experimental/packages/exporter-logs-otlp-proto/package.json
index 70177cc4ff2..4aa74b7eb26 100644
--- a/experimental/packages/exporter-logs-otlp-proto/package.json
+++ b/experimental/packages/exporter-logs-otlp-proto/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-proto",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "An OTLP exporter to send logs using protobuf over HTTP",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -63,8 +63,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -93,14 +93,14 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/api-logs": "0.41.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-proto-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-logs": "0.41.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/api-logs": "0.43.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-proto-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-logs": "0.43.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-proto",
"sideEffects": false
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/index.ts b/experimental/packages/exporter-logs-otlp-proto/src/index.ts
index 9fde4be45b2..dd74bc70bef 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/index.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/index.ts
@@ -13,4 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-export { OTLPLogsExporter } from './platform';
+export { OTLPLogExporter } from './platform';
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogsExporter.ts b/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogExporter.ts
similarity index 98%
rename from experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogsExporter.ts
rename to experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogExporter.ts
index 185d5094f1a..fff28d4e77a 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogsExporter.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/OTLPLogExporter.ts
@@ -37,7 +37,7 @@ const DEFAULT_COLLECTOR_URL = `http://localhost:4318/${DEFAULT_COLLECTOR_RESOURC
/**
* Collector Trace Exporter for Web
*/
-export class OTLPLogsExporter
+export class OTLPLogExporter
extends OTLPProtoExporterBrowserBase<
ReadableLogRecord,
IExportLogsServiceRequest
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/index.ts b/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/index.ts
index e6968b34669..abaa4216f14 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/index.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/platform/browser/index.ts
@@ -13,4 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-export { OTLPLogsExporter } from './OTLPLogsExporter';
+export { OTLPLogExporter } from './OTLPLogExporter';
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/platform/index.ts b/experimental/packages/exporter-logs-otlp-proto/src/platform/index.ts
index 851ff9a015b..86a29a341c1 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/platform/index.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/platform/index.ts
@@ -13,4 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-export { OTLPLogsExporter } from './node';
+export { OTLPLogExporter } from './node';
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogsExporter.ts b/experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogExporter.ts
similarity index 98%
rename from experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogsExporter.ts
rename to experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogExporter.ts
index 88d97e21d3e..53191c06254 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogsExporter.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/platform/node/OTLPLogExporter.ts
@@ -37,7 +37,7 @@ const DEFAULT_COLLECTOR_URL = `http://localhost:4318/${DEFAULT_COLLECTOR_RESOURC
/**
* Collector Trace Exporter for Node
*/
-export class OTLPLogsExporter
+export class OTLPLogExporter
extends OTLPProtoExporterNodeBase<
ReadableLogRecord,
IExportLogsServiceRequest
diff --git a/experimental/packages/exporter-logs-otlp-proto/src/platform/node/index.ts b/experimental/packages/exporter-logs-otlp-proto/src/platform/node/index.ts
index 4797b306510..2472e4a7962 100644
--- a/experimental/packages/exporter-logs-otlp-proto/src/platform/node/index.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/src/platform/node/index.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export { OTLPLogsExporter } from './OTLPLogsExporter';
+export { OTLPLogExporter } from './OTLPLogExporter';
diff --git a/experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogsExporter.test.ts b/experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogExporter.test.ts
similarity index 81%
rename from experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogsExporter.test.ts
rename to experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogExporter.test.ts
index 382a132c3eb..6a76ed24a09 100644
--- a/experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogsExporter.test.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/test/browser/OTLPLogExporter.test.ts
@@ -16,19 +16,19 @@
import * as assert from 'assert';
import * as sinon from 'sinon';
-import { OTLPLogsExporter } from '../../src/platform/browser/index';
+import { OTLPLogExporter } from '../../src/platform/browser/index';
-describe('OTLPLogsExporter - web', () => {
- let collectorLogsExporter: OTLPLogsExporter;
+describe('OTLPLogExporter - web', () => {
+ let collectorLogsExporter: OTLPLogExporter;
describe('constructor', () => {
let onInitSpy: any;
beforeEach(() => {
- onInitSpy = sinon.stub(OTLPLogsExporter.prototype, 'onInit');
+ onInitSpy = sinon.stub(OTLPLogExporter.prototype, 'onInit');
const collectorExporterConfig = {
hostname: 'foo',
url: 'http://foo.bar.com',
};
- collectorLogsExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorLogsExporter = new OTLPLogExporter(collectorExporterConfig);
});
afterEach(() => {
sinon.restore();
diff --git a/experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogsExporter.test.ts b/experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogExporter.test.ts
similarity index 92%
rename from experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogsExporter.test.ts
rename to experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogExporter.test.ts
index 994a2f0ea47..0810109e817 100644
--- a/experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogsExporter.test.ts
+++ b/experimental/packages/exporter-logs-otlp-proto/test/node/OTLPLogExporter.test.ts
@@ -21,7 +21,7 @@ import * as http from 'http';
import * as sinon from 'sinon';
import { Stream, PassThrough } from 'stream';
import * as zlib from 'zlib';
-import { OTLPLogsExporter } from '../../src';
+import { OTLPLogExporter } from '../../src';
import {
ensureExportLogsServiceRequestIsSet,
ensureExportedLogRecordIsCorrect,
@@ -42,8 +42,8 @@ import { ReadableLogRecord } from '@opentelemetry/sdk-logs';
let fakeRequest: PassThrough;
-describe('OTLPLogsExporter - node with proto over http', () => {
- let collectorExporter: OTLPLogsExporter;
+describe('OTLPLogExporter - node with proto over http', () => {
+ let collectorExporter: OTLPLogExporter;
let collectorExporterConfig: OTLPExporterNodeConfigBase;
let logs: ReadableLogRecord[];
@@ -56,7 +56,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
const envSource = process.env;
it('should use url defined in env that ends with root path and append version and signal path', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar/';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_ENDPOINT}v1/logs`
@@ -65,7 +65,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should use url defined in env without checking if path is already present', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar/v1/logs';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/logs`
@@ -74,7 +74,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should use url defined in env and append version and signal', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/logs`
@@ -84,7 +84,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
it('should override global exporter url with signal url defined in env', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar/';
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.logs/';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT
@@ -94,7 +94,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should add root path when signal url defined in env contains no path and no root path', () => {
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.bar';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT}/`
@@ -103,7 +103,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should not add root path when signal url defined in env contains root path but no path', () => {
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.bar/';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT}`
@@ -112,7 +112,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should not add root path when signal url defined in env contains path', () => {
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.bar/v1/logs';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT}`
@@ -121,7 +121,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should not add root path when signal url defined in env contains path and ends in /', () => {
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.bar/v1/logs/';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(
collectorExporter.url,
`${envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT}`
@@ -130,14 +130,14 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
it('should use headers defined via env', () => {
envSource.OTEL_EXPORTER_OTLP_LOGS_HEADERS = 'foo=bar';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(collectorExporter.headers.foo, 'bar');
envSource.OTEL_EXPORTER_OTLP_HEADERS = '';
});
it('should override global headers config with signal headers defined via env', () => {
envSource.OTEL_EXPORTER_OTLP_HEADERS = 'foo=bar,bar=foo';
envSource.OTEL_EXPORTER_OTLP_LOGS_HEADERS = 'foo=boo';
- const collectorExporter = new OTLPLogsExporter();
+ const collectorExporter = new OTLPLogExporter();
assert.strictEqual(collectorExporter.headers.foo, 'boo');
assert.strictEqual(collectorExporter.headers.bar, 'foo');
envSource.OTEL_EXPORTER_OTLP_LOGS_HEADERS = '';
@@ -156,7 +156,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
keepAlive: true,
httpAgentOptions: { keepAliveMsecs: 2000 },
};
- collectorExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorExporter = new OTLPLogExporter(collectorExporterConfig);
logs = [];
logs.push(Object.assign({}, mockedReadableLogRecord));
});
@@ -286,7 +286,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
compression: CompressionAlgorithm.GZIP,
httpAgentOptions: { keepAliveMsecs: 2000 },
};
- collectorExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorExporter = new OTLPLogExporter(collectorExporterConfig);
logs = [];
logs.push(Object.assign({}, mockedReadableLogRecord));
});
@@ -331,7 +331,7 @@ describe('OTLPLogsExporter - node with proto over http', () => {
});
describe('export - real http request destroyed before response received', () => {
- let collectorExporter: OTLPLogsExporter;
+ let collectorExporter: OTLPLogExporter;
let collectorExporterConfig: OTLPExporterNodeConfigBase;
let logs: ReadableLogRecord[];
const server = http.createServer((_, res) => {
@@ -351,7 +351,7 @@ describe('export - real http request destroyed before response received', () =>
url: 'http://localhost:8082',
timeoutMillis: 1,
};
- collectorExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorExporter = new OTLPLogExporter(collectorExporterConfig);
logs = [];
logs.push(Object.assign({}, mockedReadableLogRecord));
@@ -368,7 +368,7 @@ describe('export - real http request destroyed before response received', () =>
url: 'http://localhost:8082',
timeoutMillis: 100,
};
- collectorExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorExporter = new OTLPLogExporter(collectorExporterConfig);
logs = [];
logs.push(Object.assign({}, mockedReadableLogRecord));
@@ -383,7 +383,7 @@ describe('export - real http request destroyed before response received', () =>
});
describe('export - real http request destroyed after response received', () => {
- let collectorExporter: OTLPLogsExporter;
+ let collectorExporter: OTLPLogExporter;
let collectorExporterConfig: OTLPExporterNodeConfigBase;
let logs: ReadableLogRecord[];
@@ -401,7 +401,7 @@ describe('export - real http request destroyed after response received', () => {
url: 'http://localhost:8082',
timeoutMillis: 300,
};
- collectorExporter = new OTLPLogsExporter(collectorExporterConfig);
+ collectorExporter = new OTLPLogExporter(collectorExporterConfig);
logs = [];
logs.push(Object.assign({}, mockedReadableLogRecord));
diff --git a/experimental/packages/exporter-trace-otlp-grpc/package.json b/experimental/packages/exporter-trace-otlp-grpc/package.json
index 46473c9abff..80c2ea3a0c9 100644
--- a/experimental/packages/exporter-trace-otlp-grpc/package.json
+++ b/experimental/packages/exporter-trace-otlp-grpc/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-grpc",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -47,10 +47,10 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.3",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -70,11 +70,11 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-grpc-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-grpc-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-grpc",
"sideEffects": false
diff --git a/experimental/packages/exporter-trace-otlp-http/package.json b/experimental/packages/exporter-trace-otlp-http/package.json
index fc03b1965f1..cfc2522a53c 100644
--- a/experimental/packages/exporter-trace-otlp-http/package.json
+++ b/experimental/packages/exporter-trace-otlp-http/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-http",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Trace Exporter allows user to send collected traces to the OpenTelemetry Collector",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -63,8 +63,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -95,11 +95,11 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-http",
"sideEffects": false
diff --git a/experimental/packages/exporter-trace-otlp-proto/package.json b/experimental/packages/exporter-trace-otlp-proto/package.json
index c187fb9cd7c..935b79963fc 100644
--- a/experimental/packages/exporter-trace-otlp-proto/package.json
+++ b/experimental/packages/exporter-trace-otlp-proto/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-proto",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector using protobuf over HTTP",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -62,8 +62,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -92,12 +92,12 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-proto-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-proto-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-proto",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-browser-detector/package.json b/experimental/packages/opentelemetry-browser-detector/package.json
index 6874a8d98e1..d983979a06e 100644
--- a/experimental/packages/opentelemetry-browser-detector/package.json
+++ b/experimental/packages/opentelemetry-browser-detector/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/opentelemetry-browser-detector",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Resource Detector for Browser",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -53,8 +53,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -82,8 +82,8 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/browser-detector"
}
diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json
index 4b3c0332a14..3c316d301f8 100644
--- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json
+++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-grpc",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Metrics Exporter allows user to send collected metrics to the OpenTelemetry Collector",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -47,9 +47,9 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.3",
- "@opentelemetry/api": "1.4.1",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -69,12 +69,12 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-metrics-otlp-http": "0.41.2",
- "@opentelemetry/otlp-grpc-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-metrics-otlp-http": "0.43.0",
+ "@opentelemetry/otlp-grpc-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json
index 7fe60c0dd6e..8db6655f592 100644
--- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json
+++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-http",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Metrics Exporter allows user to send collected metrics to the OpenTelemetry Collector",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -63,8 +63,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -95,11 +95,11 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-http",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json
index 7582bbe5175..52ce8df0a2c 100644
--- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json
+++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json
@@ -1,20 +1,22 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-proto",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Collector Metrics Exporter allows user to send collected metrics to the OpenTelemetry Collector using protobuf over HTTP",
"main": "build/src/index.js",
+ "module": "build/esm/index.js",
+ "esnext": "build/esnext/index.js",
"types": "build/src/index.d.ts",
"repository": "open-telemetry/opentelemetry-js",
"scripts": {
"prepublishOnly": "npm run compile",
- "compile": "tsc --build",
- "clean": "tsc --build --clean",
+ "compile": "tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
+ "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
"lint": "eslint . --ext .ts",
"lint:fix": "eslint . --ext .ts --fix",
"tdd": "npm run test -- --watch-extensions ts --watch",
- "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'",
+ "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'",
"version": "node ../../../scripts/version-update.js",
- "watch": "tsc -w",
+ "watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
"precompile": "cross-var lerna run version --scope $npm_package_name --include-dependencies",
"prewatch": "npm run precompile",
"peer-api-check": "node ../../../scripts/peer-api-check.js",
@@ -35,6 +37,12 @@
"node": ">=14"
},
"files": [
+ "build/esm/**/*.js",
+ "build/esm/**/*.js.map",
+ "build/esm/**/*.d.ts",
+ "build/esnext/**/*.js",
+ "build/esnext/**/*.js.map",
+ "build/esnext/**/*.d.ts",
"build/src/**/*.js",
"build/src/**/*.js.map",
"build/src/**/*.d.ts",
@@ -47,8 +55,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -67,13 +75,13 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-metrics-otlp-http": "0.41.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
- "@opentelemetry/otlp-proto-exporter-base": "0.41.2",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-metrics-otlp-http": "0.43.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-proto-exporter-base": "0.43.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-proto",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esm.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esm.json
new file mode 100644
index 00000000000..b657f54211b
--- /dev/null
+++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esm.json
@@ -0,0 +1,37 @@
+{
+ "extends": "../../../tsconfig.base.esm.json",
+ "compilerOptions": {
+ "outDir": "build/esm",
+ "rootDir": "src",
+ "tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo"
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ {
+ "path": "../../../api"
+ },
+ {
+ "path": "../../../packages/opentelemetry-core"
+ },
+ {
+ "path": "../../../packages/opentelemetry-resources"
+ },
+ {
+ "path": "../../../packages/sdk-metrics"
+ },
+ {
+ "path": "../opentelemetry-exporter-metrics-otlp-http"
+ },
+ {
+ "path": "../otlp-exporter-base"
+ },
+ {
+ "path": "../otlp-proto-exporter-base"
+ },
+ {
+ "path": "../otlp-transformer"
+ }
+ ]
+}
diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esnext.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esnext.json
new file mode 100644
index 00000000000..31e46faedaf
--- /dev/null
+++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esnext.json
@@ -0,0 +1,37 @@
+{
+ "extends": "../../../tsconfig.base.esnext.json",
+ "compilerOptions": {
+ "outDir": "build/esnext",
+ "rootDir": "src",
+ "tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo"
+ },
+ "include": [
+ "src/**/*.ts"
+ ],
+ "references": [
+ {
+ "path": "../../../api"
+ },
+ {
+ "path": "../../../packages/opentelemetry-core"
+ },
+ {
+ "path": "../../../packages/opentelemetry-resources"
+ },
+ {
+ "path": "../../../packages/sdk-metrics"
+ },
+ {
+ "path": "../opentelemetry-exporter-metrics-otlp-http"
+ },
+ {
+ "path": "../otlp-exporter-base"
+ },
+ {
+ "path": "../otlp-proto-exporter-base"
+ },
+ {
+ "path": "../otlp-transformer"
+ }
+ ]
+}
diff --git a/experimental/packages/opentelemetry-exporter-prometheus/package.json b/experimental/packages/opentelemetry-exporter-prometheus/package.json
index b81d783d07e..5b55ececd8f 100644
--- a/experimental/packages/opentelemetry-exporter-prometheus/package.json
+++ b/experimental/packages/opentelemetry-exporter-prometheus/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-prometheus",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry Exporter Prometheus provides a metrics endpoint for Prometheus",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -43,8 +43,8 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/semantic-conventions": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -61,9 +61,9 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/package.json b/experimental/packages/opentelemetry-instrumentation-fetch/package.json
index 920d0a91b4d..948b357d5a1 100644
--- a/experimental/packages/opentelemetry-instrumentation-fetch/package.json
+++ b/experimental/packages/opentelemetry-instrumentation-fetch/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-fetch",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry fetch automatic instrumentation package.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -54,11 +54,11 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-zone": "1.15.2",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-zone": "1.17.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -88,10 +88,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/sdk-trace-web": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/sdk-trace-web": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-fetch",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/package.json b/experimental/packages/opentelemetry-instrumentation-grpc/package.json
index b85656844fe..fbf07ae7161 100644
--- a/experimental/packages/opentelemetry-instrumentation-grpc/package.json
+++ b/experimental/packages/opentelemetry-instrumentation-grpc/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-grpc",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry grpc automatic instrumentation package.",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -49,17 +49,17 @@
"@bufbuild/buf": "1.21.0-1",
"@grpc/grpc-js": "^1.7.1",
"@grpc/proto-loader": "^0.7.3",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-async-hooks": "1.15.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
"@protobuf-ts/grpc-transport": "2.9.1",
"@protobuf-ts/runtime": "2.9.1",
"@protobuf-ts/runtime-rpc": "2.9.1",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
- "@types/semver": "7.5.1",
+ "@types/semver": "7.5.2",
"@types/sinon": "10.0.16",
"codecov": "3.8.3",
"cross-var": "1.1.0",
@@ -75,8 +75,8 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-grpc",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-instrumentation-http/package.json b/experimental/packages/opentelemetry-instrumentation-http/package.json
index 6036fa0c18a..aebe37781de 100644
--- a/experimental/packages/opentelemetry-instrumentation-http/package.json
+++ b/experimental/packages/opentelemetry-instrumentation-http/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-http",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry http/https automatic instrumentation package.",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -45,15 +45,15 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-async-hooks": "1.15.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/request-promise-native": "1.0.18",
- "@types/semver": "7.5.1",
+ "@types/semver": "7.5.2",
"@types/sinon": "10.0.16",
"@types/superagent": "4.1.18",
"axios": "1.5.0",
@@ -74,9 +74,9 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/semantic-conventions": "1.15.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
"semver": "^7.5.2"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http",
diff --git a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json
index 5e81576c2cf..511f4fe3e00 100644
--- a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json
+++ b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-xml-http-request",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry XMLHttpRequest automatic instrumentation package.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -54,11 +54,11 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-zone": "1.15.2",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-zone": "1.17.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -88,10 +88,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/sdk-trace-web": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/sdk-trace-web": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-xml-http-request",
"sideEffects": false
diff --git a/experimental/packages/opentelemetry-instrumentation/package.json b/experimental/packages/opentelemetry-instrumentation/package.json
index 37f839ea588..ca9e9df4e8f 100644
--- a/experimental/packages/opentelemetry-instrumentation/package.json
+++ b/experimental/packages/opentelemetry-instrumentation/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Base class for node which OpenTelemetry instrumentation modules extend",
"author": "OpenTelemetry Authors",
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation",
@@ -81,12 +81,12 @@
"@opentelemetry/api": "^1.3.0"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/sdk-metrics": "1.15.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
- "@types/semver": "7.5.1",
+ "@types/semver": "7.5.2",
"@types/sinon": "10.0.16",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
diff --git a/experimental/packages/opentelemetry-sdk-node/README.md b/experimental/packages/opentelemetry-sdk-node/README.md
index 2e093089583..b5086b86683 100644
--- a/experimental/packages/opentelemetry-sdk-node/README.md
+++ b/experimental/packages/opentelemetry-sdk-node/README.md
@@ -36,6 +36,7 @@ Before any other module in your application is loaded, you must initialize the S
If you fail to initialize the SDK or initialize it too late, no-op implementations will be provided to any library which acquires a tracer or meter from the API.
This example uses Jaeger and Prometheus, but exporters exist for [other tracing backends][other-tracing-backends].
+As shown in the installation instructions, exporters passed to the SDK must be installed alongside `@opentelemetry/sdk-node`.
```javascript
const opentelemetry = require("@opentelemetry/sdk-node");
diff --git a/experimental/packages/opentelemetry-sdk-node/package.json b/experimental/packages/opentelemetry-sdk-node/package.json
index 1b705780776..8517a076172 100644
--- a/experimental/packages/opentelemetry-sdk-node/package.json
+++ b/experimental/packages/opentelemetry-sdk-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-node",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry SDK for Node.js",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -18,7 +18,7 @@
"precompile": "cross-var lerna run version --scope $npm_package_name --include-dependencies",
"prewatch": "npm run precompile",
"peer-api-check": "node ../../../scripts/peer-api-check.js",
- "postinstall": "node -e \"console.log(\\\"\\x1b[95m%s\\x1b[0m\\\", \\\"@opentelemetry/sdk-node - warning: Starting with 0.43.0 '@opentelemetry/exporter-jaeger' will no longer be automatically installed by this package. To continue using '@opentelemetry/exporter-jaeger', please install it manually.\\n(NOTE: '@opentelemetry/exporter-jaeger' is deprecated, consider switching to one of the alternatives described in https://www.npmjs.com/package/@opentelemetry/exporter-jaeger)\\\");\""
+ "postinstall": "node -e \"console.log(\\\"\\x1b[95m%s\\x1b[0m\\\", \\\"@opentelemetry/sdk-node - warning: Starting with 0.44.0 '@opentelemetry/exporter-jaeger' will no longer be automatically installed by this package. To continue using '@opentelemetry/exporter-jaeger', please install it manually.\\n(NOTE: '@opentelemetry/exporter-jaeger' is deprecated, consider switching to one of the alternatives described in https://www.npmjs.com/package/@opentelemetry/exporter-jaeger)\\\");\""
},
"keywords": [
"opentelemetry",
@@ -45,30 +45,31 @@
"access": "public"
},
"dependencies": {
- "@opentelemetry/api-logs": "0.41.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-jaeger": "1.15.2",
- "@opentelemetry/exporter-trace-otlp-grpc": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-http": "0.41.2",
- "@opentelemetry/exporter-trace-otlp-proto": "0.41.2",
- "@opentelemetry/exporter-zipkin": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-logs": "0.41.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-node": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/api-logs": "0.43.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-jaeger": "1.17.0",
+ "@opentelemetry/exporter-trace-otlp-grpc": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-trace-otlp-proto": "0.43.0",
+ "@opentelemetry/exporter-zipkin": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-logs": "0.43.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-node": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.3.0 <1.5.0"
+ "@opentelemetry/api": ">=1.3.0 <1.7.0"
},
"devDependencies": {
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-async-hooks": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/exporter-jaeger": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
- "@types/semver": "7.5.1",
+ "@types/semver": "7.5.2",
"@types/sinon": "10.0.16",
"codecov": "3.8.3",
"cross-var": "1.1.0",
diff --git a/experimental/packages/otlp-exporter-base/package.json b/experimental/packages/otlp-exporter-base/package.json
index 623a68698c0..79813658421 100644
--- a/experimental/packages/otlp-exporter-base/package.json
+++ b/experimental/packages/otlp-exporter-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-exporter-base",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry OTLP Exporter base (for internal use only)",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -61,11 +61,11 @@
"access": "public"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2"
+ "@opentelemetry/core": "1.17.0"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
diff --git a/experimental/packages/otlp-grpc-exporter-base/package.json b/experimental/packages/otlp-grpc-exporter-base/package.json
index f91d29e13d4..cfa48c56e85 100644
--- a/experimental/packages/otlp-grpc-exporter-base/package.json
+++ b/experimental/packages/otlp-grpc-exporter-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-grpc-exporter-base",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry OTLP-gRPC Exporter base (for internal use only)",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -48,11 +48,11 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/otlp-transformer": "0.41.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/otlp-transformer": "0.43.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -73,8 +73,8 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
"protobufjs": "^7.2.3"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-grpc-exporter-base",
diff --git a/experimental/packages/otlp-proto-exporter-base/package.json b/experimental/packages/otlp-proto-exporter-base/package.json
index b8b6f6ae1b6..d350c263f6d 100644
--- a/experimental/packages/otlp-proto-exporter-base/package.json
+++ b/experimental/packages/otlp-proto-exporter-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-proto-exporter-base",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenTelemetry OTLP-HTTP-protobuf Exporter base (for internal use only)",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -59,8 +59,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": "1.4.1",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -79,8 +79,8 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/otlp-exporter-base": "0.41.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/otlp-exporter-base": "0.43.0",
"protobufjs": "^7.2.3"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-proto-exporter-base",
diff --git a/experimental/packages/otlp-transformer/package.json b/experimental/packages/otlp-transformer/package.json
index f5b1a59469d..9e138a5cd24 100644
--- a/experimental/packages/otlp-transformer/package.json
+++ b/experimental/packages/otlp-transformer/package.json
@@ -4,7 +4,7 @@
"publishConfig": {
"access": "public"
},
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "Transform OpenTelemetry SDK data into OTLP",
"module": "build/esm/index.js",
"esnext": "build/esnext/index.js",
@@ -54,10 +54,10 @@
"README.md"
],
"peerDependencies": {
- "@opentelemetry/api": ">=1.3.0 <1.5.0"
+ "@opentelemetry/api": ">=1.3.0 <1.7.0"
},
"devDependencies": {
- "@opentelemetry/api": "1.4.1",
+ "@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.1",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
@@ -78,12 +78,12 @@
"webpack": "4.46.0"
},
"dependencies": {
- "@opentelemetry/api-logs": "0.41.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-logs": "0.41.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2"
+ "@opentelemetry/api-logs": "0.43.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-logs": "0.43.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-transformer",
"sideEffects": false
diff --git a/experimental/packages/sdk-logs/package.json b/experimental/packages/sdk-logs/package.json
index 1689f7ccb26..f35a643c077 100644
--- a/experimental/packages/sdk-logs/package.json
+++ b/experimental/packages/sdk-logs/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-logs",
- "version": "0.41.2",
+ "version": "0.43.0",
"publishConfig": {
"access": "public"
},
@@ -68,13 +68,13 @@
],
"sideEffects": false,
"peerDependencies": {
- "@opentelemetry/api": ">=1.4.0 <1.5.0",
+ "@opentelemetry/api": ">=1.4.0 <1.7.0",
"@opentelemetry/api-logs": ">=0.39.1"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": ">=1.4.0 <1.5.0",
- "@opentelemetry/api-logs": "0.41.2",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": ">=1.4.0 <1.7.0",
+ "@opentelemetry/api-logs": "0.43.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -99,7 +99,7 @@
"webpack-merge": "5.9.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0"
}
}
diff --git a/experimental/packages/shim-opencensus/README.md b/experimental/packages/shim-opencensus/README.md
index e79cfc0f439..66e4d6e3d75 100644
--- a/experimental/packages/shim-opencensus/README.md
+++ b/experimental/packages/shim-opencensus/README.md
@@ -13,11 +13,11 @@ More details are available in the [OpenCensus Compatibility Specification](https
npm install --save @opentelemetry/shim-opencensus
```
-## Usage
+## Tracing usage
### Installing the shim's require-in-the-middle hook
-This is the recommended way to use the shim.
+This is the recommended way to use the shim for tracing.
This package provides a `require-in-the-middle` hook which replaces OpenCensus's `CoreTracer`
class with a shim implementation that writes to the OpenTelemetry API. This will cause all
@@ -72,6 +72,25 @@ tracer.startRootSpan({name: 'main'}, rootSpan => {
});
```
+## Metrics usage
+
+OpenCensus metrics can be collected and sent to an OpenTelemetry exporter by providing the
+`OpenCensusMetricProducer` to your `MetricReader`. For example, to export OpenCensus metrics
+through the OpenTelemetry Prometheus exporter:
+
+```js
+meterProvider.addMetricReader(
+ new PrometheusExporter({
+ metricProducers: [
+ new OpenCensusMetricProducer({
+ openCensusMetricProducerManager:
+ oc.Metrics.getMetricProducerManager(),
+ }),
+ ],
+ })
+);
+```
+
## Example
See [examples/opencensus-shim](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/examples/opencensus-shim) for a short example.
diff --git a/experimental/packages/shim-opencensus/package.json b/experimental/packages/shim-opencensus/package.json
index 77693eb533a..2e24690be8c 100644
--- a/experimental/packages/shim-opencensus/package.json
+++ b/experimental/packages/shim-opencensus/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/shim-opencensus",
- "version": "0.41.2",
+ "version": "0.43.0",
"description": "OpenCensus to OpenTelemetry shim",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -49,9 +49,9 @@
},
"devDependencies": {
"@opencensus/core": "0.1.0",
- "@opentelemetry/api": "1.4.1",
- "@opentelemetry/context-async-hooks": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@opentelemetry/api": "1.6.0",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -69,7 +69,9 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
"require-in-the-middle": "^7.1.1",
"semver": "^7.5.2"
},
diff --git a/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts b/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts
new file mode 100644
index 00000000000..04d4a067384
--- /dev/null
+++ b/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2018, OpenCensus Authors
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as oc from '@opencensus/core';
+import { Resource } from '@opentelemetry/resources';
+import {
+ CollectionResult,
+ MetricData,
+ MetricProducer,
+ ScopeMetrics,
+} from '@opentelemetry/sdk-metrics';
+import { mapOcMetric } from './metric-transform';
+import { VERSION } from './version';
+
+const SCOPE = {
+ name: '@opentelemetry/shim-opencensus',
+ version: VERSION,
+} as const;
+
+interface OpenCensusMetricProducerOptions {
+ /**
+ * An instance of OpenCensus MetricProducerManager. If not provided,
+ * `oc.Metrics.getMetricProducerManager()` will be used.
+ */
+ openCensusMetricProducerManager?: oc.MetricProducerManager;
+}
+
+/**
+ * A {@link MetricProducer} which collects metrics from OpenCensus. Provide an instance to your
+ * {@link MetricReader} when you create it to include all OpenCensus metrics in the collection
+ * result:
+ *
+ * @example
+ * ```
+ * const meterProvider = new MeterProvider();
+ * const reader = new PeriodicExportingMetricReader({
+ * metricProducers: [new OpenCensusMetricProducer()],
+ * exporter: exporter,
+ * });
+ * meterProvider.addMetricReader(reader);
+ * ```
+ */
+export class OpenCensusMetricProducer implements MetricProducer {
+ private _openCensusMetricProducerManager: oc.MetricProducerManager;
+
+ constructor(options?: OpenCensusMetricProducerOptions) {
+ this._openCensusMetricProducerManager =
+ options?.openCensusMetricProducerManager ??
+ oc.Metrics.getMetricProducerManager();
+ }
+
+ async collect(): Promise {
+ const metrics = await this._collectOpenCensus();
+ const scopeMetrics: ScopeMetrics[] =
+ metrics.length === 0
+ ? []
+ : [
+ {
+ scope: SCOPE,
+ metrics,
+ },
+ ];
+
+ return {
+ errors: [],
+ resourceMetrics: {
+ // Resource is ignored by the SDK, it just uses the SDK's resource
+ resource: Resource.EMPTY,
+ scopeMetrics,
+ },
+ };
+ }
+
+ private async _collectOpenCensus(): Promise {
+ const metrics: MetricData[] = [];
+
+ // The use of oc.Metrics.getMetricProducerManager() was adapted from
+ // https://github.com/census-instrumentation/opencensus-node/blob/d46c8891b15783803d724b717db9a8c22cb73d6a/packages/opencensus-exporter-stackdriver/src/stackdriver-monitoring.ts#L122
+ for (const metricProducer of this._openCensusMetricProducerManager.getAllMetricProducer()) {
+ for (const metric of metricProducer.getMetrics()) {
+ const metricData = mapOcMetric(metric);
+ if (metricData !== null) {
+ metrics.push(metricData);
+ }
+ }
+ }
+
+ return metrics;
+ }
+}
diff --git a/experimental/packages/shim-opencensus/src/ShimSpan.ts b/experimental/packages/shim-opencensus/src/ShimSpan.ts
index 498c73e5e71..e4eaf47a2d3 100644
--- a/experimental/packages/shim-opencensus/src/ShimSpan.ts
+++ b/experimental/packages/shim-opencensus/src/ShimSpan.ts
@@ -17,7 +17,7 @@
import * as oc from '@opencensus/core';
import { ShimTracer } from './ShimTracer';
import { AttributeValue, Span, SpanStatusCode, diag } from '@opentelemetry/api';
-import { mapMessageEvent, reverseMapSpanContext } from './transform';
+import { mapMessageEvent, reverseMapSpanContext } from './trace-transform';
// Copied from
// https://github.com/census-instrumentation/opencensus-node/blob/v0.1.0/packages/opencensus-core/src/trace/model/span.ts#L61
diff --git a/experimental/packages/shim-opencensus/src/ShimTracer.ts b/experimental/packages/shim-opencensus/src/ShimTracer.ts
index f5e8164e3c6..c276b99e53e 100644
--- a/experimental/packages/shim-opencensus/src/ShimTracer.ts
+++ b/experimental/packages/shim-opencensus/src/ShimTracer.ts
@@ -26,7 +26,7 @@ import {
Tracer,
} from '@opentelemetry/api';
import { DEFAULT_SPAN_NAME, ShimSpan } from './ShimSpan';
-import { mapSpanContext, mapSpanKind } from './transform';
+import { mapSpanContext, mapSpanKind } from './trace-transform';
import { shimPropagation } from './propagation';
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
diff --git a/experimental/packages/shim-opencensus/src/index.ts b/experimental/packages/shim-opencensus/src/index.ts
index 5df2f6c315e..8889608ec39 100644
--- a/experimental/packages/shim-opencensus/src/index.ts
+++ b/experimental/packages/shim-opencensus/src/index.ts
@@ -15,4 +15,5 @@
*/
export { ShimTracer } from './ShimTracer';
+export { OpenCensusMetricProducer } from './OpenCensusMetricProducer';
export { installShim, uninstallShim } from './shim';
diff --git a/experimental/packages/shim-opencensus/src/metric-transform.ts b/experimental/packages/shim-opencensus/src/metric-transform.ts
new file mode 100644
index 00000000000..bc136d0ed2b
--- /dev/null
+++ b/experimental/packages/shim-opencensus/src/metric-transform.ts
@@ -0,0 +1,211 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as oc from '@opencensus/core';
+import { Attributes, HrTime, ValueType, diag } from '@opentelemetry/api';
+import {
+ AggregationTemporality,
+ DataPoint,
+ DataPointType,
+ GaugeMetricData,
+ HistogramMetricData,
+ InstrumentType,
+ MetricData,
+ SumMetricData,
+} from '@opentelemetry/sdk-metrics';
+
+type BaseMetric = Omit;
+interface MappedType {
+ type: InstrumentType;
+ valueType: ValueType;
+ dataPointType:
+ | DataPointType.GAUGE
+ | DataPointType.SUM
+ | DataPointType.HISTOGRAM;
+}
+const ZEROED_HRTIME: HrTime = [0, 0];
+
+export function mapOcMetric(metric: oc.Metric): MetricData | null {
+ const { description, name, unit, type } = metric.descriptor;
+ const mappedType = mapOcMetricDescriptorType(type);
+ if (mappedType === null) {
+ return null;
+ }
+
+ const baseMetric: BaseMetric = {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ descriptor: {
+ description,
+ name,
+ unit,
+ type: mappedType.type,
+ valueType: mappedType.valueType,
+ },
+ };
+
+ switch (mappedType.dataPointType) {
+ case DataPointType.GAUGE:
+ return gauge(metric, mappedType.dataPointType, baseMetric);
+ case DataPointType.SUM:
+ return sum(metric, mappedType.dataPointType, baseMetric);
+ case DataPointType.HISTOGRAM:
+ return histogram(metric, mappedType.dataPointType, baseMetric);
+ }
+}
+
+function mapOcMetricDescriptorType(
+ type: oc.MetricDescriptorType
+): MappedType | null {
+ switch (type) {
+ case oc.MetricDescriptorType.GAUGE_INT64:
+ return {
+ type: InstrumentType.OBSERVABLE_GAUGE,
+ valueType: ValueType.INT,
+ dataPointType: DataPointType.GAUGE,
+ };
+ case oc.MetricDescriptorType.GAUGE_DOUBLE:
+ return {
+ type: InstrumentType.OBSERVABLE_GAUGE,
+ valueType: ValueType.DOUBLE,
+ dataPointType: DataPointType.GAUGE,
+ };
+
+ case oc.MetricDescriptorType.CUMULATIVE_INT64:
+ return {
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.INT,
+ dataPointType: DataPointType.SUM,
+ };
+ case oc.MetricDescriptorType.CUMULATIVE_DOUBLE:
+ return {
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ dataPointType: DataPointType.SUM,
+ };
+
+ case oc.MetricDescriptorType.CUMULATIVE_DISTRIBUTION:
+ return {
+ type: InstrumentType.HISTOGRAM,
+ valueType: ValueType.DOUBLE,
+ dataPointType: DataPointType.HISTOGRAM,
+ };
+
+ case oc.MetricDescriptorType.SUMMARY:
+ case oc.MetricDescriptorType.GAUGE_DISTRIBUTION:
+ case oc.MetricDescriptorType.UNSPECIFIED:
+ diag.warn(
+ 'Got unsupported metric MetricDescriptorType from OpenCensus: %s',
+ type
+ );
+ return null;
+ }
+}
+
+function gauge(
+ metric: oc.Metric,
+ dataPointType: DataPointType.GAUGE,
+ baseMetric: BaseMetric
+): GaugeMetricData {
+ return {
+ ...baseMetric,
+ dataPoints: dataPoints(metric, value => value as number),
+ dataPointType,
+ };
+}
+
+function sum(
+ metric: oc.Metric,
+ dataPointType: DataPointType.SUM,
+ baseMetric: BaseMetric
+): SumMetricData {
+ return {
+ ...baseMetric,
+ dataPoints: dataPoints(metric, value => value as number),
+ isMonotonic: true,
+ dataPointType,
+ };
+}
+
+function histogram(
+ metric: oc.Metric,
+ dataPointType: DataPointType.HISTOGRAM,
+ baseMetric: BaseMetric
+): HistogramMetricData {
+ return {
+ ...baseMetric,
+ dataPoints: dataPoints(metric, value => {
+ const {
+ bucketOptions: {
+ explicit: { bounds },
+ },
+ buckets,
+ count,
+ sum: distSum,
+ } = value as oc.DistributionValue;
+
+ return {
+ buckets: {
+ boundaries: bounds,
+ counts: buckets.map(bucket => bucket.count),
+ },
+ count,
+ sum: distSum,
+ };
+ }),
+ dataPointType,
+ };
+}
+
+function dataPoints(
+ metric: oc.Metric,
+ valueMapper: (value: oc.TimeSeriesPoint['value']) => T
+): DataPoint[] {
+ return metric.timeseries.flatMap(ts => {
+ const attributes = zipOcLabels(metric.descriptor.labelKeys, ts.labelValues);
+
+ // use zeroed hrTime if it is undefined, which probably shouldn't happen
+ const startTime = ocTimestampToHrTime(ts.startTimestamp) ?? ZEROED_HRTIME;
+
+ // points should be an array with a single value, so this will return a single point per
+ // attribute set.
+ return ts.points.map(
+ (point): DataPoint => ({
+ startTime,
+ attributes,
+ value: valueMapper(point.value),
+ endTime: ocTimestampToHrTime(point.timestamp) ?? ZEROED_HRTIME,
+ })
+ );
+ });
+}
+
+function ocTimestampToHrTime(ts: oc.Timestamp | undefined): HrTime | null {
+ if (ts === undefined || ts.seconds === null) {
+ return null;
+ }
+ return [ts.seconds, ts.nanos ?? 0];
+}
+
+function zipOcLabels(
+ labelKeys: oc.LabelKey[],
+ labelValues: oc.LabelValue[]
+): Attributes {
+ const attributes: Attributes = {};
+ for (let i = 0; i < labelKeys.length; i++) {
+ attributes[labelKeys[i].key] = labelValues[i].value ?? '';
+ }
+ return attributes;
+}
diff --git a/experimental/packages/shim-opencensus/src/propagation.ts b/experimental/packages/shim-opencensus/src/propagation.ts
index deb2509fa7b..e0045fe7d95 100644
--- a/experimental/packages/shim-opencensus/src/propagation.ts
+++ b/experimental/packages/shim-opencensus/src/propagation.ts
@@ -23,7 +23,7 @@ import {
TextMapGetter,
TextMapSetter,
} from '@opentelemetry/api';
-import { mapSpanContext, reverseMapSpanContext } from './transform';
+import { mapSpanContext, reverseMapSpanContext } from './trace-transform';
class Getter implements TextMapGetter {
constructor(private ocGetter: oc.HeaderGetter) {}
diff --git a/experimental/packages/shim-opencensus/src/transform.ts b/experimental/packages/shim-opencensus/src/trace-transform.ts
similarity index 100%
rename from experimental/packages/shim-opencensus/src/transform.ts
rename to experimental/packages/shim-opencensus/src/trace-transform.ts
diff --git a/experimental/packages/shim-opencensus/test/OpenCensusMetricProducer.test.ts b/experimental/packages/shim-opencensus/test/OpenCensusMetricProducer.test.ts
new file mode 100644
index 00000000000..15b9cc1a6be
--- /dev/null
+++ b/experimental/packages/shim-opencensus/test/OpenCensusMetricProducer.test.ts
@@ -0,0 +1,118 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as oc from '@opencensus/core';
+import { ValueType } from '@opentelemetry/api';
+import { Resource } from '@opentelemetry/resources';
+import {
+ AggregationTemporality,
+ DataPointType,
+ SumMetricData,
+} from '@opentelemetry/sdk-metrics';
+import * as assert from 'assert';
+import * as sinon from 'sinon';
+import { OpenCensusMetricProducer } from '../src/OpenCensusMetricProducer';
+
+describe('OpenCensusMetricProducer', () => {
+ beforeEach(() => {
+ oc.globalStats.clear();
+ sinon.useFakeTimers();
+ });
+
+ afterEach(() => {
+ sinon.restore();
+ });
+
+ // Since the resource is replaced by the SDK anyway
+ it('should return an empty Resource', async () => {
+ const producer = new OpenCensusMetricProducer();
+ const resourceMetrics = await producer.collect();
+
+ assert.deepStrictEqual(
+ resourceMetrics.resourceMetrics.resource,
+ Resource.EMPTY
+ );
+ });
+
+ it('should return no errors when no metrics are collected from OpenCensus', async () => {
+ const producer = new OpenCensusMetricProducer();
+ const resourceMetrics = await producer.collect();
+ assert.strictEqual(resourceMetrics.errors.length, 0);
+ });
+
+ it('should elide the scope when no metrics are collected from OpenCensus', async () => {
+ // No OpenCensus setup so won't produce any metrics
+ const producer = new OpenCensusMetricProducer();
+ const resourceMetrics = await producer.collect();
+ assert.strictEqual(resourceMetrics.resourceMetrics.scopeMetrics.length, 0);
+ });
+
+ it('should include OpenCensus metrics', async () => {
+ // Initialize OC metrics with one counter, adapted from
+ // https://opencensus.io/quickstart/nodejs/metrics/
+ const measure = oc.globalStats.createMeasureDouble(
+ 'measure',
+ oc.MeasureUnit.MS
+ );
+ const tagKey = { name: 'label1' };
+ oc.globalStats.registerView(
+ oc.globalStats.createView(
+ 'measure',
+ measure,
+ oc.AggregationType.SUM,
+ [tagKey],
+ 'Test OC description'
+ )
+ );
+
+ const tagMap = new oc.TagMap();
+ tagMap.set(tagKey, { value: 'tagvalue' });
+ oc.globalStats.record([{ measure, value: 125 }], tagMap);
+
+ const producer = new OpenCensusMetricProducer();
+ const resourceMetrics = await producer.collect();
+
+ assert.strictEqual(resourceMetrics.errors.length, 0);
+ assert.strictEqual(resourceMetrics.resourceMetrics.scopeMetrics.length, 1);
+ assert.strictEqual(
+ resourceMetrics.resourceMetrics.scopeMetrics[0].scope.name,
+ '@opentelemetry/shim-opencensus'
+ );
+ assert.strictEqual(
+ resourceMetrics.resourceMetrics.scopeMetrics[0].metrics.length,
+ 1
+ );
+ const ocMetric = resourceMetrics.resourceMetrics.scopeMetrics[0]
+ .metrics[0] as SumMetricData;
+ assert.deepStrictEqual(ocMetric.descriptor, {
+ description: 'Test OC description',
+ name: 'measure',
+ type: 'COUNTER',
+ unit: 'ms',
+ valueType: ValueType.DOUBLE,
+ });
+ assert.strictEqual(ocMetric.dataPoints[0].value, 125);
+ assert.deepStrictEqual(ocMetric.dataPoints[0].attributes, {
+ label1: 'tagvalue',
+ });
+ assert.strictEqual(ocMetric.dataPointType, DataPointType.SUM);
+ assert.strictEqual(ocMetric.isMonotonic, true);
+ assert.strictEqual(
+ ocMetric.aggregationTemporality,
+ AggregationTemporality.CUMULATIVE
+ );
+ });
+});
diff --git a/experimental/packages/shim-opencensus/test/metric-transform.test.ts b/experimental/packages/shim-opencensus/test/metric-transform.test.ts
new file mode 100644
index 00000000000..289fbefd0ce
--- /dev/null
+++ b/experimental/packages/shim-opencensus/test/metric-transform.test.ts
@@ -0,0 +1,321 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { mapOcMetric } from '../src/metric-transform';
+
+import * as oc from '@opencensus/core';
+import { ValueType } from '@opentelemetry/api';
+import {
+ AggregationTemporality,
+ DataPointType,
+ GaugeMetricData,
+ HistogramMetricData,
+ InstrumentType,
+ SumMetricData,
+} from '@opentelemetry/sdk-metrics';
+import * as assert from 'assert';
+
+describe('metric-transform', () => {
+ it('should map OpenCensus CUMULATIVE_INT64 to Sum', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.CUMULATIVE_INT64,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [{ timestamp: { seconds: 20, nanos: 20 }, value: 5 }],
+ },
+ ],
+ });
+
+ assert.deepStrictEqual(metricData, {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ dataPointType: DataPointType.SUM,
+ dataPoints: [
+ {
+ attributes: { key1: 'value1', key2: 'value2' },
+ endTime: [20, 20],
+ startTime: [10, 10],
+ value: 5,
+ },
+ ],
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: InstrumentType.COUNTER,
+ unit: 'ocUnit',
+ valueType: ValueType.INT,
+ },
+ isMonotonic: true,
+ } as SumMetricData);
+ });
+
+ it('should map OpenCensus CUMULATIVE_DOUBLE to Sum', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.CUMULATIVE_DOUBLE,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [{ timestamp: { seconds: 20, nanos: 20 }, value: 5.5 }],
+ },
+ ],
+ });
+
+ assert.deepStrictEqual(metricData, {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ dataPointType: DataPointType.SUM,
+ dataPoints: [
+ {
+ attributes: { key1: 'value1', key2: 'value2' },
+ endTime: [20, 20],
+ startTime: [10, 10],
+ value: 5.5,
+ },
+ ],
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: InstrumentType.COUNTER,
+ unit: 'ocUnit',
+ valueType: ValueType.DOUBLE,
+ },
+ isMonotonic: true,
+ } as SumMetricData);
+ });
+
+ it('should map OpenCensus CUMULATIVE_DISTRIBUTION to Histogram', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.CUMULATIVE_DISTRIBUTION,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [
+ {
+ timestamp: { seconds: 20, nanos: 20 },
+ value: {
+ bucketOptions: {
+ explicit: {
+ bounds: [1, 10, 100],
+ },
+ },
+ buckets: [
+ { count: 0 },
+ { count: 1 },
+ { count: 2 },
+ { count: 3 },
+ ],
+ count: 6,
+ sum: 121,
+ sumOfSquaredDeviation: 4,
+ },
+ },
+ ],
+ },
+ ],
+ });
+
+ assert.deepStrictEqual(metricData, {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ dataPointType: DataPointType.HISTOGRAM,
+ dataPoints: [
+ {
+ attributes: { key1: 'value1', key2: 'value2' },
+ endTime: [20, 20],
+ startTime: [10, 10],
+ value: {
+ buckets: {
+ boundaries: [1, 10, 100],
+ counts: [0, 1, 2, 3],
+ },
+ count: 6,
+ sum: 121,
+ },
+ },
+ ],
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: InstrumentType.HISTOGRAM,
+ unit: 'ocUnit',
+ valueType: ValueType.DOUBLE,
+ },
+ } as HistogramMetricData);
+ });
+
+ it('should map OpenCensus GAUGE_INT64 to Gauge', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.GAUGE_INT64,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [{ timestamp: { seconds: 20, nanos: 20 }, value: 5 }],
+ },
+ ],
+ });
+
+ assert.deepStrictEqual(metricData, {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ dataPointType: DataPointType.GAUGE,
+ dataPoints: [
+ {
+ attributes: { key1: 'value1', key2: 'value2' },
+ endTime: [20, 20],
+ startTime: [10, 10],
+ value: 5,
+ },
+ ],
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: InstrumentType.OBSERVABLE_GAUGE,
+ unit: 'ocUnit',
+ valueType: ValueType.INT,
+ },
+ } as GaugeMetricData);
+ });
+
+ it('should map OpenCensus GAUGE_DOUBLE to Gauge', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.GAUGE_DOUBLE,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [{ timestamp: { seconds: 20, nanos: 20 }, value: 5.5 }],
+ },
+ ],
+ });
+
+ assert.deepStrictEqual(metricData, {
+ aggregationTemporality: AggregationTemporality.CUMULATIVE,
+ dataPointType: DataPointType.GAUGE,
+ dataPoints: [
+ {
+ attributes: { key1: 'value1', key2: 'value2' },
+ endTime: [20, 20],
+ startTime: [10, 10],
+ value: 5.5,
+ },
+ ],
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: InstrumentType.OBSERVABLE_GAUGE,
+ unit: 'ocUnit',
+ valueType: ValueType.DOUBLE,
+ },
+ } as GaugeMetricData);
+ });
+
+ it('should drop unsupported OpenCensus GAUGE_DISTRIBUTION', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.GAUGE_DISTRIBUTION,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [{ timestamp: { seconds: 20, nanos: 20 }, value: 5 }],
+ },
+ ],
+ });
+ assert.deepStrictEqual(metricData, null);
+ });
+
+ it('should drop unsupported OpenCensus SUMMARY', () => {
+ const metricData = mapOcMetric({
+ descriptor: {
+ description: 'ocDescription',
+ name: 'ocMetricName',
+ type: oc.MetricDescriptorType.SUMMARY,
+ unit: 'ocUnit',
+ labelKeys: [
+ { key: 'key1', description: '' },
+ { key: 'key2', description: '' },
+ ],
+ },
+ timeseries: [
+ {
+ startTimestamp: { seconds: 10, nanos: 10 },
+ labelValues: [{ value: 'value1' }, { value: 'value2' }],
+ points: [
+ {
+ timestamp: { seconds: 20, nanos: 20 },
+ value: { count: 5, sum: 10 },
+ },
+ ],
+ },
+ ],
+ });
+ assert.deepStrictEqual(metricData, null);
+ });
+});
diff --git a/experimental/packages/shim-opencensus/test/transform.test.ts b/experimental/packages/shim-opencensus/test/trace-transform.test.ts
similarity index 98%
rename from experimental/packages/shim-opencensus/test/transform.test.ts
rename to experimental/packages/shim-opencensus/test/trace-transform.test.ts
index 9a7f90cda05..6aacd5e951d 100644
--- a/experimental/packages/shim-opencensus/test/transform.test.ts
+++ b/experimental/packages/shim-opencensus/test/trace-transform.test.ts
@@ -19,14 +19,14 @@ import {
mapSpanContext,
mapSpanKind,
reverseMapSpanContext,
-} from '../src/transform';
+} from '../src/trace-transform';
import * as oc from '@opencensus/core';
import { SpanKind } from '@opentelemetry/api';
import { TraceState } from '@opentelemetry/core';
import * as assert from 'assert';
-describe('transform', () => {
+describe('trace-transform', () => {
describe('mapSpanKind', () => {
it('should return undefined with undefined input', () => {
assert.strictEqual(mapSpanKind(undefined), undefined);
diff --git a/experimental/packages/shim-opencensus/tsconfig.json b/experimental/packages/shim-opencensus/tsconfig.json
index 91cebb5ad54..145dd31760d 100644
--- a/experimental/packages/shim-opencensus/tsconfig.json
+++ b/experimental/packages/shim-opencensus/tsconfig.json
@@ -18,8 +18,14 @@
{
"path": "../../../packages/opentelemetry-core"
},
+ {
+ "path": "../../../packages/opentelemetry-resources"
+ },
{
"path": "../../../packages/opentelemetry-sdk-trace-base"
+ },
+ {
+ "path": "../../../packages/sdk-metrics"
}
]
}
diff --git a/integration-tests/propagation-validation-server/package.json b/integration-tests/propagation-validation-server/package.json
index 2e52beae0af..e54a18825cb 100644
--- a/integration-tests/propagation-validation-server/package.json
+++ b/integration-tests/propagation-validation-server/package.json
@@ -1,6 +1,6 @@
{
"name": "propagation-validation-server",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "server for w3c tests",
"main": "validation_server.js",
"private": true,
@@ -12,9 +12,9 @@
},
"dependencies": {
"@opentelemetry/api": "^1.0.0",
- "@opentelemetry/context-async-hooks": "1.15.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"axios": "1.5.0",
"body-parser": "1.19.0",
"express": "4.17.3"
diff --git a/package.json b/package.json
index 9a0f6475ece..6d5460207d7 100644
--- a/package.json
+++ b/package.json
@@ -68,7 +68,7 @@
"@typescript-eslint/parser": "5.59.11",
"benchmark": "2.1.4",
"eslint": "8.44.0",
- "eslint-config-prettier": "8.5.0",
+ "eslint-config-prettier": "9.0.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-prettier": "5.0.0",
diff --git a/packages/opentelemetry-context-async-hooks/package.json b/packages/opentelemetry-context-async-hooks/package.json
index 866b103a4b2..181fc92dce9 100644
--- a/packages/opentelemetry-context-async-hooks/package.json
+++ b/packages/opentelemetry-context-async-hooks/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-async-hooks",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry AsyncHooks-based Context Manager",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -44,7 +44,7 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"codecov": "3.8.3",
@@ -56,7 +56,7 @@
"typescript": "4.4.4"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-context-async-hooks",
"sideEffects": false
diff --git a/packages/opentelemetry-context-zone-peer-dep/package.json b/packages/opentelemetry-context-zone-peer-dep/package.json
index 2df641b922d..0a673ab4808 100644
--- a/packages/opentelemetry-context-zone-peer-dep/package.json
+++ b/packages/opentelemetry-context-zone-peer-dep/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-zone-peer-dep",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Context Zone with peer dependency for zone.js",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -53,8 +53,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -82,7 +82,7 @@
"zone.js": "0.11.4"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"zone.js": "^0.10.2 || ^0.11.0"
},
"sideEffects": false,
diff --git a/packages/opentelemetry-context-zone/package.json b/packages/opentelemetry-context-zone/package.json
index aecb55eb0e8..76adff95781 100644
--- a/packages/opentelemetry-context-zone/package.json
+++ b/packages/opentelemetry-context-zone/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-zone",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Context Zone",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -50,7 +50,7 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -75,7 +75,7 @@
"webpack-merge": "5.9.0"
},
"dependencies": {
- "@opentelemetry/context-zone-peer-dep": "1.15.2",
+ "@opentelemetry/context-zone-peer-dep": "1.17.0",
"zone.js": "^0.11.0"
},
"sideEffects": true,
diff --git a/packages/opentelemetry-core/package.json b/packages/opentelemetry-core/package.json
index e2b3e90b609..bb1e010b221 100644
--- a/packages/opentelemetry-core/package.json
+++ b/packages/opentelemetry-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/core",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -64,7 +64,7 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -88,10 +88,10 @@
"webpack": "4.46.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core",
"sideEffects": false
diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json
index 2da2d897160..9e94b5f2688 100644
--- a/packages/opentelemetry-exporter-jaeger/package.json
+++ b/packages/opentelemetry-exporter-jaeger/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-jaeger",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -45,7 +45,7 @@
},
"devDependencies": {
"@opentelemetry/api": "^1.0.0",
- "@opentelemetry/resources": "1.15.2",
+ "@opentelemetry/resources": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -63,9 +63,9 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
"jaeger-client": "^3.15.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-jaeger",
diff --git a/packages/opentelemetry-exporter-jaeger/src/version.js b/packages/opentelemetry-exporter-jaeger/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/opentelemetry-exporter-jaeger/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json
index 3dedccc8db7..681d997e340 100644
--- a/packages/opentelemetry-exporter-zipkin/package.json
+++ b/packages/opentelemetry-exporter-zipkin/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-zipkin",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Zipkin Exporter allows the user to send collected traces to Zipkin.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -60,7 +60,7 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@opentelemetry/api": "^1.0.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
@@ -92,10 +92,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin",
"sideEffects": false
diff --git a/packages/opentelemetry-exporter-zipkin/src/version.js b/packages/opentelemetry-exporter-zipkin/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/opentelemetry-exporter-zipkin/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/packages/opentelemetry-propagator-b3/package.json b/packages/opentelemetry-propagator-b3/package.json
index 9a9674b97d0..353c87b20f3 100644
--- a/packages/opentelemetry-propagator-b3/package.json
+++ b/packages/opentelemetry-propagator-b3/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/propagator-b3",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry B3 propagator provides context propagation for systems that are using the B3 header format",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -51,13 +51,13 @@
"access": "public"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2"
+ "@opentelemetry/core": "1.17.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"codecov": "3.8.3",
diff --git a/packages/opentelemetry-propagator-b3/src/version.js b/packages/opentelemetry-propagator-b3/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/opentelemetry-propagator-b3/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/packages/opentelemetry-propagator-jaeger/package.json b/packages/opentelemetry-propagator-jaeger/package.json
index 6a6b3a703cf..8d7a70c84b0 100644
--- a/packages/opentelemetry-propagator-jaeger/package.json
+++ b/packages/opentelemetry-propagator-jaeger/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/propagator-jaeger",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Jaeger propagator provides HTTP header propagation for systems that are using Jaeger HTTP header format.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -54,7 +54,7 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -78,10 +78,10 @@
"webpack": "4.46.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2"
+ "@opentelemetry/core": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-propagator-jaeger",
"sideEffects": false
diff --git a/packages/opentelemetry-propagator-jaeger/src/version.js b/packages/opentelemetry-propagator-jaeger/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/opentelemetry-propagator-jaeger/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/packages/opentelemetry-resources/package.json b/packages/opentelemetry-resources/package.json
index 7615592d7b7..311ea9d90bb 100644
--- a/packages/opentelemetry-resources/package.json
+++ b/packages/opentelemetry-resources/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/resources",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry SDK resources",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -61,7 +61,7 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@opentelemetry/resources_1.9.0": "npm:@opentelemetry/resources@1.9.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
@@ -88,11 +88,11 @@
"webpack-merge": "5.9.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources",
"sideEffects": false
diff --git a/packages/opentelemetry-sdk-trace-base/package.json b/packages/opentelemetry-sdk-trace-base/package.json
index 334d070e82d..600caa4294f 100644
--- a/packages/opentelemetry-sdk-trace-base/package.json
+++ b/packages/opentelemetry-sdk-trace-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-trace-base",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Tracing",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -65,7 +65,7 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
"@opentelemetry/resources_1.9.0": "npm:@opentelemetry/resources@1.9.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
@@ -91,12 +91,12 @@
"webpack": "4.46.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base",
"sideEffects": false
diff --git a/packages/opentelemetry-sdk-trace-base/src/Span.ts b/packages/opentelemetry-sdk-trace-base/src/Span.ts
index ea3526b29be..31fb1555ac7 100644
--- a/packages/opentelemetry-sdk-trace-base/src/Span.ts
+++ b/packages/opentelemetry-sdk-trace-base/src/Span.ts
@@ -272,18 +272,7 @@ export class Span implements APISpan, ReadableSpan {
return this._ended === false;
}
- recordException(
- exception: Exception,
- attributesOrStartTime?: SpanAttributes | TimeInput,
- timeStamp?: TimeInput
- ): void {
- if (isTimeInput(attributesOrStartTime)) {
- if (!isTimeInput(timeStamp)) {
- timeStamp = attributesOrStartTime;
- }
- attributesOrStartTime = undefined;
- }
-
+ recordException(exception: Exception, time?: TimeInput): void {
const attributes: SpanAttributes = {};
if (typeof exception === 'string') {
attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception;
@@ -301,16 +290,13 @@ export class Span implements APISpan, ReadableSpan {
attributes[SemanticAttributes.EXCEPTION_STACKTRACE] = exception.stack;
}
}
- if (attributesOrStartTime) {
- Object.assign(attributes, sanitizeAttributes(attributesOrStartTime));
- }
// these are minimum requirements from spec
if (
attributes[SemanticAttributes.EXCEPTION_TYPE] ||
attributes[SemanticAttributes.EXCEPTION_MESSAGE]
) {
- this.addEvent(ExceptionEventName, attributes, timeStamp);
+ this.addEvent(ExceptionEventName, attributes, time);
} else {
diag.warn(`Failed to record an exception ${exception}`);
}
diff --git a/packages/opentelemetry-sdk-trace-base/test/common/Span.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/Span.test.ts
index 873865a0dc2..11a94ffc7c2 100644
--- a/packages/opentelemetry-sdk-trace-base/test/common/Span.test.ts
+++ b/packages/opentelemetry-sdk-trace-base/test/common/Span.test.ts
@@ -1203,77 +1203,6 @@ describe('Span', () => {
const event = span.events[0];
assert.deepStrictEqual(event.time, [0, 123]);
});
-
- it('should record an exception with provided time as a 3rd arg', () => {
- const span = new Span(
- tracer,
- ROOT_CONTEXT,
- name,
- spanContext,
- SpanKind.CLIENT
- );
- // @ts-expect-error writing readonly property. performance time origin is mocked to return ms value of [1,1]
- span['_performanceOffset'] = 0;
- assert.strictEqual(span.events.length, 0);
- span.recordException('boom', undefined, [0, 123]);
- const event = span.events[0];
- assert.deepStrictEqual(event.time, [0, 123]);
- });
- });
-
- describe('when attributes are provided', () => {
- it('should sanitized and merge attributes when provided', () => {
- const span = new Span(
- tracer,
- ROOT_CONTEXT,
- name,
- spanContext,
- SpanKind.CLIENT
- );
- // @ts-expect-error writing readonly property. performance time origin is mocked to return ms value of [1,1]
- span['_performanceOffset'] = 0;
- assert.strictEqual(span.events.length, 0);
- const exception = { code: 'Error', message: 'boom', stack: 'bar' };
- span.recordException(exception, {
- ...validAttributes,
- ...invalidAttributes,
- } as unknown as SpanAttributes);
- const event = span.events[0];
- assert.deepStrictEqual(event.attributes, {
- [SemanticAttributes.EXCEPTION_TYPE]: 'Error',
- [SemanticAttributes.EXCEPTION_MESSAGE]: 'boom',
- [SemanticAttributes.EXCEPTION_STACKTRACE]: 'bar',
- ...validAttributes,
- });
- });
-
- it('should prioritize the provided attributes over generated', () => {
- const span = new Span(
- tracer,
- ROOT_CONTEXT,
- name,
- spanContext,
- SpanKind.CLIENT
- );
- // @ts-expect-error writing readonly property. performance time origin is mocked to return ms value of [1,1]
- span['_performanceOffset'] = 0;
- assert.strictEqual(span.events.length, 0);
- const exception = { code: 'Error', message: 'boom', stack: 'bar' };
- span.recordException(exception, {
- [SemanticAttributes.EXCEPTION_TYPE]: 'OverrideError',
- [SemanticAttributes.EXCEPTION_MESSAGE]: 'override-boom',
- [SemanticAttributes.EXCEPTION_STACKTRACE]: 'override-bar',
- ...validAttributes,
- ...invalidAttributes,
- } as unknown as SpanAttributes);
- const event = span.events[0];
- assert.deepStrictEqual(event.attributes, {
- ...validAttributes,
- [SemanticAttributes.EXCEPTION_TYPE]: 'OverrideError',
- [SemanticAttributes.EXCEPTION_MESSAGE]: 'override-boom',
- [SemanticAttributes.EXCEPTION_STACKTRACE]: 'override-bar',
- });
- });
});
describe('when exception code is numeric', () => {
diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json
index dd0ad05ca0f..0bdcc4a090e 100644
--- a/packages/opentelemetry-sdk-trace-node/package.json
+++ b/packages/opentelemetry-sdk-trace-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-trace-node",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Node SDK provides automatic telemetry (tracing, metrics, etc) for Node.js applications",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -45,12 +45,12 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
- "@opentelemetry/resources": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
- "@types/semver": "7.5.1",
+ "@types/semver": "7.5.2",
"@types/sinon": "10.0.16",
"codecov": "3.8.3",
"cross-var": "1.1.0",
@@ -62,14 +62,14 @@
"typescript": "4.4.4"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/context-async-hooks": "1.15.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/propagator-jaeger": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@opentelemetry/context-async-hooks": "1.17.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/propagator-jaeger": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"semver": "^7.5.2"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node",
diff --git a/packages/opentelemetry-sdk-trace-web/package.json b/packages/opentelemetry-sdk-trace-web/package.json
index 3e1997cfdf6..ebbf2a4025e 100644
--- a/packages/opentelemetry-sdk-trace-web/package.json
+++ b/packages/opentelemetry-sdk-trace-web/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-trace-web",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry Web Tracer",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -55,12 +55,12 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
- "@opentelemetry/context-zone": "1.15.2",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
- "@types/jquery": "3.5.17",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
+ "@opentelemetry/context-zone": "1.17.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
+ "@types/jquery": "3.5.19",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"@types/sinon": "10.0.16",
@@ -89,12 +89,12 @@
"webpack-merge": "5.9.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2"
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-web",
"sideEffects": false
diff --git a/packages/opentelemetry-semantic-conventions/package.json b/packages/opentelemetry-semantic-conventions/package.json
index 9e17927e396..0cc05eb2dd7 100644
--- a/packages/opentelemetry-semantic-conventions/package.json
+++ b/packages/opentelemetry-semantic-conventions/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/semantic-conventions",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry semantic conventions",
"main": "build/src/index.js",
"module": "build/esm/index.js",
diff --git a/packages/opentelemetry-shim-opentracing/package.json b/packages/opentelemetry-shim-opentracing/package.json
index a15916ceacf..f328e7fce4b 100644
--- a/packages/opentelemetry-shim-opentracing/package.json
+++ b/packages/opentelemetry-shim-opentracing/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/shim-opentracing",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTracing to OpenTelemetry shim",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@@ -42,10 +42,10 @@
"access": "public"
},
"devDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0",
- "@opentelemetry/propagator-b3": "1.15.2",
- "@opentelemetry/propagator-jaeger": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
+ "@opentelemetry/api": ">=1.0.0 <1.7.0",
+ "@opentelemetry/propagator-b3": "1.17.0",
+ "@opentelemetry/propagator-jaeger": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
"codecov": "3.8.3",
@@ -57,11 +57,11 @@
"typescript": "4.4.4"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.0.0 <1.5.0"
+ "@opentelemetry/api": ">=1.0.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/semantic-conventions": "1.15.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/semantic-conventions": "1.17.0",
"opentracing": "^0.14.4"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-shim-opentracing",
diff --git a/packages/sdk-metrics/package.json b/packages/sdk-metrics/package.json
index d3f069054a4..3d4f5b299e1 100644
--- a/packages/sdk-metrics/package.json
+++ b/packages/sdk-metrics/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-metrics",
- "version": "1.15.2",
+ "version": "1.17.0",
"description": "OpenTelemetry metrics SDK",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@@ -54,8 +54,8 @@
"access": "public"
},
"devDependencies": {
- "@babel/core": "7.22.11",
- "@opentelemetry/api": ">=1.3.0 <1.5.0",
+ "@babel/core": "7.22.20",
+ "@opentelemetry/api": ">=1.3.0 <1.7.0",
"@types/lodash.merge": "4.6.7",
"@types/mocha": "10.0.1",
"@types/node": "18.6.5",
@@ -81,11 +81,11 @@
"webpack-merge": "5.9.0"
},
"peerDependencies": {
- "@opentelemetry/api": ">=1.3.0 <1.5.0"
+ "@opentelemetry/api": ">=1.3.0 <1.7.0"
},
"dependencies": {
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/resources": "1.15.2",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/resources": "1.17.0",
"lodash.merge": "^4.6.2"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics",
diff --git a/packages/sdk-metrics/src/InstrumentDescriptor.ts b/packages/sdk-metrics/src/InstrumentDescriptor.ts
index 01eabe26148..ac742fc0eee 100644
--- a/packages/sdk-metrics/src/InstrumentDescriptor.ts
+++ b/packages/sdk-metrics/src/InstrumentDescriptor.ts
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-import { MetricOptions, ValueType } from '@opentelemetry/api';
+import { MetricOptions, ValueType, diag } from '@opentelemetry/api';
import { View } from './view/View';
+import { equalsCaseInsensitive } from './utils';
/**
* Supported types of metric instruments.
@@ -45,6 +46,11 @@ export function createInstrumentDescriptor(
type: InstrumentType,
options?: MetricOptions
): InstrumentDescriptor {
+ if (!isValidName(name)) {
+ diag.warn(
+ `Invalid metric name: "${name}". The metric name should be a ASCII string with a length no greater than 255 characters.`
+ );
+ }
return {
name,
type,
@@ -71,10 +77,18 @@ export function isDescriptorCompatibleWith(
descriptor: InstrumentDescriptor,
otherDescriptor: InstrumentDescriptor
) {
+ // Names are case-insensitive strings.
return (
- descriptor.name === otherDescriptor.name &&
+ equalsCaseInsensitive(descriptor.name, otherDescriptor.name) &&
descriptor.unit === otherDescriptor.unit &&
descriptor.type === otherDescriptor.type &&
descriptor.valueType === otherDescriptor.valueType
);
}
+
+// ASCII string with a length no greater than 255 characters.
+// NB: the first character counted separately from the rest.
+const NAME_REGEXP = /^[a-z][a-z0-9_.-]{0,254}$/i;
+export function isValidName(name: string): boolean {
+ return name.match(NAME_REGEXP) != null;
+}
diff --git a/packages/sdk-metrics/src/utils.ts b/packages/sdk-metrics/src/utils.ts
index 835de92fe1b..9a8f80abde1 100644
--- a/packages/sdk-metrics/src/utils.ts
+++ b/packages/sdk-metrics/src/utils.ts
@@ -190,3 +190,7 @@ export function binarySearchLB(arr: number[], value: number): number {
}
return -1;
}
+
+export function equalsCaseInsensitive(lhs: string, rhs: string): boolean {
+ return lhs.toLowerCase() === rhs.toLowerCase();
+}
diff --git a/packages/sdk-metrics/src/version.js b/packages/sdk-metrics/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/sdk-metrics/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/packages/sdk-metrics/test/InstrumentDescriptor.test.ts b/packages/sdk-metrics/test/InstrumentDescriptor.test.ts
index 7d8796cbf13..5bf3196693f 100644
--- a/packages/sdk-metrics/test/InstrumentDescriptor.test.ts
+++ b/packages/sdk-metrics/test/InstrumentDescriptor.test.ts
@@ -17,8 +17,13 @@
import * as assert from 'assert';
import {
createInstrumentDescriptor,
+ InstrumentDescriptor,
InstrumentType,
+ isValidName,
+ isDescriptorCompatibleWith,
} from '../src/InstrumentDescriptor';
+import { invalidNames, validNames } from './util';
+import { ValueType } from '@opentelemetry/api';
describe('InstrumentDescriptor', () => {
describe('createInstrumentDescriptor', () => {
@@ -35,4 +40,105 @@ describe('InstrumentDescriptor', () => {
});
}
});
+
+ describe('isDescriptorCompatibleWith', () => {
+ const tests: [
+ string,
+ boolean,
+ InstrumentDescriptor,
+ InstrumentDescriptor,
+ ][] = [
+ [
+ 'Compatible with identical descriptors',
+ true,
+ {
+ name: 'foo',
+ description: 'any descriptions',
+ unit: 'kB',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ {
+ name: 'foo',
+ description: 'any descriptions',
+ unit: 'kB',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ ],
+ [
+ 'Compatible with case-insensitive names',
+ true,
+ {
+ name: 'foo',
+ description: '',
+ unit: '',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ {
+ name: 'FoO',
+ description: '',
+ unit: '',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ ],
+ [
+ 'Incompatible with different names',
+ false,
+ {
+ name: 'foo',
+ description: '',
+ unit: '',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ {
+ name: 'foobar',
+ description: '',
+ unit: '',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ ],
+ [
+ 'Incompatible with case-sensitive units',
+ false,
+ {
+ name: 'foo',
+ description: '',
+ unit: 'kB',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ {
+ name: 'foo',
+ description: '',
+ unit: 'kb',
+ type: InstrumentType.COUNTER,
+ valueType: ValueType.DOUBLE,
+ },
+ ],
+ ];
+ for (const test of tests) {
+ it(test[0], () => {
+ assert.ok(isDescriptorCompatibleWith(test[2], test[3]) === test[1]);
+ });
+ }
+ });
+
+ describe('isValidName', () => {
+ it('should validate names', () => {
+ for (const invalidName of invalidNames) {
+ assert.ok(
+ !isValidName(invalidName),
+ `${invalidName} should be invalid`
+ );
+ }
+ for (const validName of validNames) {
+ assert.ok(isValidName(validName), `${validName} should be valid`);
+ }
+ });
+ });
});
diff --git a/packages/sdk-metrics/test/Meter.test.ts b/packages/sdk-metrics/test/Meter.test.ts
index 4ffe41607d9..e40d6aa5076 100644
--- a/packages/sdk-metrics/test/Meter.test.ts
+++ b/packages/sdk-metrics/test/Meter.test.ts
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-import { Observable } from '@opentelemetry/api';
+import { Observable, diag } from '@opentelemetry/api';
import * as assert from 'assert';
+import * as sinon from 'sinon';
import {
CounterInstrument,
HistogramInstrument,
@@ -27,78 +28,86 @@ import {
import { Meter } from '../src/Meter';
import { MeterProviderSharedState } from '../src/state/MeterProviderSharedState';
import { MeterSharedState } from '../src/state/MeterSharedState';
-import { defaultInstrumentationScope, defaultResource } from './util';
+import {
+ defaultInstrumentationScope,
+ defaultResource,
+ invalidNames,
+ validNames,
+} from './util';
describe('Meter', () => {
+ afterEach(() => {
+ sinon.restore();
+ });
+
describe('createCounter', () => {
- it('should create counter', () => {
+ testWithNames('counter', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const counter = meter.createCounter('foobar');
+ const counter = meter.createCounter(name);
assert(counter instanceof CounterInstrument);
});
});
describe('createUpDownCounter', () => {
- it('should create up down counter', () => {
+ testWithNames('UpDownCounter', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const upDownCounter = meter.createUpDownCounter('foobar');
+ const upDownCounter = meter.createUpDownCounter(name);
assert(upDownCounter instanceof UpDownCounterInstrument);
});
});
describe('createHistogram', () => {
- it('should create histogram', () => {
+ testWithNames('Histogram', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const histogram = meter.createHistogram('foobar');
+ const histogram = meter.createHistogram(name);
assert(histogram instanceof HistogramInstrument);
});
});
describe('createObservableGauge', () => {
- it('should create observable gauge', () => {
+ testWithNames('ObservableGauge', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const observableGauge = meter.createObservableGauge('foobar');
+ const observableGauge = meter.createObservableGauge(name);
assert(observableGauge instanceof ObservableGaugeInstrument);
});
});
describe('createObservableCounter', () => {
- it('should create observable counter', () => {
+ testWithNames('ObservableCounter', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const observableCounter = meter.createObservableCounter('foobar');
+ const observableCounter = meter.createObservableCounter(name);
assert(observableCounter instanceof ObservableCounterInstrument);
});
});
describe('createObservableUpDownCounter', () => {
- it('should create observable up-down-counter', () => {
+ testWithNames('ObservableUpDownCounter', name => {
const meterSharedState = new MeterSharedState(
new MeterProviderSharedState(defaultResource),
defaultInstrumentationScope
);
const meter = new Meter(meterSharedState);
- const observableUpDownCounter =
- meter.createObservableUpDownCounter('foobar');
+ const observableUpDownCounter = meter.createObservableUpDownCounter(name);
assert(
observableUpDownCounter instanceof ObservableUpDownCounterInstrument
);
@@ -167,3 +176,22 @@ describe('Meter', () => {
});
});
});
+
+function testWithNames(type: string, tester: (name: string) => void) {
+ for (const invalidName of invalidNames) {
+ it(`should warn with invalid name ${invalidName} for ${type}`, () => {
+ const warnStub = sinon.spy(diag, 'warn');
+ tester(invalidName);
+ assert.strictEqual(warnStub.callCount, 1);
+ assert.ok(warnStub.calledWithMatch('Invalid metric name'));
+ });
+ }
+
+ for (const validName of validNames) {
+ it(`should not warn with valid name ${validName} for ${type}`, () => {
+ const warnStub = sinon.spy(diag, 'warn');
+ tester(validName);
+ assert.strictEqual(warnStub.callCount, 0);
+ });
+ }
+}
diff --git a/packages/sdk-metrics/test/util.ts b/packages/sdk-metrics/test/util.ts
index fa7a54b07fa..ef081cf67a8 100644
--- a/packages/sdk-metrics/test/util.ts
+++ b/packages/sdk-metrics/test/util.ts
@@ -66,6 +66,9 @@ export const defaultInstrumentationScope: InstrumentationScope = {
schemaUrl: 'https://opentelemetry.io/schemas/1.7.0',
};
+export const invalidNames = ['', 'a'.repeat(256), '1a', '-a', '.a', '_a'];
+export const validNames = ['a', 'a'.repeat(255), 'a1', 'a-1', 'a.1', 'a_1'];
+
export const commonValues: number[] = [1, -1, 1.0, Infinity, -Infinity, NaN];
export const commonAttributes: MetricAttributes[] = [
{},
diff --git a/packages/template/package.json b/packages/template/package.json
index 09b643b65d8..b7836e54094 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/template",
- "version": "1.15.2",
+ "version": "1.17.0",
"private": true,
"publishConfig": {
"access": "restricted"
diff --git a/packages/template/src/version.js b/packages/template/src/version.js
new file mode 100644
index 00000000000..2090d63abf3
--- /dev/null
+++ b/packages/template/src/version.js
@@ -0,0 +1,20 @@
+"use strict";
+/*
+ * Copyright The OpenTelemetry Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VERSION = void 0;
+// this is autogenerated file, see scripts/version-update.js
+exports.VERSION = '1.16.0';
diff --git a/selenium-tests/package.json b/selenium-tests/package.json
index 48dfb2108c9..9592f050ded 100644
--- a/selenium-tests/package.json
+++ b/selenium-tests/package.json
@@ -1,6 +1,6 @@
{
"name": "@opentelemetry/selenium-tests",
- "version": "1.15.2",
+ "version": "1.17.0",
"private": true,
"description": "OpenTelemetry Selenium Tests",
"main": "index.js",
@@ -31,11 +31,11 @@
"access": "restricted"
},
"devDependencies": {
- "@babel/core": "7.22.11",
+ "@babel/core": "7.22.20",
"@babel/plugin-proposal-class-properties": "7.18.6",
- "@babel/plugin-proposal-decorators": "7.22.10",
- "@babel/plugin-transform-runtime": "7.22.10",
- "@babel/preset-env": "7.22.14",
+ "@babel/plugin-proposal-decorators": "7.22.15",
+ "@babel/plugin-transform-runtime": "7.22.15",
+ "@babel/preset-env": "7.22.20",
"@opentelemetry/api": "^1.0.0",
"babel-loader": "8.3.0",
"babel-polyfill": "6.26.0",
@@ -56,16 +56,16 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
- "@opentelemetry/context-zone-peer-dep": "1.15.2",
- "@opentelemetry/core": "1.15.2",
- "@opentelemetry/exporter-trace-otlp-http": "0.41.2",
- "@opentelemetry/exporter-zipkin": "1.15.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-fetch": "0.41.2",
- "@opentelemetry/instrumentation-xml-http-request": "0.41.2",
- "@opentelemetry/sdk-metrics": "1.15.2",
- "@opentelemetry/sdk-trace-base": "1.15.2",
- "@opentelemetry/sdk-trace-web": "1.15.2",
+ "@opentelemetry/context-zone-peer-dep": "1.17.0",
+ "@opentelemetry/core": "1.17.0",
+ "@opentelemetry/exporter-trace-otlp-http": "0.43.0",
+ "@opentelemetry/exporter-zipkin": "1.17.0",
+ "@opentelemetry/instrumentation": "0.43.0",
+ "@opentelemetry/instrumentation-fetch": "0.43.0",
+ "@opentelemetry/instrumentation-xml-http-request": "0.43.0",
+ "@opentelemetry/sdk-metrics": "1.17.0",
+ "@opentelemetry/sdk-trace-base": "1.17.0",
+ "@opentelemetry/sdk-trace-web": "1.17.0",
"zone.js": "0.11.4"
}
}
diff --git a/tsconfig.esm.json b/tsconfig.esm.json
index 2fec210b9af..29491b46efa 100644
--- a/tsconfig.esm.json
+++ b/tsconfig.esm.json
@@ -29,6 +29,9 @@
{
"path": "experimental/packages/opentelemetry-exporter-metrics-otlp-http/tsconfig.esm.json"
},
+ {
+ "path": "experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esm.json"
+ },
{
"path": "experimental/packages/opentelemetry-instrumentation/tsconfig.esm.json"
},
diff --git a/tsconfig.esnext.json b/tsconfig.esnext.json
index c5970c9c5c2..031a2e56091 100644
--- a/tsconfig.esnext.json
+++ b/tsconfig.esnext.json
@@ -29,6 +29,9 @@
{
"path": "experimental/packages/opentelemetry-exporter-metrics-otlp-http/tsconfig.esnext.json"
},
+ {
+ "path": "experimental/packages/opentelemetry-exporter-metrics-otlp-proto/tsconfig.esnext.json"
+ },
{
"path": "experimental/packages/opentelemetry-instrumentation/tsconfig.esnext.json"
},