diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 2e9457535a..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -labels: bug ---- - -Please answer these questions before submitting a bug report. - -### What version of OpenTelemetry are you using? - -### What version of Node are you using? - -### Please provide the code you used to setup the OpenTelemetry SDK - -### What did you do? - -If possible, provide a recipe for reproducing the error. - -### What did you expect to see? - -### What did you see instead? - -### Additional context - -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000000..f50009ef60 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,97 @@ +name: Bug Report +description: File a bug report +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + Please make sure to fill out the entire form below, + providing as much context as you can in order to help us + triage and track down your bug as quickly as possible. + + Before filing a bug, please be sure you have searched through + [existing bugs](https://github.com/open-telemetry/opentelemetry-js/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Abug) + to see if your bug is already addressed. + + If your bug is related to an instrumentation or plugin in [opentelemetry-js-contrib](https://github.com/open-telemetry/opentelemetry-js-contrib) + please be sure to file it there. + - type: textarea + attributes: + label: What happened? + description: Please provide as much detail as you reasonably can. + value: | + ## Steps to Reproduce + + ## Expected Result + + ## Actual Result + + ## Additional Details + + validations: + required: true + - type: textarea + attributes: + label: OpenTelemetry Setup Code + description: Please provide the code you use to set up OpenTelemetry + placeholder: | # This comes from our README.md + // tracing.js + + 'use strict' + + const process = require('process'); + const opentelemetry = require('@opentelemetry/sdk-node'); + const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node'); + const { ConsoleSpanExporter } = require('@opentelemetry/sdk-trace-base'); + const { Resource } = require('@opentelemetry/resources'); + const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions'); + + // configure the SDK to export telemetry data to the console + // enable all auto-instrumentations from the meta package + const traceExporter = new ConsoleSpanExporter(); + const sdk = new opentelemetry.NodeSDK({ + resource: new Resource({ + [SemanticResourceAttributes.SERVICE_NAME]: 'my-service', + }), + traceExporter, + instrumentations: [getNodeAutoInstrumentations()] + }); + + // initialize the SDK and register with the OpenTelemetry API + // this enables the API to record telemetry + sdk.start() + .then(() => console.log('Tracing initialized')) + .catch((error) => console.log('Error initializing tracing', error)); + + // gracefully shut down the SDK on process exit + process.on('SIGTERM', () => { + sdk.shutdown() + .then(() => console.log('Tracing terminated')) + .catch((error) => console.log('Error terminating tracing', error)) + .finally(() => process.exit(0)); + }); + render: "JavaScript" + - type: textarea + attributes: + label: package.json + description: If possible, please provide your full package.json. If not, please provide at least your list of dependencies and their versions, especially OpenTelemetry versions. + render: "JSON" + placeholder: | + { + "name": "my-app", + "scripts": { + "start": "node -r tracing.js app.js" + }, + "dependencies": { + "@opentelemetry/api": "^1.2.0", + "@opentelemetry/sdk-trace-base": "~1.3.1", + ... + } + } + - type: textarea + attributes: + label: Relevant log output + description: | + Please copy and paste any relevant log output. + render: shell diff --git a/.github/workflows/close-stale.yml b/.github/workflows/close-stale.yml index 628d74d677..122ab1c931 100644 --- a/.github/workflows/close-stale.yml +++ b/.github/workflows/close-stale.yml @@ -17,5 +17,5 @@ jobs: close-pr-message: 'This PR was closed because it has been stale for 14 days with no activity.' stale-issue-label: stale stale-pr-label: stale - exempt-issue-labels: never-stale - exempt-pr-labels: never-stale + exempt-issue-labels: never-stale,bug + exempt-pr-labels: never-stale,bug diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index f2bcef4f1c..a21b835e14 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -10,7 +10,10 @@ jobs: strategy: fail-fast: false matrix: - node_version: ["8", "10", "12", "14", "16"] + node_version: + - "14" + - "16" + - "18" runs-on: ubuntu-latest env: NPM_CONFIG_UNSAFE_PERM: true diff --git a/CHANGELOG.md b/CHANGELOG.md index cfe79dbedb..f381cad891 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,21 @@ All notable changes to this project will be documented in this file. ### :bug: (Bug Fix) +* fix(resources): fix browser compatibility for host and os detectors [#3004](https://github.com/open-telemetry/opentelemetry-js/pull/3004) @legendecas +* fix(sdk-trace-base): fix crash on environments without global document [#3000](https://github.com/open-telemetry/opentelemetry-js/pull/3000) @legendecas + ### :books: (Refine Doc) ### :house: (Internal) +* test: add node 18 and remove EoL node versions [#3048](https://github.com/open-telemetry/opentelemetry-js/pull/3048) @dyladan + +## 1.3.1 + +### :bug: (Bug Fix) + +* fix(resources): fix browser compatibility for host and os detectors [#3004](https://github.com/open-telemetry/opentelemetry-js/pull/3004) @legendecas + ## 1.3.0 ### :boom: Breaking Change diff --git a/README.md b/README.md index af63dc9a89..7e693fd5fe 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This is the JavaScript version of [OpenTelemetry](https://opentelemetry.io/), a ## Compatibility Matrix | API Version | Core version | Experimental Packages | -| ----------- |--------------| --------------------- | +| ----------- | ------------ | --------------------- | | 1.1.x | 1.1.x | 0.28.x | | 1.0.x | 1.0.x | 0.26.x, 0.27.x | | 1.0.x | 0.26.x | ----- | @@ -138,19 +138,18 @@ If you are a library author looking to build OpenTelemetry into your library, pl ## Supported Runtimes -| Platform Version | Supported | -|------------------|-------------------------------------------------| -| Node.JS `v16` | ✅ | -| Node.JS `v14` | ✅ | -| Node.JS `v12` | ✅ | -| Node.JS `v10` | ✅ | -| Node.JS `v8` | See [Node Support](#node-support) below | -| Web Browsers | ✅ See [Browser Support](#browser-support) below | +| Platform Version | Supported | +| ------------------- | ----------------------------------------------- | +| Node.JS `v18` | ✅ | +| Node.JS `v16` | ✅ | +| Node.JS `v14` | ✅ | +| Older Node Versions | See [Node Support](#node-support) | +| Web Browsers | ✅ See [Browser Support](#browser-support) below | ### Node Support -Automated tests are run using the latest release of each currently active version of Node.JS. -While Node.JS v8 and v10 are no longer supported by the Node.JS team, the latest versions of Node.JS v8 and v10 are still included in our testing suite. +Only Node.js Active or Maintenance LTS versions are supported. +Previous versions of node _may_ work, but they are not tested by OpenTelemetry and they are not guaranteed to work. Please note that versions of Node.JS v8 prior to `v8.12.0` will NOT work, because OpenTelemetry Node depends on the `perf_hooks` module introduced in `v8.5.0` and `performance.timeOrigin` that is set correctly starting in `v8.12.0`. ### Browser Support @@ -161,7 +160,7 @@ There is currently no list of officially supported browsers, but OpenTelemetry i ## Feature Status | Signal | API Status | SDK Status | -|---------|-------------|-------------------| +| ------- | ----------- | ----------------- | | Tracing | Stable | Release Candidate | | Metrics | Development | Development | | Logs | Roadmap | Roadmap | @@ -220,18 +219,18 @@ Maintainers ([@open-telemetry/js-maintainers](https://github.com/orgs/open-telem ### API | Package | Description | -|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [@opentelemetry/api][otel-api] | This package provides TypeScript interfaces, enums and no-op implementations for the OpenTelemetry core trace and metrics model. It is intended for use both on the server and in the browser. | | [@opentelemetry/core][otel-core] | This package provides default and no-op implementations of the OpenTelemetry api for trace and metrics. It's intended for use both on the server and in the browser. | ### Implementation / SDKs -| Package | Description | -|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [@opentelemetry/sdk-trace-base][otel-tracing] | This module provides a full control over instrumentation and span creation. It doesn't load [`async_hooks`](https://nodejs.org/api/async_hooks.html) or any instrumentation by default. It is intended for use both on the server and in the browser. | -| [@opentelemetry/sdk-metrics-base][otel-metrics] | This module provides instruments and meters for reporting of time series data. | -| [@opentelemetry/sdk-trace-node][otel-node] | This module provides automatic tracing for Node.js applications. It is intended for use on the server only. | -| [@opentelemetry/sdk-trace-web][otel-web] | This module provides automated instrumentation and tracing for Web applications. It is intended for use in the browser only. | +| Package | Description | +| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@opentelemetry/sdk-trace-base][otel-tracing] | This module provides a full control over instrumentation and span creation. It doesn't load [`async_hooks`](https://nodejs.org/api/async_hooks.html) or any instrumentation by default. It is intended for use both on the server and in the browser. | +| [@opentelemetry/sdk-metrics-base][otel-metrics] | This module provides instruments and meters for reporting of time series data. | +| [@opentelemetry/sdk-trace-node][otel-node] | This module provides automatic tracing for Node.js applications. It is intended for use on the server only. | +| [@opentelemetry/sdk-trace-web][otel-web] | This module provides automated instrumentation and tracing for Web applications. It is intended for use in the browser only. | ### Compatible Exporters @@ -272,7 +271,7 @@ These instrumentations are hosted at =8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/grpc-js/package.json b/examples/grpc-js/package.json index 5c437a1e1a..2914fec3ea 100644 --- a/examples/grpc-js/package.json +++ b/examples/grpc-js/package.json @@ -20,7 +20,7 @@ "tracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/grpc/package.json b/examples/grpc/package.json index c11c410eeb..754c956b68 100644 --- a/examples/grpc/package.json +++ b/examples/grpc/package.json @@ -20,7 +20,7 @@ "tracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/http/package.json b/examples/http/package.json index 91d4191af3..f17f015930 100644 --- a/examples/http/package.json +++ b/examples/http/package.json @@ -20,7 +20,7 @@ "tracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/https/package.json b/examples/https/package.json index d6c3654a1a..8760f561e9 100644 --- a/examples/https/package.json +++ b/examples/https/package.json @@ -21,7 +21,7 @@ "tracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/opentracing-shim/package.json b/examples/opentracing-shim/package.json index b05b197648..64dd96f89c 100644 --- a/examples/opentracing-shim/package.json +++ b/examples/opentracing-shim/package.json @@ -21,7 +21,7 @@ "opentracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/examples/otlp-exporter-node/docker/docker-compose.yaml b/examples/otlp-exporter-node/docker/docker-compose.yaml index 6eaed872a6..68910b7ba4 100644 --- a/examples/otlp-exporter-node/docker/docker-compose.yaml +++ b/examples/otlp-exporter-node/docker/docker-compose.yaml @@ -2,7 +2,7 @@ version: "3" services: # Collector collector: - image: otel/opentelemetry-collector-contrib:0.50.0 + image: otel/opentelemetry-collector-contrib:0.53.0 # image: otel/opentelemetry-collector-contrib:latest command: ["--config=/conf/collector-config.yaml"] volumes: diff --git a/examples/otlp-exporter-node/package.json b/examples/otlp-exporter-node/package.json index 451048c7b7..bb2f320b39 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.28.0", + "version": "0.29.2", "description": "Example of using @opentelemetry/collector-exporter in Node.js", "main": "index.js", "scripts": { @@ -20,7 +20,7 @@ "tracing" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", @@ -28,19 +28,19 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.2", - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.1.1", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.29.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.29.0", - "@opentelemetry/exporter-metrics-otlp-proto": "0.29.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.29.0", - "@opentelemetry/exporter-trace-otlp-http": "0.29.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.29.0", - "@opentelemetry/resources": "1.1.1", - "@opentelemetry/sdk-metrics-base": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.1.1", - "@opentelemetry/semantic-conventions": "1.1.1" + "@opentelemetry/api": "^1.1.0", + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.29.2", + "@opentelemetry/exporter-metrics-otlp-http": "0.29.2", + "@opentelemetry/exporter-metrics-otlp-proto": "0.29.2", + "@opentelemetry/exporter-trace-otlp-grpc": "0.29.2", + "@opentelemetry/exporter-trace-otlp-http": "0.29.2", + "@opentelemetry/exporter-trace-otlp-proto": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme" } diff --git a/examples/tracer-web/package.json b/examples/tracer-web/package.json index e1df838aae..6ffb8cd613 100644 --- a/examples/tracer-web/package.json +++ b/examples/tracer-web/package.json @@ -20,7 +20,7 @@ "web" ], "engines": { - "node": ">=8" + "node": ">=14" }, "author": "OpenTelemetry Authors", "license": "Apache-2.0", diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 2516e4582d..a76f391047 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -6,16 +6,43 @@ All notable changes to experimental packages in this project will be documented ### :boom: Breaking Change +* fix: remove aws and gcp detector from SDK #3024 @flarna +* feat(sdk-metrics-base): implement min/max recording for Histograms #3032 @pichlermarc + * adds `min`/`max` recording to Histograms + * updates [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-proto) to `0.18` so that `min` and + `max` can be exported. This change breaks the OTLP/JSON Metric Exporter for all collector versions `<0.52` due to + [open-telemetry/opentelemetry-collector#5312](https://github.com/open-telemetry/opentelemetry-collector/issues/5312). + ### :rocket: (Enhancement) +* feat(opentelemetry-instrumentation-fetch): optionally ignore network events #3028 @gregolsen +* feat(http-instrumentation): record exceptions in http instrumentation #3008 @luismiramirez +* feat(node-sdk): add serviceName config option #2867 @naseemkullah +* feat(opentelemetry-exporter-prometheus): export PrometheusSerializer #3034 @matschaffer + ### :bug: (Bug Fix) -* fix(sdk-metrics-base): only record non-negative histogram values #3002 @pichlermarc +* fix(otlp-transformer): remove type dependency on Long #3022 @legendecas +* fix(grpc-exporter): use non-normalized URL to determine channel security #3019 @pichlermarc +* fix(otlp-exporter-base): fix gzip output stream in http otlp export #3046 @mattolson ### :books: (Refine Doc) ### :house: (Internal) +* test: add node 18 and remove EoL node versions [#3048](https://github.com/open-telemetry/opentelemetry-js/pull/3048) @dyladan + +## 0.29.2 + +* Support for 1.3.1 of stable packages + +## 0.29.1 + +### :bug: (Bug Fix) + +* fix(sdk-metrics-base): only record non-negative histogram values #3002 @pichlermarc +* fix(otlp-transformer): include missing prepublishOnly script which ensures esm and esnext build files are created and packaged @dyladan + ## 0.29.0 ### :boom: Breaking Change @@ -48,6 +75,7 @@ All notable changes to experimental packages in this project will be documented * fix(instrumentation): only patch core modules if enabled #2993 @santigimeno * fix(otlp-transformer): include esm and esnext in package files and update README #2992 @pichlermarc * fix(metrics): specification compliant default metric unit #2983 @andyfleming +* fix(opentelemetry-instrumentation): use all provided patches for the same file [#2963](https://github.com/open-telemetry/opentelemetry-js/pull/2963) @Ugzuzg ### :books: (Refine Doc) diff --git a/experimental/backwards-compatability/node12/package.json b/experimental/backwards-compatability/node12/package.json deleted file mode 100644 index 333aba452c..0000000000 --- a/experimental/backwards-compatability/node12/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "backcompat-node12", - "version": "0.29.0", - "private": true, - "description": "Backwards compatability app for node8 types and the OpenTelemetry Node.js SDK", - "main": "index.js", - "scripts": { - "test:backcompat": "tsc --noEmit index.ts && tsc --noEmit --esModuleInterop index.ts", - "peer-api-check": "node ../../../scripts/peer-api-check.js" - }, - "dependencies": { - "@opentelemetry/sdk-node": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0" - }, - "devDependencies": { - "@types/node": "12.20.37", - "typescript": "4.4.4" - }, - "author": "OpenTelemetry Authors", - "license": "Apache-2.0" -} diff --git a/experimental/backwards-compatability/node10/index.ts b/experimental/backwards-compatability/node14/index.ts similarity index 100% rename from experimental/backwards-compatability/node10/index.ts rename to experimental/backwards-compatability/node14/index.ts diff --git a/experimental/backwards-compatability/node8/package.json b/experimental/backwards-compatability/node14/package.json similarity index 50% rename from experimental/backwards-compatability/node8/package.json rename to experimental/backwards-compatability/node14/package.json index 172b4dfe1a..b78f44e27d 100644 --- a/experimental/backwards-compatability/node8/package.json +++ b/experimental/backwards-compatability/node14/package.json @@ -1,21 +1,24 @@ { - "name": "backcompat-node8", - "version": "0.29.0", + "name": "backcompat-node14", + "version": "0.29.2", "private": true, - "description": "Backwards compatability app for node8 types and the OpenTelemetry Node.js SDK", + "description": "Backwards compatability app for node 14 types and the OpenTelemetry Node.js SDK", "main": "index.js", "scripts": { "test:backcompat": "tsc --noEmit index.ts && tsc --noEmit --esModuleInterop index.ts", "peer-api-check": "node ../../../scripts/peer-api-check.js" }, "dependencies": { - "@opentelemetry/sdk-node": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0" + "@opentelemetry/sdk-node": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1" }, "devDependencies": { - "@types/node": "8.10.66", + "@types/node": "^14.0.0", "typescript": "4.4.4" }, "author": "OpenTelemetry Authors", - "license": "Apache-2.0" + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } } diff --git a/experimental/backwards-compatability/node10/tsconfig.json b/experimental/backwards-compatability/node14/tsconfig.json similarity index 100% rename from experimental/backwards-compatability/node10/tsconfig.json rename to experimental/backwards-compatability/node14/tsconfig.json diff --git a/experimental/backwards-compatability/node12/index.ts b/experimental/backwards-compatability/node16/index.ts similarity index 100% rename from experimental/backwards-compatability/node12/index.ts rename to experimental/backwards-compatability/node16/index.ts diff --git a/experimental/backwards-compatability/node10/package.json b/experimental/backwards-compatability/node16/package.json similarity index 50% rename from experimental/backwards-compatability/node10/package.json rename to experimental/backwards-compatability/node16/package.json index 2bc636fd5e..caf78adc72 100644 --- a/experimental/backwards-compatability/node10/package.json +++ b/experimental/backwards-compatability/node16/package.json @@ -1,21 +1,24 @@ { - "name": "backcompat-node10", - "version": "0.29.0", + "name": "backcompat-node16", + "version": "0.29.2", "private": true, - "description": "Backwards compatability app for node8 types and the OpenTelemetry Node.js SDK", + "description": "Backwards compatability app for node 16 types and the OpenTelemetry Node.js SDK", "main": "index.js", "scripts": { "test:backcompat": "tsc --noEmit index.ts && tsc --noEmit --esModuleInterop index.ts", "peer-api-check": "node ../../../scripts/peer-api-check.js" }, "dependencies": { - "@opentelemetry/sdk-node": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0" + "@opentelemetry/sdk-node": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1" }, "devDependencies": { - "@types/node": "10.17.60", + "@types/node": "^16.0.0", "typescript": "4.4.4" }, "author": "OpenTelemetry Authors", - "license": "Apache-2.0" + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } } diff --git a/experimental/backwards-compatability/node12/tsconfig.json b/experimental/backwards-compatability/node16/tsconfig.json similarity index 100% rename from experimental/backwards-compatability/node12/tsconfig.json rename to experimental/backwards-compatability/node16/tsconfig.json diff --git a/experimental/backwards-compatability/node8/index.ts b/experimental/backwards-compatability/node8/index.ts deleted file mode 100644 index d124b8ed05..0000000000 --- a/experimental/backwards-compatability/node8/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {NodeSDK, api} from '@opentelemetry/sdk-node'; -import {ConsoleSpanExporter} from '@opentelemetry/sdk-trace-base'; - -const sdk = new NodeSDK({ - traceExporter: new ConsoleSpanExporter(), - autoDetectResources: false, -}); -sdk.start(); - -api.trace.getTracer('test'); diff --git a/experimental/backwards-compatability/node8/tsconfig.json b/experimental/backwards-compatability/node8/tsconfig.json deleted file mode 100644 index 93d86afe21..0000000000 --- a/experimental/backwards-compatability/node8/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../../../tsconfig.es5.json", - "compilerOptions": { - "rootDir": ".", - "outDir": "build" - }, - "include": [ - "index.ts" - ], - "references": [ - { - "path": "../../../packages/opentelemetry-sdk-trace-base" - }, - { - "path": "../../packages/opentelemetry-sdk-node" - } - ] -} diff --git a/experimental/examples/README.md b/experimental/examples/README.md index b610177a69..8bfe7496c7 100644 --- a/experimental/examples/README.md +++ b/experimental/examples/README.md @@ -8,7 +8,7 @@ These examples are using work in progress metrics packages. |Name | Description | Complexity Level | ------------- | ------------- | ------------ | -|[metrics](metrics/) | Basic metrics collection and exports those metrics to a Prometheus compatible endpoint | Beginner | +|[prometheus](prometheus/) | Basic Metric use with Prometheus (`@opentelemetry/exporter-prometheus`) Exporter | Beginner | ## Contributing diff --git a/experimental/packages/exporter-trace-otlp-grpc/package.json b/experimental/packages/exporter-trace-otlp-grpc/package.json index e8c2a1996a..305e61e1a7 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.29.0", + "version": "0.29.2", "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", @@ -32,7 +32,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -49,7 +49,7 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/otlp-exporter-base": "0.29.0", + "@opentelemetry/otlp-exporter-base": "0.29.2", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -69,10 +69,10 @@ "dependencies": { "@grpc/grpc-js": "^1.5.9", "@grpc/proto-loader": "^0.6.9", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1" } } diff --git a/experimental/packages/exporter-trace-otlp-grpc/src/OTLPTraceExporter.ts b/experimental/packages/exporter-trace-otlp-grpc/src/OTLPTraceExporter.ts index baafc4773a..f4b0554715 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/src/OTLPTraceExporter.ts +++ b/experimental/packages/exporter-trace-otlp-grpc/src/OTLPTraceExporter.ts @@ -48,13 +48,7 @@ export class OTLPTraceExporter } getDefaultUrl(config: OTLPGRPCExporterConfigNode) { - return typeof config.url === 'string' - ? validateAndNormalizeUrl(config.url) - : getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT.length > 0 - ? validateAndNormalizeUrl(getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) - : getEnv().OTEL_EXPORTER_OTLP_ENDPOINT.length > 0 - ? validateAndNormalizeUrl(getEnv().OTEL_EXPORTER_OTLP_ENDPOINT) - : validateAndNormalizeUrl(DEFAULT_COLLECTOR_URL); + return validateAndNormalizeUrl(this.getUrlFromConfig(config)); } getServiceClientType() { @@ -64,4 +58,14 @@ export class OTLPTraceExporter getServiceProtoPath(): string { return 'opentelemetry/proto/collector/trace/v1/trace_service.proto'; } + + getUrlFromConfig(config: OTLPGRPCExporterConfigNode): string { + if (typeof config.url === 'string') { + return config.url; + } + + return getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || + getEnv().OTEL_EXPORTER_OTLP_ENDPOINT || + DEFAULT_COLLECTOR_URL; + } } diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.crt b/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.crt index b6db7d0dd2..27e1d6826b 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.crt +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.crt @@ -1,33 +1,33 @@ -----BEGIN CERTIFICATE----- -MIIFozCCA4ugAwIBAgIUCdllngMpqYtsqRCpqdXxPZiSbGEwDQYJKoZIhvcNAQEL +MIIFozCCA4ugAwIBAgIUC57UkrmvltHwm0jdwHjbFx/wIcMwDQYJKoZIhvcNAQEL BQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQHDBFPcGVuVGVs ZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9vdDENMAsGA1UECwwEVGVzdDELMAkGA1UE -AwwCY2EwHhcNMjEwNjA3MjAyNzMyWhcNMjIwNjA3MjAyNzMyWjBhMQswCQYDVQQG +AwwCY2EwHhcNMjIwNjA4MDk1MzU5WhcNMjMwNjA4MDk1MzU5WjBhMQswCQYDVQQG EwJDTDELMAkGA1UECAwCUk0xGjAYBgNVBAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0w CwYDVQQKDARSb290MQ0wCwYDVQQLDARUZXN0MQswCQYDVQQDDAJjYTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKS4d8790qpxSOMAMNSxlvFxZvxZKih5 -BjKDefa3sPL8iSOZ12mSZyWqPifjU+fnb3PDLWJPEFYQiwpyMctlXoXo5qiDm1D5 -mLZPTc7/qbiyu33YZHW+iE23GiOQBfvgKHTqh2+ejWs9h/txlWlQuKm0NEDPnA2P -kHiIjudSkWCT1w0WOnlJXd/9CWq6gW0nCTeOmwGYaY7T/i1W500qQyv5j1xHrJCu -m9amRzZEc1I4L2XF8Lnz2vDuEEs2W1vjcO++sXODlSC78dIyGnDWxGuK+V7dhccB -jj/Q5V96CMUoY7RGl18hwn/MSkzmWghsQFkfYWw1Xvez8/IWh7AlEtB/hDn2Dqw7 -lr6lvn1cOUmhHAgYV+v/0gWFN482qi3OaR0z2cCdmfSxRlxhtrq0jH7B3dW5YXcf -ke9e4gh7P980HWeHPwanBlV7BAsPxJY7N+je1LsjHVkwv2OnpkAzGQqJycOzPAzn -tib/lxmhBYVV4eWhCKvLrDqkgp5J3Cp99wIovW6TEfg2PJG4jZI9PKztPQb/OHZp -995oEAG8lmgcCA6kpvwVvle/m3wXj4eKQ1U0mQLGfJja2ripSBk7aAlr7qxWbvjv -4kxe5dJPMRmVB3PRZvnNilfM78Pbn+du0X8TiSwXeG5Og8uSvGwBzQNeW0EZ//b0 -fHNgQlyp4OL9AgMBAAGjUzBRMB0GA1UdDgQWBBSsdECnQyhXkgqyNWFlhkSGlUJd -MzAfBgNVHSMEGDAWgBSsdECnQyhXkgqyNWFlhkSGlUJdMzAPBgNVHRMBAf8EBTAD -AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQAAfgD6lqyOyEOfGMAhtb5OVLpn5hG6WLfd -wyjIYzMNW5DScV9hrgB1ycfA9OIqBECWY3zP76X41KVI0siu7qg3bkaPM2qh7sbO -LXYCkDHNYF69Tlf0JR+Wpr740DIqoITcZRLy+/FMFWij9tNAsY1EcLrSYuiEd8/L -OanlD9AaA3fL1pOsfiNM7Ec6nUFl537+yNFGxU+Q9T7EMb/ypz/FwN3/zBbO0xdk -ZqPh/jDETKorBH87QnFRidmK5DiXRwh323+l+cWEEe79ssGzLBcLr+rzOvDH0qbo -fLBWkRbBtAcRGJAgM0F9dLG4/hQisELobNSCZ4aITHmr1J6MFiVxaaEvIXQ94zgj -xVtAv2Fp4lvpJWMjk/iKc8IR56VkvK6bui7BYEFc+DmtJLw0ryFZDD1wEzbQ5Gzl -W7JBC3vR8zQPo7kVl99BKAsNLhC+tCGdbLLOJROyFWHai/bkcRPHOLOMY1/lM/Wf -rlIcc46pSIOzlsxnlrDzoQihjtg3SrNBkPaRaJE12WFHYELHBX+65HRGlkaXnxaY -HOqPN6NiHVB0i5C4+l0M7JdOx2kEYVQiprm4kBiM3BNMdRpThn4Vt12TnEyq/Cyz -khz4FAMw/ytbEWMxFvEQJdOK1vjmPHAMDSFXiixeklVUD5Th/9so4kRTu97j8fq/ -T0JDHso8+A== +KoZIhvcNAQEBBQADggIPADCCAgoCggIBANu7HBCDdS5EStAQP7W4K17xcEzGWB9w ++m8/pZpMIQMVJ0AvvxkGC1rp/uYzcFKjymCqOqFRjTVza5s3ltk6DEJKbwkszAIi +UTA26/AIKxy9iWCqbqS34utSIA8SfUDJx+Nb9PHW2/BZ9DqLsNqxUeq/3NO59z3/ +uMQt3rM7ijO8ETuWkXmje5r9WiuMXIapVBSzKaKwIuX8ikZnXWHFlP9Hej7UMNAl +qx5w/WVO/18UIqJRtwG7+uEN1uut+Jw1fqswctE+69yg1/TgrF9A9kx9e81ZKR9L +JE3K/BZw5z3jRVNxfyhWVCPS8G3znmijuToaS7GpL6S3Nxp7vYxjPx3F6K5DzF2t +Yz1qz6iyxvhm3J/TLz6OzJqP7qIg0Di1HBc/PdzGVSb35VxPYFwWjrAGWL3EzmWz +6ArQDCQdK6tSKlL2LpN0IHxOCSImQDZMB9YpveNenVBuLFhNGZAiow38WlXBS0RC +yQDBjhzwZJO5YE+itycxwFaLvyF/hLjfh5d7C+0tjoLRDZ3OlZQCHO+zdN/ZgZI9 +gx9NRyqmNudPhVzjN8+kQf7iXY0J+aT2XzPZzvMm2vKEB2BalP7iQ1aN+Szz1S5n +ESFDQgEnu9JjjZ/hcUuXNpi03m7O/pMq++fJ7Pib9YG93cBNYSRFulWU1rTD8z+Y +BE8Z+cluZD9xAgMBAAGjUzBRMB0GA1UdDgQWBBRZTBtOna2cDAuO5UP1Je85TKsE +CTAfBgNVHSMEGDAWgBRZTBtOna2cDAuO5UP1Je85TKsECTAPBgNVHRMBAf8EBTAD +AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQBWDujXcuCir18SZhm7ipTwRz50KG7x1W5/ +p32hHJlEYh83+7vytsVwO8W6Ugn8R76mIIeevZv5ahxZeNdLNKrF6qjwZp/INY64 +pO2rUiDqkbU8csQZm5mUMmEa06WytAims5e3wNzLlBEKCUArAy6jMctXm054uQiv +VPk79CEonOjvZBh72QAV+wDCm8oq7TGPgmLPYQkdg3ncPjAu1ubPoPupsUZKmO9G +369t/n5JNDM03Ksek3WFRr88xNIeGRwfAPkJH+XKuikM5PawKfkIX1S//C+NKwdG +9I5d+gO40Ap9itUGr4m0E541isW/poFzcEw8P+UV7WvPNJyCvdOxEIvji4SbLl4h +oCS2qNeREuhtfX0jGzxc9pfrj1w14159tpnwQay2Sf6UOSr6OSl46lETAQaWzJz+ +r/FDHy+T7THqvp++JlIkCfvtMZRXdCX6eRghc/03qSpizhDsAB3hMy/Yq3FA95WT +Rx56YJgzvEH1BUxfc/peTr6BGNEaonRvf9i2dnf+Z3jCJAn4WeKfTDmcpSnmcK4s +dOhQOYnupZCu8mYyC5aOPFB/Ovtm5USJDlWujUm+EjIaOUiPDqP7ff2wQX9+ympF +7xjbanad5F3E1gl623VuhGTI6jUiY5TnxVwh67WxIMb2/bP5Ko27/JmWbbJ1/Dar +g2LKPYSY8A== -----END CERTIFICATE----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.key b/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.key index 3a12f603d4..3ca1e8e149 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.key +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/ca.key @@ -1,54 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-EDE3-CBC,723F7ADBF5E86DF0 - -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.crt b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.crt index cbd324625f..cb5c4508d7 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.crt +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- MIIFPzCCAycCAQEwDQYJKoZIhvcNAQELBQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNV BAgMAlJNMRowGAYDVQQHDBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9v -dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjEwNjA3MjAyNzMzWhcN -MjIwNjA3MjAyNzMzWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV +dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjIwNjA4MDk1NDAxWhcN +MjMwNjA4MDk1NDAxWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV BAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0wCwYDVQQKDARUZXN0MQ8wDQYDVQQLDAZD bGllbnQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAMBc1F9O8OcCu8xspnN1MNwccUZCx+lsh1F50T5D0INmxz3rXxin -TkM+QjFsJ09iF8MmgouI+yxmTayMlW733dUc/XQ9cV9GRwWVlF1RnoYp7mXVwMnz -o80s7CGWc+geliqeLUgzGIoq4bGTp1eEeB2KGJ/w8E2bTLs5a6B0pHhQuVXZ+Pq0 -E0Uzl2wPc+WwjeZyGRU4PbWzX6bN+R05Pfxq8PXhJ6Jnt0j8pNoF/XU6mOIYQyQb -THEKR8qB2SXo5+D1JOlRiofWtK4wsRH/wNm7j7tq75UezhOeqp6YU6MwGnea1loa -65K+DDG/rFyvxSlDS/53gjyKGSqYod8pevvytKjtUmw6xX5i5nFnf+wrKmMH6EDe -Hm63LReBv/CqCErYt4kV3NkdIuHmv7ZIdRfhDPdK8Q/kzAlRTX25wK/xWn5CqpSK -KCUwukEzccV266KU4sG63/4byv6zE62z8472P6u+OGSZlDxznL0BBg9iiHFYiopw -shBfFcszPCSOs1SO8XZH+6J5ypKBzBP7aAsyJflPHWGTUBACY9ZCU/7iwIF7YFPb -a/temVMLkg75oYGVow0Dlp55jQvrzMr7IaSBCxFUJEKf5u6GSNotJWmQdHYta5SH -Kj/rryFQV5qp9mBfia5DWnjHijFZTo+c/KLrgkmzfgbT4qVpnuxKahXNAgMBAAEw -DQYJKoZIhvcNAQELBQADggIBAA2nZTbaa9z/LTNJijf0clu4ULPG4RrqHgQ1q/Wh -NbrNemrxTJ+ZAwCR1gTv4oZe9NBd+V1pDXDQBid8mBTbttVrQCHdjgHFpQKNeyiK -nd2OI4awYiTvGbgDCMHAW/yf+XKCocuSkyNRnmfe8PihFD9wx6+kl6XCJuIkF3Vw -MGKEIrW2WLAARtBZeKV2yhtuVhkNm2TNFPfNrNtk2gdGO8TkX0orOllAENopR+GV -uffuLiIi9KWj9XP9T+6bdZbG2eMJX8wUNIIma54/3XN3RMi2iV9ZxW+F0j6d9ryo -j8pJJfpiW4qh6Eqi6HyvrzgdndKhkVYiIwbX5S60mqL+KcaPghX2goWexMW94QlQ -Re3/IvOAzGpu5fLn//y2tAaO9hDUsyoIJtXcFJKLbfM+mK/Bac2niEyBpr9Rzqur -N43Ga2pOsM4P/4YcAO6tvs5htvh2ala6UDXeEZV9Z1Bc5bOHAWNp13BfWE01iLNC -5rIu0XuVo1aa0FeVdJL6IpVeEwnkzDDt/9LKgp2K8w71VAtUSOg23AEYJu+GFr4D -y+0bahUiNETrFaiCsXQYa9HHFrqhA/PGOGpyq6GrBkJxWpzuL3rQQicpHzVIQEmb -3aCcIBdA2RQwQk7Z3YI2EuFMkHAElCXXZBulvxY6kl1n+2UwWRlocDMYZdkzI3+X -Tw8x +ADCCAgoCggIBAMo9AlVbqKk0NI3U4IPhXARrA/9HCtW6TK8bNj+KqBETPJ0OV6Ep +FC1AUG8h6ZpQy1lAVchMOXXzVIxejJ53Wq2aBMELl7KaheEUAzbQNqSBxL7cY61l +sk1rd0ryQ0167j/tNV5h3FH4ZawD7vt2oGte4Dxipj+gFQx/MXD1j2vOKm0SO6xr +IdSWg79HRnMb6mJMCtTc6kvX5XDN3avwrhndsPKZREhs1ei6lhY4ip3N70357MB6 +vNF7euAMQU7KZ0uZZbj0lqINT+6jwEJ6yhkZM9ILKbxC8+IAhCAOsu2bKXtkhDSN +V+3Jr3x8PRWlhlCitGt9a8/DlT0RIfcXQHRmY7hdnMqt+7vJio56oHcyv2+8ap+C +rWr5OfsRuQvSs3ebn1zhDim0AspKOfdwGepPubgM/MuilYIi35L6CbRp+VbSGmIy +GUOGoWa3uykcMOm4hIK6bbFOGUTixbwIjRfxzuPfPLqIK+aQ5kBSUdDhK9LHpNOM +n0RihXBoRfE3VfnuWVcetp/FG7B5PTgCvP0Ss9QivTV/OQmi1juPa1ONmtZodZTz +eV2mDvZLQKFIInOQE/6dxMn+yrmYlQdV2nEiJU1yiKp5601OklqeX0BO1rWQy283 +AUwbAS5ZBmQeF4KmDZtEphdOTEDmu5YTyDhIvSK58Rq+iQq+CLmaYH3BAgMBAAEw +DQYJKoZIhvcNAQELBQADggIBABV90+TvW47WUdsZpy0eZayjWgIZvKqpWVcYI4Px +1zEGMVJvg8TPjPujGIdhkhxbabklqy/+s/im4ev9MnIGG0wckoYaJgH9KvtD/Br9 +3SpexmN9mQMO8/8299TWJBjS1q5UYjktvbuKFGpizs3+y4n88UmcXRh8y2Z1oglZ +WuXn5A5BJkpXONI3U615mXTf0CLnpbU//4z5VQe2AylksOgo3y7DHXz3iPOh15TN +EnDz7Pms0i8tswSbmS+NU2Clv7ACHhstdPoEqiN/V9gpjon1n+fBXaqMhaXI9C9b +NV9l5AW1utBAc/zlzRnKYtw/yrDW00KAN2FJbGefThJWPCYUlBx5hcCl1C8ObjIz +4b2+2TLdnwkMeeb8FV6mzTaQVWQ5Yr+ffQBqDhahEwjGyUOjzqFtGSlujWKLT4g1 +T9XnVr8KKU6UWDeHDp1lz8S9wo2l5DJN/S6u/SB9RXBOgzFVO9EWnbxkpR4YqdwK +WNP+Xhw9AO+DVX+/zK0PHF4f1z85E30R/V/CmvSx07jaXxK+ixcCykfb0DRvyVyr +WyVxz72LeJnsqWBSjBlwGslPsOzucA6RfN2b7/9rTObglKoKbEV/dSKoRZ34hFcV +nuiwRbVjVXH1az8FU8o+nG+anKW/jpVn4NcabYiHWH6qL+W3ZRTcWkyOOsSHHdOS +Hdil -----END CERTIFICATE----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.csr b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.csr index e5de7b1912..30ac376794 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.csr +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGQ2xp ZW50MRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDAXNRfTvDnArvMbKZzdTDcHHFGQsfpbIdRedE+Q9CDZsc9618Yp05D -PkIxbCdPYhfDJoKLiPssZk2sjJVu993VHP10PXFfRkcFlZRdUZ6GKe5l1cDJ86PN -LOwhlnPoHpYqni1IMxiKKuGxk6dXhHgdihif8PBNm0y7OWugdKR4ULlV2fj6tBNF -M5dsD3PlsI3mchkVOD21s1+mzfkdOT38avD14SeiZ7dI/KTaBf11OpjiGEMkG0xx -CkfKgdkl6Ofg9STpUYqH1rSuMLER/8DZu4+7au+VHs4TnqqemFOjMBp3mtZaGuuS -vgwxv6xcr8UpQ0v+d4I8ihkqmKHfKXr78rSo7VJsOsV+YuZxZ3/sKypjB+hA3h5u -ty0Xgb/wqghK2LeJFdzZHSLh5r+2SHUX4Qz3SvEP5MwJUU19ucCv8Vp+QqqUiigl -MLpBM3HFduuilOLBut/+G8r+sxOts/OO9j+rvjhkmZQ8c5y9AQYPYohxWIqKcLIQ -XxXLMzwkjrNUjvF2R/uiecqSgcwT+2gLMiX5Tx1hk1AQAmPWQlP+4sCBe2BT22v7 -XplTC5IO+aGBlaMNA5aeeY0L68zK+yGkgQsRVCRCn+buhkjaLSVpkHR2LWuUhyo/ -668hUFeaqfZgX4muQ1p4x4oxWU6PnPyi64JJs34G0+KlaZ7sSmoVzQIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBAAtbvw2rrtnO5EeOF1Z+mJc9o3036liNbmCQTaC7 -Pf2yqo3Zk44L80R99sX5rDoq79MKEr//ED5C410EiCvzX42w330p7dasuoYRAwLw -YB0UwWnrKhm4SU20SC8zpnCUBL6K9lmXF2PJtkoMgFAnB8tIEc+DAr4hBIqh45vD -VgZ06GHH94/G6tIW3qNvi1mmvUYV0i6D3xBhcNAu6R/zopEYM3png24ZE2IlzZCX -x8hbYuMAqeQXSHQM9sKhXeb60GT8ns7d3P17S/TfpkTI7zRMkPhzsHC/Vp97xN/n -ojEEBY3MZJBPZj/q/buDfbp5x6H7/YxYdOKQKaGVWECGabISBcsg8NxaY++GKc+u -10C8O9KILRCJKGh8ze7chXx5n5+BPEoVVwhLn58eV7sOODvb4kZySUJHvFBb0ZM/ -7626K3443e5ZRkGXydvDIwPZgoiJ3L1L9+olL1cJ5rsRE6L5k6vPuJOeZITm4au2 -pE0THMHx/RjCMA1Lb/0BiDqbBHSh8hh+mHU7YXTq1Fxi2dSas0wAxcTBRs8TULsV -o57TmJqF+byiqwQvugyN7tndvWg9c+LDJHqitA5QC1GDXEi/bdjd7YeHRiL+ciVM -ZXXU9GT1O78O+84wbIDebahn8cifdGa7Kft7GftS3pCIyAjU9+eMXyT1JG3nssLr -4/ht +ggIKAoICAQDKPQJVW6ipNDSN1OCD4VwEawP/RwrVukyvGzY/iqgREzydDlehKRQt +QFBvIemaUMtZQFXITDl181SMXoyed1qtmgTBC5eymoXhFAM20DakgcS+3GOtZbJN +a3dK8kNNeu4/7TVeYdxR+GWsA+77dqBrXuA8YqY/oBUMfzFw9Y9rziptEjusayHU +loO/R0ZzG+piTArU3OpL1+Vwzd2r8K4Z3bDymURIbNXoupYWOIqdze9N+ezAerzR +e3rgDEFOymdLmWW49JaiDU/uo8BCesoZGTPSCym8QvPiAIQgDrLtmyl7ZIQ0jVft +ya98fD0VpYZQorRrfWvPw5U9ESH3F0B0ZmO4XZzKrfu7yYqOeqB3Mr9vvGqfgq1q ++Tn7EbkL0rN3m59c4Q4ptALKSjn3cBnqT7m4DPzLopWCIt+S+gm0aflW0hpiMhlD +hqFmt7spHDDpuISCum2xThlE4sW8CI0X8c7j3zy6iCvmkOZAUlHQ4SvSx6TTjJ9E +YoVwaEXxN1X57llXHrafxRuweT04Arz9ErPUIr01fzkJotY7j2tTjZrWaHWU83ld +pg72S0ChSCJzkBP+ncTJ/sq5mJUHVdpxIiVNcoiqeetNTpJanl9ATta1kMtvNwFM +GwEuWQZkHheCpg2bRKYXTkxA5ruWE8g4SL0iufEavokKvgi5mmB9wQIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBAGsOxCfMBI11h5BOvDgKpVlAhxHlwyitXGPQHcsr +tjOQi0CRnkcrUMZcgnjX3OPCD3ngjZJW02m82BrN7WJJpSLzEKpnKP6Y91BXfHma +3qPFmMNkXCZ8WRjp6K/l98z9j+lFksN5y2BJCqf8oL1iURPYuHlgRK3LhpR4LOPt +JrJYwAML4hr1g93ejdwGc1LjNx8dyAriCM7h7IwhYGgnT1kYu/shVgT6SH0+ixAq +PNIOekCJH75k9C/QP/hPPARbAzD5of69haLeAcABik/cH/RRuDHTTVxgHFfV/W8r +BWwf7IIxX0iEPCQWxW1Q5SfzOmP9ICLFln4s38MgEGIyGqxgfkSi3nuLkwKTLB1j +NppTiO7Da4Vvso85hdLqNXvE3J6VSiu2c0oDf/ZZYkSizEzt9ESPPp3VcNj2MDbr +CxwhzV018wovlTunUSwKWvRn+syT10bnzZX/+QarZ7mfq57DPfMHNiiPM1ej26eE +Z7A3R3J67H4Ifp5Ua9jdga6x0RfOBRDuZv2N861eVs+9jSIC+hmrvQ1TbTvzHFVB +KYE1UBDRNijuGwsYgZ74vPKLGgA7cFs9X2JXzKc/0Y9opgBltZlNBF97XZSLDw1v +VaPCUVqOU6VKamPX8nVhkpHoUdDSl08T+VKwP5Da4oJHmSZMzxRQLl2TZnIru14+ +uVcP -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.key b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.key index 9219944ca4..fd649acf54 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.key +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/client.key @@ -1,51 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.crt b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.crt index 09094e4526..da8b6beedd 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.crt +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- MIIFPzCCAycCAQEwDQYJKoZIhvcNAQELBQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNV BAgMAlJNMRowGAYDVQQHDBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9v -dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjEwNjA3MjAyNzMyWhcN -MjIwNjA3MjAyNzMyWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV +dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjIwNjA4MDk1NDAwWhcN +MjMwNjA4MDk1NDAwWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV BAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0wCwYDVQQKDARUZXN0MQ8wDQYDVQQLDAZT ZXJ2ZXIxEjAQBgNVBAMMCWxvY2FsaG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBANaRv7jpdEedG0CQ/LoJEXuE32eZXzar45u05wq5CzqnUlYdHyx8 -cgCJJ44KThFXiOzgELFiiwjxmPo1CDLqGp8vEDHntvhxLhw/mFy/aa7YrCv1/1eX -0+cEvNUyoikjHKXECI7sV1ZVMrimGKXQNqRfub1JbJ+IzL+kp6MRtdA6GzxsU0Dg -Wwf7IQxtCQ4Tw3onJ3P3NZAkgz6zCVhOVkR7DuqGulzTQDa//mWwKQJie5wscURj -vLsJ0prS16Tc/5yXijwRjwx8ZEoDrJ5KszoMQwKIoLN7wHBo2r8/8RQsOGTVMJ1I -9kOkH3s9clswxCrnpzdNNmyIwTWaQ6CqpQpp0unGimF3VokanHhOhcpkWfzDArmU -jL4PIFBQBJvHIEKbuhZ4pUYL/6RtgEg2f3xVPe8s0hn/DzwJTgXqEX+TY7WvIKmH -0sMGZ9TZzWe9W64LM2/427+6pfgQOAJDHNLSYpmaa14R+630IMocdY6sj2hoZ9TK -8Ridqn+q+5kIpG/pP7bbzbzsotdzjNb6h7GBlsuyycoOfiP+C6Zs/yUZAAZEsSm0 -e4dXFCccurkXRL7cZJHC/agQhkkvcEP1TpmaygjbucME+h6H0G0St8yzBQwEJdkn -wNmfEhIdjmiX6u/fvPO6VJ5HBxgA5gONJlk+4EbiZTfl2rYauBFhloHzAgMBAAEw -DQYJKoZIhvcNAQELBQADggIBACIJLqVoH8oh8W0/0IF3sxH8LFsGByi0CUPo1JEB -1t3+FqyC7eFC9rDW12LfOKgiZl273OBpCHT8bx3OkoGZ4KwZsbsznyJv/X5OVYFH -5y5Lo8QNGWWMzXoK2JLlYJXZHMaJr5tTFOGqoIvC9C8ibLSAbL0MhtB9L5SvSxAm -mUOKZ/en7ZBepRex/s/rfCWYYTw2Ah02HZc8+H/J/aF3tvChI7Gx0anaSQxS48Ru -3eCaiaBEfoSGQvN9Jc+k1QJgJ4vZ8yi7ndl8pwW97YXo8Sg305ritqpnon+vemsV -rYoqHN+WV2/D0nqNu1AX8PldDvUYTfBtLfS7T5goN7abEIJCaTNmzU2ji0SqI9vJ -j4t9E9KcCKMshbciDrD7RPEPk3vogEDD3uygFwcPwUQfpCUFbRJOnTSH1oB/aUC4 -x9DnYSHBdDvaBmu0pBpoddJ+0pbw02P7YL9kPz5OnOAN06JP4McIYz5ytKoSt/m8 -Z7cUnvn7TRVNLuiapwpB0gtRmb9JY1q3pd63+X0SCaBEtUH+PWcRcS7eDsgMwEym -0CyANhCQYJjcKugIWLYtN/0/p2bIKcRmcH3iJiN2zZtP1AF6G7a4mp+21OynvFOc -3+ojTDGJxxD3uPtKEhJXRgYMOmfAEn3rgtoln1kkNYcd7f2EIulckwB2yeM1IMud -0le7 +ADCCAgoCggIBAKF4wbhjwTd048CdtquNjhuVGIvPxpdNaCPXbSJN9joRqRwp0vt4 +DnRfLWda34UzZ9fxXN4HTgYrzLYkrdOUhvourhjka2mjcs1kOjlfFeGwgJe8LTVG +6qE+LdJFw4xPd53dZtsN1dQaj7e/GlK4jNI69qtq16dnFswjbzAI62or9MHdzY4F +fEFReMr25kGSo+/nNwI21PbiMhZ+OSTuoSgomx6JmXUYG9+uZFZTrE+fn47jMK4w +Bv1W+U2D1w2Aof01lyfQQ/giMY6XUAIPHIyBEvFyF1sdU+ZJzubl3vPGzf84If8+ +31iYsYEoqR3vwYs7+fmAWXOcXnjL8N0QqZPT37fsKLF1l+WCxhWLMlc8x9Kq8Gez +mOJRrR3j5Ui+ux6TpQV3aIXj3ykUIeDIIwRPNsDrwzJLNG28YVMV1rz4+V2/MsQ4 +ML1MilP3ZB9uxUN391XulLxsQI0olv+LZqKYnqqeHbFDt61Hr4WmefqKqB4rlO1j +WH4SLCEykzToFQpK9MQpPmUJ2UZrudN3flJGZ8bpnGu2gA2rgqfejB52D5jpZTzT +RU9OZp1v6JWjjRh3vcqVSin0mPLEXQj11cpKOBzIBEjqoPtpnjH8SQd9mb7n/o5q +8gLSuTcOqn3lLH3DvLTBilsmNcIbBItpC6QGc5EVqPlAJKIvLvOGb6B5AgMBAAEw +DQYJKoZIhvcNAQELBQADggIBAEdYvhg/TGjtzlJIqUv1qfyJr6gOm9Ydoz1WDaau +HJTkmI7vCeHUDxnhXEq1lYKt89XvUHsfI0lkCV2Gt+wppsL3ZZIGsv0C70nIPTIT +egPoBeUpqk1ZtPN3VEvgD3GDjAJzuvaL1Uhw9Yt4qKxP6ozyRfhObbTSomLNplui +LGGd6PqVF1vDAx6Ubw/LaNQzVjzQsMm4AgafakIh4c9aA3zxyZvUwAvT7ZVElMHK +moEudZQzL9Cx/Y9Pgv+z3JcXpT7UbDWSB/dVi5ZgcTtzHaYKAMFaunxNYqwWoicf +zB1uk2QOLgfxteWBjeaNl9UfXShGm+iGRoVVL7VrayO6+ScGchUGN5h1qR4xzWpA +2QKSb7t1oEW/GtrV6AD3jJUjcna4LP6DdpY/0IocgU5KonR0eFUNrZA8hUsXquQ0 +/Cx9d7ktdEDudeS4tJywF1CI3IcIZQ2vExJ+NjdlAFIVFkaqFFLhv/cCcGaBpH7X +6dc5bOoqyOgX97yBJJX9Joz6ZoAp2XO1tvycxj2g84V90lDsbTurmyuoR8yTcBbE +FNseKWNRi4fmsB1etz/HX3h1qUPP1ze+fY4C2zPleIB6uSKM5ZfODpMDejHQRF29 +YshoFbAJ19zOHYY+5LYHoLGJlN34TJ4ouPpAtRIQu4ebQZwMxddU1759sCIIwkHe +V5d5 -----END CERTIFICATE----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.csr b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.csr index bb61322340..d8ab7deb4b 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.csr +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGU2Vy dmVyMRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDWkb+46XRHnRtAkPy6CRF7hN9nmV82q+ObtOcKuQs6p1JWHR8sfHIA -iSeOCk4RV4js4BCxYosI8Zj6NQgy6hqfLxAx57b4cS4cP5hcv2mu2Kwr9f9Xl9Pn -BLzVMqIpIxylxAiO7FdWVTK4phil0DakX7m9SWyfiMy/pKejEbXQOhs8bFNA4FsH -+yEMbQkOE8N6Jydz9zWQJIM+swlYTlZEew7qhrpc00A2v/5lsCkCYnucLHFEY7y7 -CdKa0tek3P+cl4o8EY8MfGRKA6yeSrM6DEMCiKCze8BwaNq/P/EULDhk1TCdSPZD -pB97PXJbMMQq56c3TTZsiME1mkOgqqUKadLpxophd1aJGpx4ToXKZFn8wwK5lIy+ -DyBQUASbxyBCm7oWeKVGC/+kbYBINn98VT3vLNIZ/w88CU4F6hF/k2O1ryCph9LD -BmfU2c1nvVuuCzNv+Nu/uqX4EDgCQxzS0mKZmmteEfut9CDKHHWOrI9oaGfUyvEY -nap/qvuZCKRv6T+228287KLXc4zW+oexgZbLssnKDn4j/gumbP8lGQAGRLEptHuH -VxQnHLq5F0S+3GSRwv2oEIZJL3BD9U6ZmsoI27nDBPoeh9BtErfMswUMBCXZJ8DZ -nxISHY5ol+rv37zzulSeRwcYAOYDjSZZPuBG4mU35dq2GrgRYZaB8wIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBALQRbWtd7VIT7PI0g2TJY2nyFDZ+iNLlsqtlTQ+3 -9tDUNf911AyXGFBH2OaIg49UEl3Dn3ErAH6nZluZhRNjZRUYfE2dSEVYoeAA3SmE -FElARM1CX4dQUDnV++RLLRIKKGfcnwU+vSEWN4QfXs9qjI2UK80CBr6kPEt+bMfR -wUIax5HT1XLECoLph1rNza0h3WNk5ndEJMAt51U0JNAi6PwDF04ZfnX5E2RtiEjV -+3DPW1HYlX2hepkXVJPB568bbpmWLrmJsHjVZy4vmDoQi2bzS/QPsepgQ3aXxNel -vTxh0Or5SdIRRfNnP/Ov/aYjBxzkcKY83ADh7h1aqMOlUyFenHoMfTWnMYkeNY+1 -dOoLUS/ZNA6IH54UO7uY0uOcwCfRPYZzDxZI0IkjogX0aizixSs5duQx0ux3sUOo -a4zxMNPd89ppbCMZDS7biC7cOAsdDYXKcE5ijpc5CQXVo4/dA2xyfisRT7WUq9ay -vmQoYfMCAkGv47BVYhzASyPIXuFP2/HDbtnBvZ2aeSuMAwhHzj3vX9js2HGy7t2V -kj36LymQv+YBp9mV9/crSqy0DNFAYOWOuig0mQX/SPedGa4jf9v4OhANi+kzgxtQ -hBTcA0OtJyrVxesVGGK0YwaQIIZ8jwhsK3ljlZpOfVUflHl2/etME1DXtU37U9xA -fuw0 +ggIKAoICAQCheMG4Y8E3dOPAnbarjY4blRiLz8aXTWgj120iTfY6EakcKdL7eA50 +Xy1nWt+FM2fX8VzeB04GK8y2JK3TlIb6Lq4Y5Gtpo3LNZDo5XxXhsICXvC01Ruqh +Pi3SRcOMT3ed3WbbDdXUGo+3vxpSuIzSOvaratenZxbMI28wCOtqK/TB3c2OBXxB +UXjK9uZBkqPv5zcCNtT24jIWfjkk7qEoKJseiZl1GBvfrmRWU6xPn5+O4zCuMAb9 +VvlNg9cNgKH9NZcn0EP4IjGOl1ACDxyMgRLxchdbHVPmSc7m5d7zxs3/OCH/Pt9Y +mLGBKKkd78GLO/n5gFlznF54y/DdEKmT09+37CixdZflgsYVizJXPMfSqvBns5ji +Ua0d4+VIvrsek6UFd2iF498pFCHgyCMETzbA68MySzRtvGFTFda8+PldvzLEODC9 +TIpT92QfbsVDd/dV7pS8bECNKJb/i2aimJ6qnh2xQ7etR6+Fpnn6iqgeK5TtY1h+ +EiwhMpM06BUKSvTEKT5lCdlGa7nTd35SRmfG6ZxrtoANq4Kn3owedg+Y6WU800VP +Tmadb+iVo40Yd73KlUop9JjyxF0I9dXKSjgcyARI6qD7aZ4x/EkHfZm+5/6OavIC +0rk3Dqp95Sx9w7y0wYpbJjXCGwSLaQukBnORFaj5QCSiLy7zhm+geQIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBADoGwPR/TLe0PwsB2orIjrHnsZLYzcHxh9JdRaCO +Q07NvbocAqN3nIiHaUI/IqZG3aiBQb7i98maE2fcFVgsMoRVLB2GsQw+bzoPF+45 +kbtff4L1mHEt8AIIL063AepTetAMUfojpoRI0JG6pChzHDxuud++kPrz50wR5eEk +OhDjX46qh8VxExH3rfU+VDY/FvXMJaMLa76HOmY93g/p+C6T+SiTrs+QEPqWsMKa +eHJTTP0PZx8ikdT64aJpDiOmXVthymPPSZvDEWzlJ7RF8y0p+SoqPM3Pv8/M7zq7 +2dRL6UABTMGtBMEtj5DDZYWTl+1O8Yn4xhjHBcDT3ug3IvnCKCpX2ufi+wJzaWEu +QFAL+N5Sc1rZxklqWKprQeGBiEIE3UXdDA6Xvom85gLoaWoH6nMFvDNab+zJl4Ty +0Iiciq9jzUq4eda/TjgPxDs6RNlJxSXs1lASUR0Jx+Nb9wH2R1n6XQJhcOrz6nJ/ +T+/INYf5VrUdvf9P0PRub7Ga962fBDUG6WQx3PPjy/iEmffN/nsBXXzvQiw7ObW4 +eNCQob2H/3lAdxOs2txKhTCgUV9CzUb2P4Uq4s26n0yA6qpVG6Jgp14s+kVrgFYQ +KjhoFMWXtN3YqETnVNe6A9PEwkSpCm/JyGTm524ok0KyrXo1nSm1WKZqEIQCpp2D +vQFY -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.key b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.key index ddac188c23..9147802e7d 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.key +++ b/experimental/packages/exporter-trace-otlp-grpc/test/certs/server.key @@ -1,51 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/exporter-trace-otlp-http/package.json b/experimental/packages/exporter-trace-otlp-http/package.json index fe34ec15eb..86fbc762b0 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.29.0", + "version": "0.29.2", "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", @@ -43,7 +43,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -94,10 +94,10 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/otlp-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1" } } diff --git a/experimental/packages/exporter-trace-otlp-proto/package.json b/experimental/packages/exporter-trace-otlp-proto/package.json index b9bce279a7..5e3f0b4160 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector using protobuf over HTTP", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -32,7 +32,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -67,12 +67,12 @@ }, "dependencies": { "@grpc/proto-loader": "^0.6.9", - "@opentelemetry/core": "1.1.1", - "@opentelemetry/otlp-exporter-base": "0.29.0", - "@opentelemetry/otlp-proto-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-exporter-base": "0.29.2", + "@opentelemetry/otlp-proto-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "protobufjs": "^6.9.0" } } diff --git a/experimental/packages/opentelemetry-api-metrics/package.json b/experimental/packages/opentelemetry-api-metrics/package.json index 89852dd701..5c4935b05c 100644 --- a/experimental/packages/opentelemetry-api-metrics/package.json +++ b/experimental/packages/opentelemetry-api-metrics/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/api-metrics", - "version": "0.29.0", + "version": "0.29.2", "description": "Public metrics API for OpenTelemetry", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -41,7 +41,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md index e85afe9b33..1d6ec677f0 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md @@ -4,7 +4,7 @@ [![Apache License][license-image]][license-image] This module provides exporter for web and node to be used with [opentelemetry-collector][opentelemetry-collector-url]. -Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.16 <=0.50`. +Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.16 <=0.53`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json index effa755889..a5f222179e 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.29.0", + "version": "0.29.2", "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", @@ -32,7 +32,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -49,7 +49,7 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/api-metrics": "0.29.0", + "@opentelemetry/api-metrics": "0.29.2", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -69,11 +69,11 @@ "dependencies": { "@grpc/grpc-js": "^1.5.9", "@grpc/proto-loader": "^0.6.9", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.29.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.29.2", + "@opentelemetry/otlp-grpc-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2" } } diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/src/OTLPMetricExporter.ts b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/src/OTLPMetricExporter.ts index 71e6e9b105..90c6ceb92b 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/src/OTLPMetricExporter.ts +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/src/OTLPMetricExporter.ts @@ -51,18 +51,22 @@ class OTLPMetricExporterProxy extends OTLPGRPCExporterNodeBase 0 - ? validateAndNormalizeUrl(getEnv().OTEL_EXPORTER_OTLP_METRICS_ENDPOINT) - : getEnv().OTEL_EXPORTER_OTLP_ENDPOINT.length > 0 - ? validateAndNormalizeUrl(getEnv().OTEL_EXPORTER_OTLP_ENDPOINT) - : validateAndNormalizeUrl(DEFAULT_COLLECTOR_URL); + return validateAndNormalizeUrl(this.getUrlFromConfig(config)); } convert(metrics: ResourceMetrics[]): IExportMetricsServiceRequest { return createExportMetricsServiceRequest(metrics); } + + getUrlFromConfig(config: OTLPGRPCExporterConfigNode): string { + if (typeof config.url === 'string') { + return config.url; + } + + return getEnv().OTEL_EXPORTER_OTLP_METRICS_ENDPOINT || + getEnv().OTEL_EXPORTER_OTLP_ENDPOINT || + DEFAULT_COLLECTOR_URL; + } } /** diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.crt b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.crt index b6db7d0dd2..79e43541a2 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.crt +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.crt @@ -1,33 +1,33 @@ -----BEGIN CERTIFICATE----- -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 -T0JDHso8+A== +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL/YJuxNGNIzwoq1alb4Z/lP4+JRS1iI +LyEJ98Hcw2gfW+nYuIGA0XX7vwVRo7hStCEQRWP4KtdzfJkfNeicWUAnoCTKTf9L +DaxvBr8/4x7DF/7TkYIpK3uuAXadl3kz3R6CA1MueOndbEx9XGtdac174Ad5iIAn +P1fm45svFimFwC0uYPwNliWJ/1yVFyS9rDK0DAIbwxRgFl9FErooyPpVAyAetCvF +AL458EspEN98iM3cFx1LrLJmmalm4YLeYPmcRcn0eKmnP1wGnlk4y4DFEsHe+HNM +7L8/mWLDfinugbXsl/Nspkj8AP3+mebCU5QhO59Uj5XemF4gQeA6nv/bPSQ+72EE +CKuxNt2UA6h2ZKI8ahbNSjjZeVLrFxLRJJHqkUjZCvmhAu4MEtHUcrsDwFkNr2ax +LmQeo/meM8AdPlUTzEi/sl6kUgqU8go41sKroaC4ABe0R/gbMhMz6bRwxdfl3Plt +RYkDyQhOOQfQKQunzI8TLdtciV5KXtxI2bPbdrKdtnYMe3m7YtGvCCVaY/TIZoYW +YbWGFDwmBRx529wp1CgsvuG331wrNBFRe3Gkpafrx3ZTh5PAwI3y7YlvIc5NboQX +aNJ50aItL6tUV2EEAF59di0rTd+JusCmlaLEnJfKW2paDASxqhJ0Y+eYjRis3WdT +axEnv88LeiqBAgMBAAGjUzBRMB0GA1UdDgQWBBQ+c5NiMcl412zrMHGGOBLRiGS0 +ajAfBgNVHSMEGDAWgBQ+c5NiMcl412zrMHGGOBLRiGS0ajAPBgNVHRMBAf8EBTAD +AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQB+T9OpaPs5u9dhFbwBaRi596UpjzSNDscP +Oa3fhfEDM7OQ2FcnXBsFkSdpxLCaXRGxuvYe0eoHCWa7Wna/kdkr3xlnXzRNS/6H +D5oDEPZstPSP4G9L8egNhV1yW10zxr5ZErScwkt9SX71jp+rSa4neRkm3GY0UnX8 +qLWHSIetCSN81T4SkH7xf9fltBcTUyphMegQDmIOw3YHi9tFe7MPqjZhzZXg0UWK +Az6E509HTqpxHMPy9LtjvqVJ1ipiaP7pq3uoIX6M6x/TKsszAR/N9OuFk5KHrNis +X5GXVTm8INgiLQxXBuquuD9AoZn0lEdMAnwfTqwTP87LrVKKAMJzS/PiQORwmEoB +1mz34Fy599wGyCB7Td02g73auSEFG/WDJ+2JTVtFCCzvVmVPzJO9nHvPJQ69iNdJ +2y7IkygdwgIQDPWFcTjuzZo333jJT8C+MnKeBhxdzz3QtYZKaktyW4Zo+Z1DWPVu +ao/mMr3AoXDO4quQRrgUCUGwj4TGTFkFvwwAJAR47o1wQOwsQ5pxq3qnDBUbPrqh +xtKUd0mQWtyW8YnGRGyU1EDKZmZ3qR8zUNzyWOp2enlh1Eig1Uz5Iy6YjKd2lkYf +dOnAKZT3LC/bN3IzUD6SJYyDiGYzk8FLTNJIEIy9gn7ugV4SK/eoXV4k2PDfZhD3 +QXqKvEKERA== -----END CERTIFICATE----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.key b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.key index 3a12f603d4..b991da8086 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.key +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/ca.key @@ -1,54 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-EDE3-CBC,723F7ADBF5E86DF0 - -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.crt b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.crt index cbd324625f..a411611e29 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.crt +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- MIIFPzCCAycCAQEwDQYJKoZIhvcNAQELBQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNV BAgMAlJNMRowGAYDVQQHDBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9v -dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjEwNjA3MjAyNzMzWhcN -MjIwNjA3MjAyNzMzWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV +dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjIwNjA4MDkwNDU3WhcN +MjMwNjA4MDkwNDU3WjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV BAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0wCwYDVQQKDARUZXN0MQ8wDQYDVQQLDAZD bGllbnQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAMBc1F9O8OcCu8xspnN1MNwccUZCx+lsh1F50T5D0INmxz3rXxin -TkM+QjFsJ09iF8MmgouI+yxmTayMlW733dUc/XQ9cV9GRwWVlF1RnoYp7mXVwMnz -o80s7CGWc+geliqeLUgzGIoq4bGTp1eEeB2KGJ/w8E2bTLs5a6B0pHhQuVXZ+Pq0 -E0Uzl2wPc+WwjeZyGRU4PbWzX6bN+R05Pfxq8PXhJ6Jnt0j8pNoF/XU6mOIYQyQb -THEKR8qB2SXo5+D1JOlRiofWtK4wsRH/wNm7j7tq75UezhOeqp6YU6MwGnea1loa -65K+DDG/rFyvxSlDS/53gjyKGSqYod8pevvytKjtUmw6xX5i5nFnf+wrKmMH6EDe -Hm63LReBv/CqCErYt4kV3NkdIuHmv7ZIdRfhDPdK8Q/kzAlRTX25wK/xWn5CqpSK -KCUwukEzccV266KU4sG63/4byv6zE62z8472P6u+OGSZlDxznL0BBg9iiHFYiopw -shBfFcszPCSOs1SO8XZH+6J5ypKBzBP7aAsyJflPHWGTUBACY9ZCU/7iwIF7YFPb -a/temVMLkg75oYGVow0Dlp55jQvrzMr7IaSBCxFUJEKf5u6GSNotJWmQdHYta5SH -Kj/rryFQV5qp9mBfia5DWnjHijFZTo+c/KLrgkmzfgbT4qVpnuxKahXNAgMBAAEw -DQYJKoZIhvcNAQELBQADggIBAA2nZTbaa9z/LTNJijf0clu4ULPG4RrqHgQ1q/Wh -NbrNemrxTJ+ZAwCR1gTv4oZe9NBd+V1pDXDQBid8mBTbttVrQCHdjgHFpQKNeyiK -nd2OI4awYiTvGbgDCMHAW/yf+XKCocuSkyNRnmfe8PihFD9wx6+kl6XCJuIkF3Vw -MGKEIrW2WLAARtBZeKV2yhtuVhkNm2TNFPfNrNtk2gdGO8TkX0orOllAENopR+GV -uffuLiIi9KWj9XP9T+6bdZbG2eMJX8wUNIIma54/3XN3RMi2iV9ZxW+F0j6d9ryo -j8pJJfpiW4qh6Eqi6HyvrzgdndKhkVYiIwbX5S60mqL+KcaPghX2goWexMW94QlQ -Re3/IvOAzGpu5fLn//y2tAaO9hDUsyoIJtXcFJKLbfM+mK/Bac2niEyBpr9Rzqur -N43Ga2pOsM4P/4YcAO6tvs5htvh2ala6UDXeEZV9Z1Bc5bOHAWNp13BfWE01iLNC -5rIu0XuVo1aa0FeVdJL6IpVeEwnkzDDt/9LKgp2K8w71VAtUSOg23AEYJu+GFr4D -y+0bahUiNETrFaiCsXQYa9HHFrqhA/PGOGpyq6GrBkJxWpzuL3rQQicpHzVIQEmb -3aCcIBdA2RQwQk7Z3YI2EuFMkHAElCXXZBulvxY6kl1n+2UwWRlocDMYZdkzI3+X -Tw8x +ADCCAgoCggIBAKmJw3BpO3T+4AIiOwE6FYCge7+R4F300DAHKKsZfSpZWcoCYEs3 +cwhEuoE0cbupK/wPHc4imhL4cI97w0hMeupIGYEH5nhBRlFz++P9lj99Vya4DUhc +VGYo/5VqS6SJGLXIQX1QVN5u4HxX7zCsYLOxhpS/NkG0MtdHQHnhEiCi+zxINFsX +o2ESme5U7w8YDr/iS6+934Ym60euLRqLTvg3mc2KWEhC/x3L8M6hKBqwPaVI8nR1 +nr6uUnk9DvPX6C+yieYfReqhZm9QHrNFM5ZlZF7gqLjCDgW730Gb2vkmRje2a13Z +aqgFI1NwTZHr3b3eyotLjvCRfgEWSEHJ//MC7lFU1DTDiYvD96DoCDcRif1ZfMTC +EkKs3Y5xxUOZyM0KYud2zg3t3aTP0jD6XCxt52BOSUxE7QwdlaO3/BYMDYH1EiT0 +ksHkIqXONJrrDmZdwt/JzODkT5DWUYoCAJxNjsUhimf5P1ew4Fz0aKj389v8dvKr +6jCl5Q/LCqkMlrSANWCVGVBfjfKLc58HtPKB8HLO6YX9nPJ8e1AWo3uDWWBATMDz +TTOaM6YmSzvWfK1lahVKf3bACgr/HN9F7O1hu98FS0nxNQfHFHSpD0oi/aGOJ7mm +iX1wbJjtqfihEA/u/wDNfJuarwqAKrXMn80ROX2a88BTl50rQlAuNEolAgMBAAEw +DQYJKoZIhvcNAQELBQADggIBAHl20Cqv+gbgc79sQgoX28sJpvkoS3jVWRDCgUZm +pd37c6CoG6qntTV0ljtwWup6ji3L8L2ezNGKCoW9iijnL1vxNMU2ZUTZxu7lOtsr +bNvII8MlzT2cHAGq+ReU7K1SNNM5di5NuoURywcya/YIZpX1ZuyXZUn6/pX0xoG+ +KsLxSypUjWc+FQ56Dywg3q9rtfec7ub4VdUe95mYUv1nj/3/F1K8J2ynLLmIEYZk +JmI3+3WHDqED8M0APPwP1Ar94tq7R9GRYzlppa7qwSkzz5tLrkFccXszr5qKwchv +VR2HqKtxmzewp3Vy5RUvv/4xk0AV0+aSk9DV063dlxEpPQGjueddexNJoP+OZzM3 +1vRlXJedNEHqucReW7KhbQdtOppNPg8kHfFa3gqLyfRGCPNLotTcXJT7wyiTbBKa +uW6oKHLEZWJoQuIFnUYoP2r/+gbYj6HqG4LAhSXc70gI+G6zPdYqREQY8agaAAtm +cbPV46cbGnpV02CchTib+cVpRrwgGAFAomr87eX/ccjiXjZEsy0ln/0Du9dIzJOV +pWBha4puk5mwUr2WyGczdXQsyyHKEwPOs3SeOpv1sK5oG5U2iSn/oonuEZ3rUflm +9KprXBjFSp+2L51dCVufawru8oieK0jU10BtpoVakSNS5OcbJTP8NY3S3IKfNfY1 +gxCH -----END CERTIFICATE----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.csr b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.csr index e5de7b1912..ecca8ff676 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.csr +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGQ2xp ZW50MRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDAXNRfTvDnArvMbKZzdTDcHHFGQsfpbIdRedE+Q9CDZsc9618Yp05D -PkIxbCdPYhfDJoKLiPssZk2sjJVu993VHP10PXFfRkcFlZRdUZ6GKe5l1cDJ86PN -LOwhlnPoHpYqni1IMxiKKuGxk6dXhHgdihif8PBNm0y7OWugdKR4ULlV2fj6tBNF -M5dsD3PlsI3mchkVOD21s1+mzfkdOT38avD14SeiZ7dI/KTaBf11OpjiGEMkG0xx -CkfKgdkl6Ofg9STpUYqH1rSuMLER/8DZu4+7au+VHs4TnqqemFOjMBp3mtZaGuuS -vgwxv6xcr8UpQ0v+d4I8ihkqmKHfKXr78rSo7VJsOsV+YuZxZ3/sKypjB+hA3h5u -ty0Xgb/wqghK2LeJFdzZHSLh5r+2SHUX4Qz3SvEP5MwJUU19ucCv8Vp+QqqUiigl -MLpBM3HFduuilOLBut/+G8r+sxOts/OO9j+rvjhkmZQ8c5y9AQYPYohxWIqKcLIQ -XxXLMzwkjrNUjvF2R/uiecqSgcwT+2gLMiX5Tx1hk1AQAmPWQlP+4sCBe2BT22v7 -XplTC5IO+aGBlaMNA5aeeY0L68zK+yGkgQsRVCRCn+buhkjaLSVpkHR2LWuUhyo/ -668hUFeaqfZgX4muQ1p4x4oxWU6PnPyi64JJs34G0+KlaZ7sSmoVzQIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBAAtbvw2rrtnO5EeOF1Z+mJc9o3036liNbmCQTaC7 -Pf2yqo3Zk44L80R99sX5rDoq79MKEr//ED5C410EiCvzX42w330p7dasuoYRAwLw -YB0UwWnrKhm4SU20SC8zpnCUBL6K9lmXF2PJtkoMgFAnB8tIEc+DAr4hBIqh45vD -VgZ06GHH94/G6tIW3qNvi1mmvUYV0i6D3xBhcNAu6R/zopEYM3png24ZE2IlzZCX -x8hbYuMAqeQXSHQM9sKhXeb60GT8ns7d3P17S/TfpkTI7zRMkPhzsHC/Vp97xN/n -ojEEBY3MZJBPZj/q/buDfbp5x6H7/YxYdOKQKaGVWECGabISBcsg8NxaY++GKc+u -10C8O9KILRCJKGh8ze7chXx5n5+BPEoVVwhLn58eV7sOODvb4kZySUJHvFBb0ZM/ -7626K3443e5ZRkGXydvDIwPZgoiJ3L1L9+olL1cJ5rsRE6L5k6vPuJOeZITm4au2 -pE0THMHx/RjCMA1Lb/0BiDqbBHSh8hh+mHU7YXTq1Fxi2dSas0wAxcTBRs8TULsV -o57TmJqF+byiqwQvugyN7tndvWg9c+LDJHqitA5QC1GDXEi/bdjd7YeHRiL+ciVM -ZXXU9GT1O78O+84wbIDebahn8cifdGa7Kft7GftS3pCIyAjU9+eMXyT1JG3nssLr -4/ht +ggIKAoICAQCpicNwaTt0/uACIjsBOhWAoHu/keBd9NAwByirGX0qWVnKAmBLN3MI +RLqBNHG7qSv8Dx3OIpoS+HCPe8NITHrqSBmBB+Z4QUZRc/vj/ZY/fVcmuA1IXFRm +KP+VakukiRi1yEF9UFTebuB8V+8wrGCzsYaUvzZBtDLXR0B54RIgovs8SDRbF6Nh +EpnuVO8PGA6/4kuvvd+GJutHri0ai074N5nNilhIQv8dy/DOoSgasD2lSPJ0dZ6+ +rlJ5PQ7z1+gvsonmH0XqoWZvUB6zRTOWZWRe4Ki4wg4Fu99Bm9r5JkY3tmtd2Wqo +BSNTcE2R69293sqLS47wkX4BFkhByf/zAu5RVNQ0w4mLw/eg6Ag3EYn9WXzEwhJC +rN2OccVDmcjNCmLnds4N7d2kz9Iw+lwsbedgTklMRO0MHZWjt/wWDA2B9RIk9JLB +5CKlzjSa6w5mXcLfyczg5E+Q1lGKAgCcTY7FIYpn+T9XsOBc9Gio9/Pb/Hbyq+ow +peUPywqpDJa0gDVglRlQX43yi3OfB7TygfByzumF/ZzyfHtQFqN7g1lgQEzA800z +mjOmJks71nytZWoVSn92wAoK/xzfReztYbvfBUtJ8TUHxxR0qQ9KIv2hjie5pol9 +cGyY7an4oRAP7v8AzXybmq8KgCq1zJ/NETl9mvPAU5edK0JQLjRKJQIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBAIFKW8OGRgWjrW1NWNwTCYeXfdl+GPywWjR1EKco +e7h5KJrlMsRLLpzQyBWQ+8LeqSWHv3KZRxkU9haK8DmZ5M8d8S17DeReX1XeFCsY +C6+4XsS+6Ozz+i+zF/3lSiiVLRg/vhWGSNWdwto3ek0a7Oqcf173gATnnEyKmnSy +/t51+34ZdS8QrOKT0+6RGe6Z0ECW3jPzgDeGSUFRd5HZTSSCDPdvvvTsu20yybNm +r7e65BMDUzCXAdCpaiM9hX2Scj1MRxbISqjKPy5wonqhzy72T50ObkaRBZ7Jou9X +gnqRmp5A4NKfX8DjhWJX+ggn4cP2oV8iuvidOM3A71ZeaZJ70iJQnrWswjJzK6LG +VcbI1nuCGcrWukx9jDFULsWLG1vSprFTSP4WoFWhRYWofHvlZ/wu5Ljkhs1q7hKa +QesXKVHdmDD+YPo6JfJwq8GPDYh/hDZTYKBEAeaFjmToILSXkxOTrfGigDx2PDIQ +bRUx8XDSvUgNdh3ZlW38iORsAixvSBki+zTCpNp5zaSdY0BtDB7DK3k7ivU9u93x +a/oHEHQbEDSUQ6Oiuo/wzsRHKsjHCkOI7BlSyxH3+KjooTSJNgKyTb7dm6aPUdvn +aV8wAA7irnnUbV8iogRaC0Ziry15EfkDbg02dVtxWDWdMIVuP7to3tcMv9gUP+Dd +uEEp -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.key b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.key index 9219944ca4..298d5296dd 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.key +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/client.key @@ -1,51 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.crt b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.crt index 09094e4526..7ef4b0f546 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.crt +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.crt @@ -1,31 +1,31 @@ -----BEGIN CERTIFICATE----- MIIFPzCCAycCAQEwDQYJKoZIhvcNAQELBQAwYTELMAkGA1UEBhMCQ0wxCzAJBgNV BAgMAlJNMRowGAYDVQQHDBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEUm9v -dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjEwNjA3MjAyNzMyWhcN -MjIwNjA3MjAyNzMyWjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV +dDENMAsGA1UECwwEVGVzdDELMAkGA1UEAwwCY2EwHhcNMjIwNjA4MDkwNDU2WhcN +MjMwNjA4MDkwNDU2WjBqMQswCQYDVQQGEwJDTDELMAkGA1UECAwCUk0xGjAYBgNV BAcMEU9wZW5UZWxlbWV0cnlUZXN0MQ0wCwYDVQQKDARUZXN0MQ8wDQYDVQQLDAZT ZXJ2ZXIxEjAQBgNVBAMMCWxvY2FsaG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBANaRv7jpdEedG0CQ/LoJEXuE32eZXzar45u05wq5CzqnUlYdHyx8 -cgCJJ44KThFXiOzgELFiiwjxmPo1CDLqGp8vEDHntvhxLhw/mFy/aa7YrCv1/1eX -0+cEvNUyoikjHKXECI7sV1ZVMrimGKXQNqRfub1JbJ+IzL+kp6MRtdA6GzxsU0Dg -Wwf7IQxtCQ4Tw3onJ3P3NZAkgz6zCVhOVkR7DuqGulzTQDa//mWwKQJie5wscURj -vLsJ0prS16Tc/5yXijwRjwx8ZEoDrJ5KszoMQwKIoLN7wHBo2r8/8RQsOGTVMJ1I -9kOkH3s9clswxCrnpzdNNmyIwTWaQ6CqpQpp0unGimF3VokanHhOhcpkWfzDArmU -jL4PIFBQBJvHIEKbuhZ4pUYL/6RtgEg2f3xVPe8s0hn/DzwJTgXqEX+TY7WvIKmH -0sMGZ9TZzWe9W64LM2/427+6pfgQOAJDHNLSYpmaa14R+630IMocdY6sj2hoZ9TK -8Ridqn+q+5kIpG/pP7bbzbzsotdzjNb6h7GBlsuyycoOfiP+C6Zs/yUZAAZEsSm0 -e4dXFCccurkXRL7cZJHC/agQhkkvcEP1TpmaygjbucME+h6H0G0St8yzBQwEJdkn -wNmfEhIdjmiX6u/fvPO6VJ5HBxgA5gONJlk+4EbiZTfl2rYauBFhloHzAgMBAAEw -DQYJKoZIhvcNAQELBQADggIBACIJLqVoH8oh8W0/0IF3sxH8LFsGByi0CUPo1JEB -1t3+FqyC7eFC9rDW12LfOKgiZl273OBpCHT8bx3OkoGZ4KwZsbsznyJv/X5OVYFH -5y5Lo8QNGWWMzXoK2JLlYJXZHMaJr5tTFOGqoIvC9C8ibLSAbL0MhtB9L5SvSxAm -mUOKZ/en7ZBepRex/s/rfCWYYTw2Ah02HZc8+H/J/aF3tvChI7Gx0anaSQxS48Ru -3eCaiaBEfoSGQvN9Jc+k1QJgJ4vZ8yi7ndl8pwW97YXo8Sg305ritqpnon+vemsV -rYoqHN+WV2/D0nqNu1AX8PldDvUYTfBtLfS7T5goN7abEIJCaTNmzU2ji0SqI9vJ -j4t9E9KcCKMshbciDrD7RPEPk3vogEDD3uygFwcPwUQfpCUFbRJOnTSH1oB/aUC4 -x9DnYSHBdDvaBmu0pBpoddJ+0pbw02P7YL9kPz5OnOAN06JP4McIYz5ytKoSt/m8 -Z7cUnvn7TRVNLuiapwpB0gtRmb9JY1q3pd63+X0SCaBEtUH+PWcRcS7eDsgMwEym -0CyANhCQYJjcKugIWLYtN/0/p2bIKcRmcH3iJiN2zZtP1AF6G7a4mp+21OynvFOc -3+ojTDGJxxD3uPtKEhJXRgYMOmfAEn3rgtoln1kkNYcd7f2EIulckwB2yeM1IMud -0le7 +ADCCAgoCggIBANatB0qfIsBhphob6vkEB6sLc9QRs+EGX5ZCk3gWrp6j4Hw54I0v +wIP5HQuJtE8fiDR5xC4dWMWjfzmERfXJ8CYeWbD9zHsEsI15uz+lmlX+hTJKTyzW +PNtFN+IbYme+tzNQZBVxrHq6KxRqEDgKlFvI6L0oq0XjYmVt0AqRnoVRW1jqBoTd +KYfK1tNlWLuf6lEzphKzXZM0XTc9vIUxw+FWlogzJUB8boNbkVPrbwONQk6Cz+me +FD2D71dYMGr4MTypZtK8C0pjU32RwD82FNU2C7DHgSUncptfWKWjT3Xgu4r3vYDk +PDoHtAZaTs6S5YNDjoDUEC+hn42blv00LKgIiSfD22np3Bt/gzyd9XslIilk1dzP +u3uTPi9r/4m0pMeXurMOTlhjM5UTG87AugpQI4DXYen/UF7few26sENZMoOLNfqS +k+2rkvpkzDjRQSCHqNgRhefL79rO9S2Dlv3yadBn/h0Gra13WR4HfrxXZyuI9Fcf +jtXNo59qeeSzo8bQUYZRv2ANguWg1DU1EHR2cFyS0lyYdaCdgaNvuesKsAsxoAGH +lbm32fOSe8kcgVCte/ceMdvTFh9RK9Cq+iaQdub4xo2JYJveRKt/9I8yDpo95md9 +pt1vmuL/ArEG8pD7ykx7GOU7tefhnjOKpQt8FWih1S2KhXbul6xwc+rFAgMBAAEw +DQYJKoZIhvcNAQELBQADggIBAAAWLWmJViBn92u3A5oKA4960vHnTpN8FcJG3Has +gFteNsuU54ByuEjrXAgbqFmjJC36LD0s6S5vIsu4WQdB0n2t0c7TME26Ki9eMSaw +ikykg6a2Q906RvXkATHE+TuibYNeMOUkxVuPdiVRK2P6wvde2TrXgBYK7GVptJtb +Ih7CYdyJAUdqbDZO8NcTUybKgy4qj0dxseptU2Kcr6wc+Q6xRtmxeHS1Rvu9xEbY +VsTGNfdqns+15pNowfYchukIk+ibR5tdK8tpHkUcb+Uugb4pYYl3QwyRySrAtKhV +1ZXCfe3Al72GpcSc759XHzhmT4Ev1vjVn7BBE7seYRFzP0PwaWCw4ytKKr+lT2RM +5tbxiy9hiQgHXPIG1Hm+wJvk+T1eSxlWKPdxXB7Prz8WWiPg6A07bOiLFUGqaUSx +M8jCgZurNW3e0zdrY/ZBesw5GwgXsJqiosDtn15GIk+aGMGQXyM1Tk/Hel/cowLi +RSIZGTNnziFwmZ4wJizzqfZ+NCfAPQ/Jgr/RJnjCL4X2aVK5noS/ZR/4Ibxkw1IE +YyNagnqSXjjQG3CoB1gCkAJWZ37SXj9RE+P7CpI3x55vi/zEkdjQpL9NYzT9O7ON +6lMX+2B3ISCcCRp9NqFIndaXYQctA0qIsdKOMsh62F3jM4tZkeYwefLSTdzhQiaa +YocN -----END CERTIFICATE----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.csr b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.csr index bb61322340..8485c97579 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.csr +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.csr @@ -2,27 +2,27 @@ MIIErzCCApcCAQAwajELMAkGA1UEBhMCQ0wxCzAJBgNVBAgMAlJNMRowGAYDVQQH DBFPcGVuVGVsZW1ldHJ5VGVzdDENMAsGA1UECgwEVGVzdDEPMA0GA1UECwwGU2Vy dmVyMRIwEAYDVQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDWkb+46XRHnRtAkPy6CRF7hN9nmV82q+ObtOcKuQs6p1JWHR8sfHIA -iSeOCk4RV4js4BCxYosI8Zj6NQgy6hqfLxAx57b4cS4cP5hcv2mu2Kwr9f9Xl9Pn -BLzVMqIpIxylxAiO7FdWVTK4phil0DakX7m9SWyfiMy/pKejEbXQOhs8bFNA4FsH -+yEMbQkOE8N6Jydz9zWQJIM+swlYTlZEew7qhrpc00A2v/5lsCkCYnucLHFEY7y7 -CdKa0tek3P+cl4o8EY8MfGRKA6yeSrM6DEMCiKCze8BwaNq/P/EULDhk1TCdSPZD -pB97PXJbMMQq56c3TTZsiME1mkOgqqUKadLpxophd1aJGpx4ToXKZFn8wwK5lIy+ -DyBQUASbxyBCm7oWeKVGC/+kbYBINn98VT3vLNIZ/w88CU4F6hF/k2O1ryCph9LD -BmfU2c1nvVuuCzNv+Nu/uqX4EDgCQxzS0mKZmmteEfut9CDKHHWOrI9oaGfUyvEY -nap/qvuZCKRv6T+228287KLXc4zW+oexgZbLssnKDn4j/gumbP8lGQAGRLEptHuH -VxQnHLq5F0S+3GSRwv2oEIZJL3BD9U6ZmsoI27nDBPoeh9BtErfMswUMBCXZJ8DZ -nxISHY5ol+rv37zzulSeRwcYAOYDjSZZPuBG4mU35dq2GrgRYZaB8wIDAQABoAAw -DQYJKoZIhvcNAQELBQADggIBALQRbWtd7VIT7PI0g2TJY2nyFDZ+iNLlsqtlTQ+3 -9tDUNf911AyXGFBH2OaIg49UEl3Dn3ErAH6nZluZhRNjZRUYfE2dSEVYoeAA3SmE -FElARM1CX4dQUDnV++RLLRIKKGfcnwU+vSEWN4QfXs9qjI2UK80CBr6kPEt+bMfR -wUIax5HT1XLECoLph1rNza0h3WNk5ndEJMAt51U0JNAi6PwDF04ZfnX5E2RtiEjV -+3DPW1HYlX2hepkXVJPB568bbpmWLrmJsHjVZy4vmDoQi2bzS/QPsepgQ3aXxNel -vTxh0Or5SdIRRfNnP/Ov/aYjBxzkcKY83ADh7h1aqMOlUyFenHoMfTWnMYkeNY+1 -dOoLUS/ZNA6IH54UO7uY0uOcwCfRPYZzDxZI0IkjogX0aizixSs5duQx0ux3sUOo -a4zxMNPd89ppbCMZDS7biC7cOAsdDYXKcE5ijpc5CQXVo4/dA2xyfisRT7WUq9ay -vmQoYfMCAkGv47BVYhzASyPIXuFP2/HDbtnBvZ2aeSuMAwhHzj3vX9js2HGy7t2V -kj36LymQv+YBp9mV9/crSqy0DNFAYOWOuig0mQX/SPedGa4jf9v4OhANi+kzgxtQ -hBTcA0OtJyrVxesVGGK0YwaQIIZ8jwhsK3ljlZpOfVUflHl2/etME1DXtU37U9xA -fuw0 +ggIKAoICAQDWrQdKnyLAYaYaG+r5BAerC3PUEbPhBl+WQpN4Fq6eo+B8OeCNL8CD ++R0LibRPH4g0ecQuHVjFo385hEX1yfAmHlmw/cx7BLCNebs/pZpV/oUySk8s1jzb +RTfiG2JnvrczUGQVcax6uisUahA4CpRbyOi9KKtF42JlbdAKkZ6FUVtY6gaE3SmH +ytbTZVi7n+pRM6YSs12TNF03PbyFMcPhVpaIMyVAfG6DW5FT628DjUJOgs/pnhQ9 +g+9XWDBq+DE8qWbSvAtKY1N9kcA/NhTVNguwx4ElJ3KbX1ilo0914LuK972A5Dw6 +B7QGWk7OkuWDQ46A1BAvoZ+Nm5b9NCyoCIknw9tp6dwbf4M8nfV7JSIpZNXcz7t7 +kz4va/+JtKTHl7qzDk5YYzOVExvOwLoKUCOA12Hp/1Be33sNurBDWTKDizX6kpPt +q5L6ZMw40UEgh6jYEYXny+/azvUtg5b98mnQZ/4dBq2td1keB368V2criPRXH47V +zaOfannks6PG0FGGUb9gDYLloNQ1NRB0dnBcktJcmHWgnYGjb7nrCrALMaABh5W5 +t9nzknvJHIFQrXv3HjHb0xYfUSvQqvomkHbm+MaNiWCb3kSrf/SPMg6aPeZnfabd +b5ri/wKxBvKQ+8pMexjlO7Xn4Z4ziqULfBVoodUtioV27pescHPqxQIDAQABoAAw +DQYJKoZIhvcNAQELBQADggIBAC8troDBxaOg6dnv4xXJqiQxYJxU5YDc6lTb2xp5 ++OsvW3FYs7B3NKXfro4AkkaU5vyQQlSR3VIu5DroUvlm34uhWnkejbl6p7wv+uIu +hRuu1eYT3TdA+iv2JIB8OtBhAPfxYSBcga0hLugcqVydX5WvQTkZuIbi1MsHeq4L +hKMxG5ZlnMNsBo4rNo+UOfbdzkCqtxeuE0s+WcYeDQdeAJC37JlDbefO9hC+tnwT +3hi7UEhCo+pk/ttTy4uUOaph2nU7ZyYyhd8ZTSWBoHmMKb8YewMv21vRiB2gmh1F +1n1PdS+ehbbtleTfucHay41Po/pLrfYJ1p5rDgKYu6kNq7YNoL020G/1ei9DBA5v +RJs2qtL1KEhh5ZzPbtrGN6tkdoZ6miSfE5gcvGqm7hMd86Pzxid4mftQMjrEjj94 +OzVbu+EIPE7//8irP8YcvMvPeVZrl3Uu8eS1h43DkNyjVv5kqDqOsHKnKuJbVgkF +O6GPjcKqrKVqTEttC+0eXasnt0EwnEBEsSLtsKp3Lr5aq2Ez6TtyQbBOunoTOTd/ +h1c6DXcL7zmLMOnPzuVjHYoH3sNmGRD9Xils61e0xfr3dHYZFBt9bu/3wFwAkKrW +NH7kde+GKwMc3UyllVMTXUXq3VTxd93kYtuYZpcC5HmUEvZcakmL91z8eyFWJ3u8 ++WGc -----END CERTIFICATE REQUEST----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.key b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.key index ddac188c23..2dcd9159c5 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.key +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/certs/server.key @@ -1,51 +1,51 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/metricsHelper.ts b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/metricsHelper.ts index 36a45d1315..c2511d17c5 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/metricsHelper.ts +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/test/metricsHelper.ts @@ -196,8 +196,12 @@ export function ensureExportedHistogramIsCorrect( exemplars: [], flags: 0, _sum: 'sum', + _min: 'min', + _max: 'max', sum: 21, count: '2', + min: 7, + max: 14, startTimeUnixNano: String(startTime), timeUnixNano: String(time), bucketCounts, diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md index 5035110219..6212946199 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md @@ -4,7 +4,7 @@ [![Apache License][license-image]][license-image] This module provides exporter for web and node to be used with [opentelemetry-collector][opentelemetry-collector-url]. -Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.48 <=0.50`. +Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.52 <=0.53`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json index 61164a1b2c..b9c84ed18b 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.29.0", + "version": "0.29.2", "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", @@ -43,7 +43,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -94,11 +94,11 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/otlp-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0" + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2" } } diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/test/metricsHelper.ts b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/test/metricsHelper.ts index a3c9571d3f..3725a52f70 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/test/metricsHelper.ts +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/test/metricsHelper.ts @@ -370,6 +370,8 @@ export function ensureHistogramIsCorrect( attributes: [], sum: 21, count: 2, + min: 7, + max: 14, startTimeUnixNano: startTime, timeUnixNano: time, bucketCounts, diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md index c0e3dde68f..cd27e59588 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md @@ -4,7 +4,7 @@ [![Apache License][license-image]][license-image] This module provides exporter for node to be used with [opentelemetry-collector][opentelemetry-collector-url]. -Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.32 <=0.50`. +Compatible with [opentelemetry-collector][opentelemetry-collector-url] versions `>=0.32 <=0.53`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json index 0640fed4b2..a91ab49e86 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/exporter-metrics-otlp-proto", - "version": "0.29.0", + "version": "0.29.2", "description": "OpenTelemetry Collector Metrics Exporter allows user to send collected metrics to the OpenTelemetry Collector using protobuf over HTTP", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -32,7 +32,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -49,7 +49,7 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/api-metrics": "0.29.0", + "@opentelemetry/api-metrics": "0.29.2", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -68,13 +68,13 @@ }, "dependencies": { "@grpc/proto-loader": "0.6.9", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.29.0", - "@opentelemetry/otlp-exporter-base": "0.29.0", - "@opentelemetry/otlp-proto-exporter-base": "0.29.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.29.2", + "@opentelemetry/otlp-exporter-base": "0.29.2", + "@opentelemetry/otlp-proto-exporter-base": "0.29.2", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2", "protobufjs": "^6.9.0" } } diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/test/metricsHelper.ts b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/test/metricsHelper.ts index daa98a0d98..bb78daf397 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/test/metricsHelper.ts +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/test/metricsHelper.ts @@ -187,6 +187,8 @@ export function ensureExportedHistogramIsCorrect( { sum: 21, count: '2', + min: 7, + max: 14, startTimeUnixNano: String(startTime), timeUnixNano: String(time), bucketCounts, diff --git a/experimental/packages/opentelemetry-exporter-prometheus/package.json b/experimental/packages/opentelemetry-exporter-prometheus/package.json index e9507a85d2..2abc11ad3f 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry Exporter Prometheus provides a metrics endpoint for Prometheus", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -29,7 +29,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -59,8 +59,8 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0" + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2" } } diff --git a/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusSerializer.ts b/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusSerializer.ts index 4608562df3..1b84efe08b 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusSerializer.ts +++ b/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusSerializer.ts @@ -179,20 +179,20 @@ export class PrometheusSerializer { serialize(resourceMetrics: ResourceMetrics): string { let str = ''; for (const scopeMetrics of resourceMetrics.scopeMetrics) { - str += this.serializeScopeMetrics(scopeMetrics); + str += this._serializeScopeMetrics(scopeMetrics); } return str; } - serializeScopeMetrics(scopeMetrics: ScopeMetrics) { + private _serializeScopeMetrics(scopeMetrics: ScopeMetrics) { let str = ''; for (const metric of scopeMetrics.metrics) { - str += this.serializeMetricData(metric) + '\n'; + str += this._serializeMetricData(metric) + '\n'; } return str; } - serializeMetricData(metricData: MetricData) { + private _serializeMetricData(metricData: MetricData) { let name = sanitizePrometheusMetricName( escapeString(metricData.descriptor.name) ); @@ -218,13 +218,13 @@ export class PrometheusSerializer { switch (dataPointType) { case DataPointType.SINGULAR: { results = metricData.dataPoints - .map(it => this.serializeSingularDataPoint(name, metricData.descriptor.type, it)) + .map(it => this._serializeSingularDataPoint(name, metricData.descriptor.type, it)) .join(''); break; } case DataPointType.HISTOGRAM: { results = metricData.dataPoints - .map(it => this.serializeHistogramDataPoint(name, metricData.descriptor.type, it)) + .map(it => this._serializeHistogramDataPoint(name, metricData.descriptor.type, it)) .join(''); break; } @@ -236,7 +236,7 @@ export class PrometheusSerializer { return `${help}\n${type}\n${results}`.trim(); } - serializeSingularDataPoint(name: string, type: InstrumentType, dataPoint: DataPoint): string { + private _serializeSingularDataPoint(name: string, type: InstrumentType, dataPoint: DataPoint): string { let results = ''; name = enforcePrometheusNamingConvention(name, type); @@ -252,7 +252,7 @@ export class PrometheusSerializer { return results; } - serializeHistogramDataPoint(name: string, type: InstrumentType, dataPoint: DataPoint): string { + private _serializeHistogramDataPoint(name: string, type: InstrumentType, dataPoint: DataPoint): string { let results = ''; name = enforcePrometheusNamingConvention(name, type); diff --git a/experimental/packages/opentelemetry-exporter-prometheus/src/index.ts b/experimental/packages/opentelemetry-exporter-prometheus/src/index.ts index bcf661b337..20041cda13 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/src/index.ts +++ b/experimental/packages/opentelemetry-exporter-prometheus/src/index.ts @@ -15,4 +15,5 @@ */ export * from './PrometheusExporter'; +export * from './PrometheusSerializer'; export * from './export/types'; diff --git a/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusSerializer.test.ts b/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusSerializer.test.ts index 5f8656cbe5..f0dc004e25 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusSerializer.test.ts +++ b/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusSerializer.test.ts @@ -27,7 +27,7 @@ import { Histogram, } from '@opentelemetry/sdk-metrics-base'; import * as sinon from 'sinon'; -import { PrometheusSerializer } from '../src/PrometheusSerializer'; +import { PrometheusSerializer } from '../src'; import { mockedHrTimeMs, mockHrTime } from './util'; const attributes = { @@ -86,7 +86,7 @@ describe('PrometheusSerializer', () => { const pointData = metric.dataPoints as DataPoint[]; assert.strictEqual(pointData.length, 1); - const result = serializer.serializeSingularDataPoint(metric.descriptor.name, metric.descriptor.type, pointData[0]); + const result = serializer['_serializeSingularDataPoint'](metric.descriptor.name, metric.descriptor.type, pointData[0]); return result; } @@ -129,7 +129,7 @@ describe('PrometheusSerializer', () => { const pointData = metric.dataPoints as DataPoint[]; assert.strictEqual(pointData.length, 1); - const result = serializer.serializeHistogramDataPoint(metric.descriptor.name, metric.descriptor.type, pointData[0]); + const result = serializer['_serializeHistogramDataPoint'](metric.descriptor.name, metric.descriptor.type, pointData[0]); return result; } @@ -184,7 +184,7 @@ describe('PrometheusSerializer', () => { assert.strictEqual(resourceMetrics.scopeMetrics[0].metrics.length, 1); const scopeMetrics = resourceMetrics.scopeMetrics[0]; - const result = serializer.serializeScopeMetrics(scopeMetrics); + const result = serializer['_serializeScopeMetrics'](scopeMetrics); return result; } @@ -236,7 +236,7 @@ describe('PrometheusSerializer', () => { assert.strictEqual(resourceMetrics.scopeMetrics[0].metrics.length, 1); const scopeMetrics = resourceMetrics.scopeMetrics[0]; - const result = serializer.serializeScopeMetrics(scopeMetrics); + const result = serializer['_serializeScopeMetrics'](scopeMetrics); return result; } @@ -284,7 +284,7 @@ describe('PrometheusSerializer', () => { const pointData = metric.dataPoints as DataPoint[]; assert.strictEqual(pointData.length, 1); - const result = serializer.serializeSingularDataPoint(metric.descriptor.name, metric.descriptor.type, pointData[0]); + const result = serializer['_serializeSingularDataPoint'](metric.descriptor.name, metric.descriptor.type, pointData[0]); return result; } @@ -323,7 +323,7 @@ describe('PrometheusSerializer', () => { const pointData = metric.dataPoints as DataPoint[]; assert.strictEqual(pointData.length, 1); - const result = serializer.serializeSingularDataPoint(metric.descriptor.name, metric.descriptor.type, pointData[0]); + const result = serializer['_serializeSingularDataPoint'](metric.descriptor.name, metric.descriptor.type, pointData[0]); return result; } diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/README.md b/experimental/packages/opentelemetry-instrumentation-fetch/README.md index 17e6c2efa3..bf6719731c 100644 --- a/experimental/packages/opentelemetry-instrumentation-fetch/README.md +++ b/experimental/packages/opentelemetry-instrumentation-fetch/README.md @@ -62,9 +62,10 @@ See [examples/tracer-web/fetch](https://github.com/open-telemetry/opentelemetry- Fetch instrumentation plugin has few options available to choose from. You can set the following: -| Options | Type | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ------------------------------------- | -| [`applyCustomAttributesOnSpan`](https://github.com/open-telemetry/opentelemetry-js/blob/main/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts#L64) | `HttpCustomAttributeFunction` | Function for adding custom attributes | +| Options | Type | Description | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------| +| [`applyCustomAttributesOnSpan`](https://github.com/open-telemetry/opentelemetry-js/blob/main/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts#L64) | `HttpCustomAttributeFunction` | Function for adding custom attributes | +| [`ignoreNetworkEvents`](https://github.com/open-telemetry/opentelemetry-js/blob/main/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts#L67) | `boolean` | Disable network events being added as span events (network events are added by default) | ## Useful links diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/package.json b/experimental/packages/opentelemetry-instrumentation-fetch/package.json index 3828525e74..da1defe71d 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry fetch automatic instrumentation package.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -34,7 +34,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -56,9 +56,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-zone": "1.3.0", - "@opentelemetry/propagator-b3": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/context-zone": "1.3.1", + "@opentelemetry/propagator-b3": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -87,9 +87,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/sdk-trace-web": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/sdk-trace-web": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts b/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts index ba4a2f422b..37ff62e234 100644 --- a/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts +++ b/experimental/packages/opentelemetry-instrumentation-fetch/src/fetch.ts @@ -63,6 +63,8 @@ export interface FetchInstrumentationConfig extends InstrumentationConfig { ignoreUrls?: Array; /** Function for adding custom attributes on the span */ applyCustomAttributesOnSpan?: FetchCustomAttributeFunction; + // Ignore adding network events as span events + ignoreNetworkEvents?: boolean; } /** @@ -105,7 +107,9 @@ export class FetchInstrumentation extends InstrumentationBase> }, api.trace.setSpan(api.context.active(), span) ); - web.addSpanNetworkEvents(childSpan, corsPreFlightRequest); + if (!this._getConfig().ignoreNetworkEvents) { + web.addSpanNetworkEvents(childSpan, corsPreFlightRequest); + } childSpan.end( corsPreFlightRequest[web.PerformanceTimingNames.RESPONSE_END] ); @@ -247,7 +251,9 @@ export class FetchInstrumentation extends InstrumentationBase> this._addChildSpan(span, corsPreFlightRequest); this._markResourceAsUsed(corsPreFlightRequest); } - web.addSpanNetworkEvents(span, mainRequest); + if (!this._getConfig().ignoreNetworkEvents) { + web.addSpanNetworkEvents(span, mainRequest); + } } } diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts b/experimental/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts index c7a55acb7d..e4ce4f9f5a 100644 --- a/experimental/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts +++ b/experimental/packages/opentelemetry-instrumentation-fetch/test/fetch.test.ts @@ -900,4 +900,20 @@ describe('fetch', () => { ); }); }); + + describe('when network events are ignored', () => { + beforeEach(async () => { + await prepareData(url, { + ignoreNetworkEvents: true, + }); + }); + afterEach(() => { + clearData(); + }); + it('should NOT add network events', () => { + const span: tracing.ReadableSpan = exportSpy.args[1][0][0]; + const events = span.events; + assert.strictEqual(events.length, 0, 'number of events is wrong'); + }); + }); }); diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/package.json b/experimental/packages/opentelemetry-instrumentation-grpc/package.json index 0e095346f9..22550241a3 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry grpc automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -31,7 +31,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -48,10 +48,10 @@ "@grpc/grpc-js": "1.5.9", "@grpc/proto-loader": "0.6.9", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-async-hooks": "1.3.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/sdk-trace-node": "1.3.0", + "@opentelemetry/context-async-hooks": "1.3.1", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/sdk-trace-node": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/semver": "7.3.9", @@ -71,8 +71,8 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/experimental/packages/opentelemetry-instrumentation-http/package.json b/experimental/packages/opentelemetry-instrumentation-http/package.json index 1ff6ba999a..0fa973a28c 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry http/https automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -31,7 +31,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -46,9 +46,9 @@ }, "devDependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-async-hooks": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/sdk-trace-node": "1.3.0", + "@opentelemetry/context-async-hooks": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/sdk-trace-node": "1.3.1", "@types/got": "9.6.12", "@types/mocha": "8.2.3", "@types/node": "14.17.33", @@ -74,9 +74,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/semantic-conventions": "1.3.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/semantic-conventions": "1.3.1", "semver": "^7.3.5" } } diff --git a/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts b/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts index e1e98209db..d21dd105a9 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts @@ -150,6 +150,7 @@ export const setSpanWithError = ( }); span.setStatus({ code: SpanStatusCode.ERROR, message }); + span.recordException(error); }; /** diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts index 1ca36d2247..d074097472 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/http-enable.test.ts @@ -570,6 +570,7 @@ describe('HttpInstrumentation', () => { }, component: 'http', noNetPeer: true, + error: err, }; assertSpan(spans[0], SpanKind.CLIENT, validations); return true; diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts index 52211abadc..545ad56742 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/utils.test.ts @@ -259,6 +259,8 @@ describe('Utility', () => { attributes[AttributeNames.HTTP_ERROR_MESSAGE], errorMessage ); + assert.strictEqual(span.events.length, 1); + assert.strictEqual(span.events[0].name, 'exception'); assert.ok(attributes[AttributeNames.HTTP_ERROR_NAME]); }); }); diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/utils/assertSpan.ts b/experimental/packages/opentelemetry-instrumentation-http/test/utils/assertSpan.ts index 1afbffc029..db0d0d1ea0 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/utils/assertSpan.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/test/utils/assertSpan.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { isValidSpanId, SpanKind, SpanStatus } from '@opentelemetry/api'; +import { isValidSpanId, SpanKind, SpanStatus, Exception } from '@opentelemetry/api'; import { hrTimeToNanoseconds } from '@opentelemetry/core'; import { ReadableSpan } from '@opentelemetry/sdk-trace-base'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; @@ -38,6 +38,7 @@ export const assertSpan = ( serverName?: string; component: string; noNetPeer?: boolean; // we don't expect net peer info when request throw before being sent + error?: Exception; } ) => { assert.strictEqual(span.spanContext().traceId.length, 32); @@ -65,7 +66,20 @@ export const assertSpan = ( ); assert.strictEqual(span.links.length, 0); - assert.strictEqual(span.events.length, 0); + + if (validations.error) { + assert.strictEqual(span.events.length, 1); + assert.strictEqual(span.events[0].name, 'exception'); + + const eventAttributes = span.events[0].attributes; + assert.ok(eventAttributes != null); + assert.deepStrictEqual( + Object.keys(eventAttributes), + ['exception.type', 'exception.message', 'exception.stacktrace'] + ); + } else { + assert.strictEqual(span.events.length, 0); + } assert.deepStrictEqual( span.status, diff --git a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json index a1b0f5a683..9c8fcf0842 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry XMLHttpRequest automatic instrumentation package.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -34,7 +34,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -56,9 +56,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-zone": "1.3.0", - "@opentelemetry/propagator-b3": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/context-zone": "1.3.1", + "@opentelemetry/propagator-b3": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -87,9 +87,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/sdk-trace-web": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/sdk-trace-web": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/experimental/packages/opentelemetry-instrumentation/package.json b/experimental/packages/opentelemetry-instrumentation/package.json index d4c9c486bc..03372baaa8 100644 --- a/experimental/packages/opentelemetry-instrumentation/package.json +++ b/experimental/packages/opentelemetry-instrumentation/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/instrumentation", - "version": "0.29.0", + "version": "0.29.2", "description": "Base class for node which OpenTelemetry instrumentation modules extend", "author": "OpenTelemetry Authors", "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", @@ -68,7 +68,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", + "@opentelemetry/api-metrics": "0.29.2", "require-in-the-middle": "^5.0.3", "semver": "^7.3.2", "shimmer": "^1.2.1" @@ -105,5 +105,8 @@ "webpack": "4.46.0", "webpack-cli": "4.9.1", "webpack-merge": "5.8.0" + }, + "engines": { + "node": ">=14" } } diff --git a/experimental/packages/opentelemetry-instrumentation/src/platform/node/instrumentation.ts b/experimental/packages/opentelemetry-instrumentation/src/platform/node/instrumentation.ts index 1335170082..70dac85332 100644 --- a/experimental/packages/opentelemetry-instrumentation/src/platform/node/instrumentation.ts +++ b/experimental/packages/opentelemetry-instrumentation/src/platform/node/instrumentation.ts @@ -116,18 +116,23 @@ export abstract class InstrumentationBase } } } - } else { - // internal file - const files = module.files ?? []; - const file = files.find(f => f.name === name); - if (file && isSupported(file.supportedVersions, version, module.includePrerelease)) { - file.moduleExports = exports; + return exports; + } + // internal file + const files = module.files ?? []; + const supportedFileInstrumentations = files + .filter(f => f.name === name) + .filter(f => isSupported(f.supportedVersions, version, module.includePrerelease)); + return supportedFileInstrumentations.reduce( + (patchedExports, file) => { + file.moduleExports = patchedExports; if (this._enabled) { - return file.patch(exports, module.moduleVersion); + return file.patch(patchedExports, module.moduleVersion); } - } - } - return exports; + return patchedExports; + }, + exports, + ); } public enable(): void { diff --git a/experimental/packages/opentelemetry-instrumentation/test/node/InstrumentationBase.test.ts b/experimental/packages/opentelemetry-instrumentation/test/node/InstrumentationBase.test.ts index 84314a8fe0..062088886b 100644 --- a/experimental/packages/opentelemetry-instrumentation/test/node/InstrumentationBase.test.ts +++ b/experimental/packages/opentelemetry-instrumentation/test/node/InstrumentationBase.test.ts @@ -155,7 +155,7 @@ describe('InstrumentationBase', () => { let filePatchSpy: sinon.SinonSpy; beforeEach(() => { - filePatchSpy = sinon.spy(); + filePatchSpy = sinon.stub().callsFake(exports => exports); }); describe('AND there is no wildcard supported version', () => { @@ -217,6 +217,41 @@ describe('InstrumentationBase', () => { sinon.assert.calledOnceWithExactly(filePatchSpy, moduleExports, undefined); }); }); + + describe('AND there is multiple patches for the same file', () => { + it('should patch the same file twice', () => { + const moduleExports = {}; + const supportedVersions = [`^${MODULE_VERSION}`, WILDCARD_VERSION]; + const instrumentationModule = { + supportedVersions, + name: MODULE_NAME, + patch: modulePatchSpy as unknown, + files: [{ + name: MODULE_FILE_NAME, + supportedVersions, + patch: filePatchSpy as unknown + }, { + name: MODULE_FILE_NAME, + supportedVersions, + patch: filePatchSpy as unknown + }] + } as InstrumentationModuleDefinition; + + // @ts-expect-error access internal property for testing + instrumentation._onRequire( + instrumentationModule, + moduleExports, + MODULE_FILE_NAME, + MODULE_DIR + ); + + assert.strictEqual(instrumentationModule.moduleVersion, undefined); + assert.strictEqual(instrumentationModule.files[0].moduleExports, moduleExports); + assert.strictEqual(instrumentationModule.files[1].moduleExports, moduleExports); + sinon.assert.notCalled(modulePatchSpy); + sinon.assert.calledTwice(filePatchSpy); + }); + }); }); }); }); diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/package.json b/experimental/packages/opentelemetry-sdk-metrics-base/package.json index 7f5a9a780f..c5e3aff70e 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/package.json +++ b/experimental/packages/opentelemetry-sdk-metrics-base/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/sdk-metrics-base", - "version": "0.29.0", + "version": "0.29.2", "description": "Work in progress OpenTelemetry metrics SDK", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -34,7 +34,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -77,9 +77,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/resources": "1.3.0", + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/resources": "1.3.1", "lodash.merge": "4.6.2" } } diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/Histogram.ts b/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/Histogram.ts index 6a94adae5e..60a1d484d4 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/Histogram.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/Histogram.ts @@ -37,6 +37,9 @@ function createNewEmptyCheckpoint(boundaries: number[]): Histogram { }, sum: 0, count: 0, + hasMinMax: false, + min: Infinity, + max: -1 }; } @@ -44,6 +47,7 @@ export class HistogramAccumulation implements Accumulation { constructor( public startTime: HrTime, private readonly _boundaries: number[], + private _recordMinMax = true, private _current: Histogram = createNewEmptyCheckpoint(_boundaries) ) {} @@ -51,6 +55,12 @@ export class HistogramAccumulation implements Accumulation { this._current.count += 1; this._current.sum += value; + if (this._recordMinMax) { + this._current.min = Math.min(value, this._current.min); + this._current.max = Math.max(value, this._current.max); + this._current.hasMinMax = true; + } + for (let i = 0; i < this._boundaries.length; i++) { if (value < this._boundaries[i]) { this._current.buckets.counts[i] += 1; @@ -79,11 +89,12 @@ export class HistogramAggregator implements Aggregator { /** * @param _boundaries upper bounds of recorded values. + * @param _recordMinMax If set to true, min and max will be recorded. Otherwise, min and max will not be recorded. */ - constructor(private readonly _boundaries: number[]) {} + constructor(private readonly _boundaries: number[], private readonly _recordMinMax: boolean) {} createAccumulation(startTime: HrTime) { - return new HistogramAccumulation(startTime, this._boundaries); + return new HistogramAccumulation(startTime, this._boundaries, this._recordMinMax); } /** @@ -103,13 +114,32 @@ export class HistogramAggregator implements Aggregator { mergedCounts[idx] = previousCounts[idx] + deltaCounts[idx]; } - return new HistogramAccumulation(previous.startTime, previousValue.buckets.boundaries, { + let min = Infinity; + let max = -1; + + if (this._recordMinMax) { + if (previousValue.hasMinMax && deltaValue.hasMinMax) { + min = Math.min(previousValue.min, deltaValue.min); + max = Math.max(previousValue.max, deltaValue.max); + } else if (previousValue.hasMinMax) { + min = previousValue.min; + max = previousValue.max; + } else if (deltaValue.hasMinMax) { + min = deltaValue.min; + max = deltaValue.max; + } + } + + return new HistogramAccumulation(previous.startTime, previousValue.buckets.boundaries, this._recordMinMax, { buckets: { boundaries: previousValue.buckets.boundaries, counts: mergedCounts, }, count: previousValue.count + deltaValue.count, sum: previousValue.sum + deltaValue.sum, + hasMinMax: this._recordMinMax && (previousValue.hasMinMax || deltaValue.hasMinMax), + min: min, + max: max }); } @@ -128,13 +158,16 @@ export class HistogramAggregator implements Aggregator { diffedCounts[idx] = currentCounts[idx] - previousCounts[idx]; } - return new HistogramAccumulation(current.startTime, previousValue.buckets.boundaries, { + return new HistogramAccumulation(current.startTime, previousValue.buckets.boundaries, this._recordMinMax, { buckets: { boundaries: previousValue.buckets.boundaries, counts: diffedCounts, }, count: currentValue.count - previousValue.count, sum: currentValue.sum - previousValue.sum, + hasMinMax: false, + min: Infinity, + max: -1 }); } diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/types.ts b/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/types.ts index fc1781f257..827a2af47b 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/types.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/src/aggregator/types.ts @@ -59,6 +59,9 @@ export interface Histogram { }; sum: number; count: number; + hasMinMax: boolean; + min: number; + max: number; } /** diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/src/view/Aggregation.ts b/experimental/packages/opentelemetry-sdk-metrics-base/src/view/Aggregation.ts index d5656d9075..ed6cdbb50a 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/src/view/Aggregation.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/src/view/Aggregation.ts @@ -93,7 +93,7 @@ export class LastValueAggregation extends Aggregation { * The default histogram aggregation. */ export class HistogramAggregation extends Aggregation { - private static DEFAULT_INSTANCE = new HistogramAggregator([0, 5, 10, 25, 50, 75, 100, 250, 500, 1000]); + private static DEFAULT_INSTANCE = new HistogramAggregator([0, 5, 10, 25, 50, 75, 100, 250, 500, 1000], true); createAggregator(_instrument: InstrumentDescriptor) { return HistogramAggregation.DEFAULT_INSTANCE; } @@ -104,10 +104,12 @@ export class HistogramAggregation extends Aggregation { */ export class ExplicitBucketHistogramAggregation extends Aggregation { private _boundaries: number[]; + /** * @param boundaries the bucket boundaries of the histogram aggregation + * @param _recordMinMax If set to true, min and max will be recorded. Otherwise, min and max will not be recorded. */ - constructor(boundaries: number[]) { + constructor(boundaries: number[], private readonly _recordMinMax = true) { super(); if (boundaries === undefined || boundaries.length === 0) { throw new Error('HistogramAggregator should be created with boundaries.'); @@ -127,7 +129,7 @@ export class ExplicitBucketHistogramAggregation extends Aggregation { } createAggregator(_instrument: InstrumentDescriptor) { - return new HistogramAggregator(this._boundaries); + return new HistogramAggregator(this._boundaries, this._recordMinMax); } } diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/Instruments.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/Instruments.test.ts index b6301f5c64..bac7776c67 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/Instruments.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/Instruments.test.ts @@ -295,6 +295,9 @@ describe('Instruments', () => { }, count: 2, sum: 10, + hasMinMax: true, + max: 10, + min: 0 }, }, { @@ -306,12 +309,86 @@ describe('Instruments', () => { }, count: 2, sum: 100, + hasMinMax: true, + max: 100, + min: 0 }, }, ], }); }); + it('should collect min and max', async () => { + const { meter, deltaReader, cumulativeReader } = setup(); + const histogram = meter.createHistogram('test', { + valueType: ValueType.INT, + }); + + histogram.record(10); + histogram.record(100); + await deltaReader.collect(); + await cumulativeReader.collect(); + + histogram.record(20); + histogram.record(90); + + // Delta should only have min/max of values recorded after the collection. + await validateExport(deltaReader, { + descriptor: { + name: 'test', + description: '', + unit: '', + type: InstrumentType.HISTOGRAM, + valueType: ValueType.INT, + }, + dataPointType: DataPointType.HISTOGRAM, + dataPoints: [ + { + attributes: {}, + value: { + buckets: { + boundaries: [0, 5, 10, 25, 50, 75, 100, 250, 500, 1000], + counts: [0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], + }, + count: 2, + sum: 110, + hasMinMax: true, + min: 20, + max: 90 + }, + } + ], + }); + + // Cumulative should have min/max of all recorded values. + await validateExport(cumulativeReader, { + descriptor: { + name: 'test', + description: '', + unit: '', + type: InstrumentType.HISTOGRAM, + valueType: ValueType.INT, + }, + dataPointType: DataPointType.HISTOGRAM, + dataPoints: [ + { + attributes: {}, + value: { + buckets: { + boundaries: [0, 5, 10, 25, 50, 75, 100, 250, 500, 1000], + counts: [0, 0, 0, 2, 0, 0, 1, 1, 0, 0, 0], + }, + count: 4, + sum: 220, + hasMinMax: true, + min: 10, + max: 100 + }, + } + ], + }); + }); + it('should not record negative INT values', async () => { const { meter, deltaReader } = setup(); const histogram = meter.createHistogram('test', { @@ -347,6 +424,9 @@ describe('Instruments', () => { }, count: 2, sum: 10.1, + hasMinMax: true, + max: 10, + min: 0.1 }, }, { @@ -358,6 +438,9 @@ describe('Instruments', () => { }, count: 2, sum: 100.1, + hasMinMax: true, + max: 100, + min: 0.1 }, }, ], diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/aggregator/Histogram.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/aggregator/Histogram.test.ts index 269c83bc72..b1f6e05c0a 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/aggregator/Histogram.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/aggregator/Histogram.test.ts @@ -24,7 +24,7 @@ import { commonValues, defaultInstrumentDescriptor } from '../util'; describe('HistogramAggregator', () => { describe('createAccumulation', () => { it('no exceptions on createAccumulation', () => { - const aggregator = new HistogramAggregator([1, 10, 100]); + const aggregator = new HistogramAggregator([1, 10, 100], true); const accumulation = aggregator.createAccumulation([0, 0]); assert(accumulation instanceof HistogramAccumulation); }); @@ -32,7 +32,7 @@ describe('HistogramAggregator', () => { describe('merge', () => { it('no exceptions', () => { - const aggregator = new HistogramAggregator([1, 10, 100]); + const aggregator = new HistogramAggregator([1, 10, 100], true); const prev = aggregator.createAccumulation([0, 0]); prev.record(0); prev.record(1); @@ -55,7 +55,7 @@ describe('HistogramAggregator', () => { describe('diff', () => { it('no exceptions', () => { - const aggregator = new HistogramAggregator([1, 10, 100]); + const aggregator = new HistogramAggregator([1, 10, 100], true); const prev = aggregator.createAccumulation([0, 0]); prev.record(0); prev.record(1); @@ -68,13 +68,16 @@ describe('HistogramAggregator', () => { curr.record(2); curr.record(11); - const expected = new HistogramAccumulation([1, 1], [1, 10, 100], { + const expected = new HistogramAccumulation([1, 1], [1, 10, 100], true, { buckets: { boundaries: [1, 10, 100], counts: [0, 1, 1, 0], }, count: 2, sum: 13, + hasMinMax: false, + min: Infinity, + max: -1 }); assert.deepStrictEqual(aggregator.diff(prev, curr), expected); @@ -83,7 +86,7 @@ describe('HistogramAggregator', () => { describe('toMetricData', () => { it('transform without exception', () => { - const aggregator = new HistogramAggregator([1, 10, 100]); + const aggregator = new HistogramAggregator([1, 10, 100], true); const startTime: HrTime = [0, 0]; const endTime: HrTime = [1, 1]; @@ -107,6 +110,9 @@ describe('HistogramAggregator', () => { }, count: 2, sum: 1, + hasMinMax: true, + min: 0, + max: 1 }, }, ], diff --git a/experimental/packages/opentelemetry-sdk-metrics-base/test/view/Aggregation.test.ts b/experimental/packages/opentelemetry-sdk-metrics-base/test/view/Aggregation.test.ts index c5e959d854..1ca9332e44 100644 --- a/experimental/packages/opentelemetry-sdk-metrics-base/test/view/Aggregation.test.ts +++ b/experimental/packages/opentelemetry-sdk-metrics-base/test/view/Aggregation.test.ts @@ -127,5 +127,26 @@ describe('ExplicitBucketHistogramAggregation', () => { assert(aggregator2 instanceof HistogramAggregator); assert.deepStrictEqual(aggregator2['_boundaries'], [10, 100, 1000]); }); + + describe('should create histogram aggregators', () => { + it('with min/max recording by default', () => { + const aggregator = new ExplicitBucketHistogramAggregation([100, 10, 1]) + .createAggregator(defaultInstrumentDescriptor); + assert.deepStrictEqual(aggregator['_recordMinMax'], true); + }); + + it('with min/max recording when _recordMinMax is set to true', () => { + const aggregator = new ExplicitBucketHistogramAggregation([100, 10, 1], true) + .createAggregator(defaultInstrumentDescriptor); + assert.deepStrictEqual(aggregator['_recordMinMax'], true); + }); + + it('without min/max recording when _recordMinMax is set to true', () => { + const aggregator = new ExplicitBucketHistogramAggregation([100, 10, 1], false) + .createAggregator(defaultInstrumentDescriptor); + assert.deepStrictEqual(aggregator['_recordMinMax'], false); + }); + + }); }); }); diff --git a/experimental/packages/opentelemetry-sdk-node/README.md b/experimental/packages/opentelemetry-sdk-node/README.md index 841bff2824..a21de3c741 100644 --- a/experimental/packages/opentelemetry-sdk-node/README.md +++ b/experimental/packages/opentelemetry-sdk-node/README.md @@ -128,6 +128,10 @@ Configure a trace exporter. If an exporter OR span processor is not configured, Configure tracing parameters. These are the same trace parameters used to [configure a tracer](../../../packages/opentelemetry-sdk-trace-base/src/types.ts#L71). +### serviceName + +Configure the [service name](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service). + ## Useful links - For more information on OpenTelemetry, visit: diff --git a/experimental/packages/opentelemetry-sdk-node/package.json b/experimental/packages/opentelemetry-sdk-node/package.json index b1dfa1b84f..8e6bcae64b 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry SDK for Node.js", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -31,7 +31,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -44,31 +44,28 @@ "access": "public" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/resource-detector-aws": "~1.0.0", - "@opentelemetry/resource-detector-gcp": "~0.26.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/sdk-trace-node": "1.3.0" + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/sdk-trace-node": "1.3.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "devDependencies": { "@opentelemetry/api": ">=1.0.0 <1.2.0", - "@opentelemetry/context-async-hooks": "1.3.0", + "@opentelemetry/context-async-hooks": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/semver": "7.3.9", "@types/sinon": "10.0.6", "codecov": "3.8.3", - "gcp-metadata": "^4.1.4", "istanbul-instrumenter-loader": "3.0.1", "mocha": "7.2.0", - "nock": "13.0.11", "nyc": "15.1.0", "semver": "7.3.5", "sinon": "12.0.1", diff --git a/experimental/packages/opentelemetry-sdk-node/src/sdk.ts b/experimental/packages/opentelemetry-sdk-node/src/sdk.ts index aa3df3247c..f1f4815829 100644 --- a/experimental/packages/opentelemetry-sdk-node/src/sdk.ts +++ b/experimental/packages/opentelemetry-sdk-node/src/sdk.ts @@ -14,25 +14,26 @@ * limitations under the License. */ -import { TextMapPropagator } from '@opentelemetry/api'; +import { ContextManager, TextMapPropagator } from '@opentelemetry/api'; import { metrics } from '@opentelemetry/api-metrics'; -import { ContextManager } from '@opentelemetry/api'; -import { MeterProvider, MetricReader } from '@opentelemetry/sdk-metrics-base'; import { InstrumentationOption, - registerInstrumentations, + registerInstrumentations } from '@opentelemetry/instrumentation'; -import { NodeTracerConfig, NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; -import { awsEc2Detector } from '@opentelemetry/resource-detector-aws'; -import { gcpDetector } from '@opentelemetry/resource-detector-gcp'; import { detectResources, envDetector, processDetector, Resource, - ResourceDetectionConfig, + ResourceDetectionConfig } from '@opentelemetry/resources'; -import { BatchSpanProcessor, SpanProcessor } from '@opentelemetry/sdk-trace-base'; +import { MeterProvider, MetricReader } from '@opentelemetry/sdk-metrics-base'; +import { + BatchSpanProcessor, + SpanProcessor +} from '@opentelemetry/sdk-trace-base'; +import { NodeTracerConfig, NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; +import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; import { NodeSDKConfiguration } from './types'; /** This class represents everything needed to register a fully configured OpenTelemetry Node.js SDK */ @@ -52,6 +53,7 @@ export class NodeSDK { private _tracerProvider?: NodeTracerProvider; private _meterProvider?: MeterProvider; + private _serviceName?: string; /** * Create a new NodeJS SDK instance @@ -59,6 +61,8 @@ export class NodeSDK { public constructor(configuration: Partial = {}) { this._resource = configuration.resource ?? new Resource({}); + this._serviceName = configuration.serviceName; + this._autoDetectResources = configuration.autoDetectResources ?? true; if (configuration.spanProcessor || configuration.traceExporter) { @@ -115,9 +119,11 @@ export class NodeSDK { } /** Detect resource attributes */ - public async detectResources(config?: ResourceDetectionConfig): Promise { + public async detectResources( + config?: ResourceDetectionConfig + ): Promise { const internalConfig: ResourceDetectionConfig = { - detectors: [awsEc2Detector, gcpDetector, envDetector, processDetector], + detectors: [ envDetector, processDetector], ...config, }; @@ -137,6 +143,12 @@ export class NodeSDK { await this.detectResources(); } + this._resource = this._serviceName === undefined + ? this._resource + : this._resource.merge(new Resource( + {[SemanticResourceAttributes.SERVICE_NAME]: this._serviceName} + )); + if (this._tracerProviderConfig) { const tracerProvider = new NodeTracerProvider({ ...this._tracerProviderConfig.tracerConfig, diff --git a/experimental/packages/opentelemetry-sdk-node/src/types.ts b/experimental/packages/opentelemetry-sdk-node/src/types.ts index ea93ddae16..90c1e08401 100644 --- a/experimental/packages/opentelemetry-sdk-node/src/types.ts +++ b/experimental/packages/opentelemetry-sdk-node/src/types.ts @@ -14,15 +14,15 @@ * limitations under the License. */ -import { SpanAttributes, TextMapPropagator, Sampler } from '@opentelemetry/api'; -import type { ContextManager } from '@opentelemetry/api'; +import type { ContextManager, SpanAttributes } from '@opentelemetry/api'; +import { Sampler, TextMapPropagator } from '@opentelemetry/api'; import { InstrumentationOption } from '@opentelemetry/instrumentation'; -import { MetricReader } from '@opentelemetry/sdk-metrics-base'; import { Resource } from '@opentelemetry/resources'; +import { MetricReader } from '@opentelemetry/sdk-metrics-base'; import { SpanExporter, - SpanProcessor, SpanLimits, + SpanProcessor } from '@opentelemetry/sdk-trace-base'; export interface NodeSDKConfiguration { @@ -34,6 +34,7 @@ export interface NodeSDKConfiguration { instrumentations: InstrumentationOption[]; resource: Resource; sampler: Sampler; + serviceName?: string; spanProcessor: SpanProcessor; traceExporter: SpanExporter; spanLimits: SpanLimits; diff --git a/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts b/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts index 2237828534..217800c9c0 100644 --- a/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts +++ b/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts @@ -30,12 +30,7 @@ import { import { CompositePropagator } from '@opentelemetry/core'; import { ConsoleMetricExporter, MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics-base'; import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; -import { awsEc2Detector } from '@opentelemetry/resource-detector-aws'; -import { resetIsAvailableCache } from '@opentelemetry/resource-detector-gcp'; -import { Resource } from '@opentelemetry/resources'; import { - assertCloudResource, - assertHostResource, assertServiceResource, } from './util/resource-assertions'; import { @@ -43,43 +38,11 @@ import { SimpleSpanProcessor, } from '@opentelemetry/sdk-trace-base'; import * as assert from 'assert'; -import { - BASE_PATH, - HEADER_NAME, - HEADER_VALUE, - HOST_ADDRESS, - SECONDARY_HOST_ADDRESS, -} from 'gcp-metadata'; -import * as nock from 'nock'; import * as semver from 'semver'; import * as Sinon from 'sinon'; import { NodeSDK } from '../src'; +import { envDetector, processDetector } from '@opentelemetry/resources'; -const HEADERS = { - [HEADER_NAME.toLowerCase()]: HEADER_VALUE, -}; -const INSTANCE_PATH = BASE_PATH + '/instance'; -const INSTANCE_ID_PATH = BASE_PATH + '/instance/id'; -const PROJECT_ID_PATH = BASE_PATH + '/project/project-id'; -const ZONE_PATH = BASE_PATH + '/instance/zone'; -const CLUSTER_NAME_PATH = BASE_PATH + '/instance/attributes/cluster-name'; - -const AWS_HOST = 'http://' + awsEc2Detector.AWS_IDMS_ENDPOINT; -const AWS_TOKEN_PATH = awsEc2Detector.AWS_INSTANCE_TOKEN_DOCUMENT_PATH; -const AWS_IDENTITY_PATH = awsEc2Detector.AWS_INSTANCE_IDENTITY_DOCUMENT_PATH; -const AWS_HOST_PATH = awsEc2Detector.AWS_INSTANCE_HOST_DOCUMENT_PATH; -const AWS_METADATA_TTL_HEADER = awsEc2Detector.AWS_METADATA_TTL_HEADER; -const AWS_METADATA_TOKEN_HEADER = awsEc2Detector.AWS_METADATA_TOKEN_HEADER; - -const mockedTokenResponse = 'my-token'; -const mockedIdentityResponse = { - instanceId: 'my-instance-id', - instanceType: 'my-instance-type', - accountId: 'my-account-id', - region: 'my-region', - availabilityZone: 'my-zone', -}; -const mockedHostResponse = 'my-hostname'; const DefaultContextManager = semver.gte(process.version, '14.8.0') ? AsyncLocalStorageContextManager @@ -90,10 +53,6 @@ describe('Node SDK', () => { let propagator: any; let delegate: any; - before(() => { - nock.disableNetConnect(); - }); - beforeEach(() => { context.disable(); trace.disable(); @@ -190,138 +149,27 @@ describe('Node SDK', () => { describe('detectResources', async () => { beforeEach(() => { - nock.disableNetConnect(); process.env.OTEL_RESOURCE_ATTRIBUTES = 'service.instance.id=627cc493,service.name=my-service,service.namespace=default,service.version=0.0.1'; }); afterEach(() => { - nock.cleanAll(); - nock.enableNetConnect(); delete process.env.OTEL_RESOURCE_ATTRIBUTES; }); - // GCP detector only works in 10+ - (semver.satisfies(process.version, '>=10') ? describe : describe.skip)( - 'in GCP environment', - () => { - after(() => { - resetIsAvailableCache(); - }); - - it('returns a merged resource', async () => { - const sdk = new NodeSDK({ - autoDetectResources: true, - }); - const gcpScope = nock(HOST_ADDRESS) - .get(INSTANCE_PATH) - .reply(200, {}, HEADERS) - .get(INSTANCE_ID_PATH) - .reply(200, () => 452003179927758, HEADERS) - .get(PROJECT_ID_PATH) - .reply(200, () => 'my-project-id', HEADERS) - .get(ZONE_PATH) - .reply(200, () => 'project/zone/my-zone', HEADERS) - .get(CLUSTER_NAME_PATH) - .reply(404); - const gcpSecondaryScope = nock(SECONDARY_HOST_ADDRESS) - .get(INSTANCE_PATH) - .reply(200, {}, HEADERS); - const awsScope = nock(AWS_HOST) - .persist() - .put(AWS_TOKEN_PATH) - .matchHeader(AWS_METADATA_TTL_HEADER, '60') - .replyWithError({ code: 'ENOTFOUND' }); - await sdk.detectResources(); - const resource = sdk['_resource']; - - awsScope.done(); - gcpSecondaryScope.done(); - gcpScope.done(); - - assertCloudResource(resource, { - provider: 'gcp', - accountId: 'my-project-id', - zone: 'my-zone', - }); - assertHostResource(resource, { id: '452003179927758' }); - assertServiceResource(resource, { - instanceId: '627cc493', - name: 'my-service', - namespace: 'default', - version: '0.0.1', - }); - }); - } - ); - - describe('in AWS environment', () => { + describe('with a buggy detector', () => { it('returns a merged resource', async () => { - const sdk = new NodeSDK({ - autoDetectResources: true, - }); - const awsScope = nock(AWS_HOST) - .persist() - .put(AWS_TOKEN_PATH) - .matchHeader(AWS_METADATA_TTL_HEADER, '60') - .reply(200, () => mockedTokenResponse) - .get(AWS_IDENTITY_PATH) - .matchHeader(AWS_METADATA_TOKEN_HEADER, mockedTokenResponse) - .reply(200, () => mockedIdentityResponse) - .get(AWS_HOST_PATH) - .matchHeader(AWS_METADATA_TOKEN_HEADER, mockedTokenResponse) - .reply(200, () => mockedHostResponse); - await sdk.detectResources(); - const resource: Resource = sdk['_resource']; - awsScope.done(); - - assertCloudResource(resource, { - provider: 'aws', - accountId: 'my-account-id', - region: 'my-region', - zone: 'my-zone', - }); - assertHostResource(resource, { - id: 'my-instance-id', - hostType: 'my-instance-type', - name: 'my-hostname', - hostName: 'my-hostname', - }); - assertServiceResource(resource, { - instanceId: '627cc493', - name: 'my-service', - namespace: 'default', - version: '0.0.1', - }); - }); - }); - - describe('in no environment', () => { - it('should return empty resource', async () => { - const scope = nock(AWS_HOST).put(AWS_TOKEN_PATH).replyWithError({ - code: 'ENOTFOUND', - }); const sdk = new NodeSDK({ autoDetectResources: true, }); await sdk.detectResources({ - detectors: [awsEc2Detector], - }); - const resource: Resource = sdk['_resource']; - assert.ok(resource); - assert.deepStrictEqual(resource, Resource.empty()); - - scope.done(); - }); - }); - - describe('with a buggy detector', () => { - it('returns a merged resource', async () => { - const sdk = new NodeSDK({ - autoDetectResources: true, + detectors: [ processDetector, { + detect() { + throw new Error('Buggy detector'); + } + }, + envDetector ] }); - const stub = Sinon.stub(awsEc2Detector, 'detect').throws(); - await sdk.detectResources(); const resource = sdk['_resource']; assertServiceResource(resource, { @@ -330,8 +178,6 @@ describe('Node SDK', () => { namespace: 'default', version: '0.0.1', }); - - stub.restore(); }); }); @@ -373,19 +219,6 @@ describe('Node SDK', () => { await sdk.detectResources(); - // Test for AWS and GCP Detector failure - assert.ok( - callArgsContains( - mockedLoggerMethod, - 'GcpDetector failed: GCP Metadata unavailable.' - ) - ); - assert.ok( - callArgsContains( - mockedLoggerMethod, - 'AwsEc2Detector failed: Nock: Disallowed net connect for "169.254.169.254:80/latest/api/token"' - ) - ); // Test that the Env Detector successfully found its resource and populated it with the right values. assert.ok( callArgsContains(mockedLoggerMethod, 'EnvDetector found resource.') @@ -428,4 +261,76 @@ describe('Node SDK', () => { }); }); }); + + describe('configureServiceName', async () => { + it('should configure service name via config', async () => { + const sdk = new NodeSDK({ + serviceName: 'config-set-name', + }); + + await sdk.start(); + const resource = sdk['_resource']; + + assertServiceResource(resource, { + name: 'config-set-name', + }); + }); + + it('should configure service name via OTEL_SERVICE_NAME env var', async () => { + process.env.OTEL_SERVICE_NAME='env-set-name'; + const sdk = new NodeSDK(); + + await sdk.start(); + const resource = sdk['_resource']; + + assertServiceResource(resource, { + name: 'env-set-name', + }); + delete process.env.OTEL_SERVICE_NAME; + }); + + it('should favor config set service name over OTEL_SERVICE_NAME env set service name', async () => { + process.env.OTEL_SERVICE_NAME='env-set-name'; + const sdk = new NodeSDK({ + serviceName: 'config-set-name', + }); + + await sdk.start(); + const resource = sdk['_resource']; + + assertServiceResource(resource, { + name: 'config-set-name', + }); + delete process.env.OTEL_SERVICE_NAME; + }); + + + it('should configure service name via OTEL_RESOURCE_ATTRIBUTES env var', async () => { + process.env.OTEL_RESOURCE_ATTRIBUTES = 'service.name=resource-env-set-name'; + const sdk = new NodeSDK(); + + await sdk.start(); + const resource = sdk['_resource']; + + assertServiceResource(resource, { + name: 'resource-env-set-name', + }); + delete process.env.OTEL_RESOURCE_ATTRIBUTES; + }); + + it('should favor config set service name over OTEL_RESOURCE_ATTRIBUTES env set service name', async () => { + process.env.OTEL_RESOURCE_ATTRIBUTES = 'service.name=resource-env-set-name'; + const sdk = new NodeSDK({ + serviceName: 'config-set-name', + }); + + await sdk.start(); + const resource = sdk['_resource']; + + assertServiceResource(resource, { + name: 'config-set-name', + }); + delete process.env.OTEL_RESOURCE_ATTRIBUTES; + }); + }); }); diff --git a/experimental/packages/opentelemetry-sdk-node/test/util/resource-assertions.ts b/experimental/packages/opentelemetry-sdk-node/test/util/resource-assertions.ts index 206c9bcf86..331fed6e8e 100644 --- a/experimental/packages/opentelemetry-sdk-node/test/util/resource-assertions.ts +++ b/experimental/packages/opentelemetry-sdk-node/test/util/resource-assertions.ts @@ -232,7 +232,7 @@ export const assertServiceResource = ( resource: Resource, validations: { name: string; - instanceId: string; + instanceId?: string; namespace?: string; version?: string; } diff --git a/experimental/packages/opentelemetry-sdk-node/tsconfig.json b/experimental/packages/opentelemetry-sdk-node/tsconfig.json index 88e78f2e41..c0fe67144f 100644 --- a/experimental/packages/opentelemetry-sdk-node/tsconfig.json +++ b/experimental/packages/opentelemetry-sdk-node/tsconfig.json @@ -24,6 +24,9 @@ { "path": "../../../packages/opentelemetry-sdk-trace-node" }, + { + "path": "../../../packages/opentelemetry-semantic-conventions" + }, { "path": "../opentelemetry-api-metrics" }, diff --git a/experimental/packages/otlp-exporter-base/package.json b/experimental/packages/otlp-exporter-base/package.json index 0f90d12880..9405a85a47 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry OTLP Exporter base (for internal use only)", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -42,7 +42,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -61,7 +61,7 @@ "access": "public" }, "dependencies": { - "@opentelemetry/core": "1.3.0" + "@opentelemetry/core": "1.3.1" }, "devDependencies": { "@opentelemetry/api": "^1.0.0", diff --git a/experimental/packages/otlp-exporter-base/src/platform/node/OTLPExporterNodeBase.ts b/experimental/packages/otlp-exporter-base/src/platform/node/OTLPExporterNodeBase.ts index b4f70b65fd..9bc6bb3cfc 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/node/OTLPExporterNodeBase.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/node/OTLPExporterNodeBase.ts @@ -88,7 +88,5 @@ export abstract class OTLPExporterNodeBase< promise.then(popPromise, popPromise); } - // TODO: end gzip stream from util.ts if not undefined - // It should perhaps be a class member here instead of a variable in util.ts onShutdown(): void {} } diff --git a/experimental/packages/otlp-exporter-base/src/platform/node/util.ts b/experimental/packages/otlp-exporter-base/src/platform/node/util.ts index f5b391866e..2d2a47471d 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/node/util.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/node/util.ts @@ -25,8 +25,6 @@ import { CompressionAlgorithm } from './types'; import { getEnv } from '@opentelemetry/core'; import { OTLPExporterError } from '../../types'; -let gzip: zlib.Gzip | undefined; - /** * Sends data using http * @param collector @@ -116,13 +114,10 @@ export function sendWithHttp( switch (collector.compression) { case CompressionAlgorithm.GZIP: { - if (!gzip) { - gzip = zlib.createGzip(); - } req.setHeader('Content-Encoding', 'gzip'); const dataStream = readableFromBuffer(data); dataStream.on('error', onError) - .pipe(gzip).on('error', onError) + .pipe(zlib.createGzip()).on('error', onError) .pipe(req); break; diff --git a/experimental/packages/otlp-exporter-base/test/node/util.test.ts b/experimental/packages/otlp-exporter-base/test/node/util.test.ts index b50e1329ca..56dc66f2ee 100644 --- a/experimental/packages/otlp-exporter-base/test/node/util.test.ts +++ b/experimental/packages/otlp-exporter-base/test/node/util.test.ts @@ -16,11 +16,50 @@ import * as assert from 'assert'; import { configureExporterTimeout, invalidTimeout } from '../../src/util'; +import { sendWithHttp } from '../../src/platform/node/util'; import { CompressionAlgorithm} from '../../src/platform/node/types'; import { configureCompression} from '../../src/platform/node/util'; import { diag } from '@opentelemetry/api'; import * as sinon from 'sinon'; +import { OTLPExporterNodeBase } from '../../src/platform/node/OTLPExporterNodeBase'; +import { OTLPExporterNodeConfigBase } from '../../src/platform/node/types'; +import { OTLPExporterError } from '../../src/types'; +import { PassThrough } from 'stream'; +import * as http from 'http'; +import * as zlib from 'zlib'; + +// Meant to simulate http.IncomingMessage, at least the parts that sendWithHttp cares about +// but make it a PassThrough so we can inspect it for the test +class HttpResponse extends PassThrough { + statusCode: number; + statusMessage: string; + + constructor(statusCode = 200, statusMessage = 'OK') { + super(); + this.statusCode = statusCode; + this.statusMessage = statusMessage; + } +} + +// Meant to simulate http.ClientRequest, at least the parts that sendWithHttp cares about +// but make it a PassThrough so we can inspect it for the test +class HttpRequest extends PassThrough { + setHeader(name: string, value: string) {} +} + +// Barebones exporter for use by sendWithHttp +type ExporterConfig = OTLPExporterNodeConfigBase; +class Exporter extends OTLPExporterNodeBase { + getDefaultUrl(config: ExporterConfig): string { + return config.url || ''; + } + + convert(spans: object[]): object { + return {}; + } +} + describe('configureExporterTimeout', () => { const envSource = process.env; it('should use timeoutMillis parameter as export timeout value', () => { @@ -124,3 +163,123 @@ describe('configureCompression', () => { assert.strictEqual(configureCompression(undefined),CompressionAlgorithm.NONE); }); }); + +describe('sendWithHttp', () => { + let exporter: Exporter; + let httpRequestStub: sinon.SinonStub; + let mockRequest: HttpRequest; + let setHeaderSpy: sinon.SinonSpy; + + const spanData: object = { + 'foo': 'bar', + 'bar': 'baz', + }; + + beforeEach(() => { + + // Create stub of http.request (used by sendWithHttp) + httpRequestStub = sinon.stub(http, 'request'); + + // Mock out a request + mockRequest = new HttpRequest(); + setHeaderSpy = sinon.spy(mockRequest, 'setHeader'); + + // Mock out response + const response = new HttpResponse(); + response.end('OK'); + + // Stub out http.request so it calls our callback with the mocked response + // and also so it returns our mocked request stream so we can observe. We don't + // really care about the response for the purpose of this test, but we do want + // to observe the request compression behavior. + httpRequestStub.returns(mockRequest).callsArgWith(1, response); + }); + + afterEach(function() { + httpRequestStub.restore(); + setHeaderSpy.restore(); + }); + + it('should send with no compression if configured to do so', () => { + exporter = new Exporter({ + url: 'http://foobar.com', + compression: CompressionAlgorithm.NONE, + }); + const data = JSON.stringify(spanData); + + // Show that data is written to the request stream + let requestData = ''; + mockRequest.on('data', chunk => requestData += chunk); + mockRequest.on('end', () => { + assert.strictEqual(requestData, data); + }); + + sendWithHttp(exporter, data, 'application/json', () => { + // Show that we aren't setting the gzip encoding header + assert(setHeaderSpy.withArgs('Content-Encoding', 'gzip').notCalled); + }, (err: OTLPExporterError) => { + assert.fail(err); + }); + }); + + it('should send with gzip compression if configured to do so', () => { + exporter = new Exporter({ + url: 'http://foobar.com', + compression: CompressionAlgorithm.GZIP, + }); + + const data = JSON.stringify(spanData); + const compressedData = zlib.gzipSync(Buffer.from(data)); + + // Show that compressed data is written to the request stream + const buffers: Buffer[] = []; + mockRequest.on('data', chunk => buffers.push(Buffer.from(chunk))); + mockRequest.on('end', () => { + assert(Buffer.concat(buffers).equals(compressedData)); + }); + + sendWithHttp(exporter, data, 'application/json', () => { + // Show that we are setting the gzip encoding header + assert(setHeaderSpy.withArgs('Content-Encoding', 'gzip').calledOnce); + }, (err: OTLPExporterError) => { + assert.fail(err); + }); + }); + + it('should work with gzip compression enabled even after multiple requests', () => { + exporter = new Exporter({ + url: 'http://foobar.com', + compression: CompressionAlgorithm.GZIP, + }); + + const data = JSON.stringify(spanData); + const compressedData = zlib.gzipSync(Buffer.from(data)); + + for (let i = 0; i < 5; i++) { + mockRequest = new HttpRequest(); + setHeaderSpy.restore(); + setHeaderSpy = sinon.spy(mockRequest, 'setHeader'); + + const response = new HttpResponse(); + response.end('OK'); + + httpRequestStub.restore(); + httpRequestStub = sinon.stub(http, 'request'); + httpRequestStub.returns(mockRequest).callsArgWith(1, response); + + // Show that compressed data is written to the request stream + const buffers: Buffer[] = []; + mockRequest.on('data', chunk => buffers.push(Buffer.from(chunk))); + mockRequest.on('end', () => { + assert(Buffer.concat(buffers).equals(compressedData)); + }); + + sendWithHttp(exporter, data, 'application/json', () => { + // Show that we are setting the gzip encoding header + assert(setHeaderSpy.withArgs('Content-Encoding', 'gzip').calledOnce); + }, (err: OTLPExporterError) => { + assert.fail(err); + }); + } + }); +}); diff --git a/experimental/packages/otlp-grpc-exporter-base/package.json b/experimental/packages/otlp-grpc-exporter-base/package.json index 1071091dde..2abbeeea9d 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry OTLP-gRPC Exporter base (for internal use only)", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -34,7 +34,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -51,9 +51,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/otlp-transformer": "0.29.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/otlp-transformer": "0.29.2", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -73,7 +73,7 @@ "dependencies": { "@grpc/grpc-js": "^1.5.9", "@grpc/proto-loader": "^0.6.9", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/otlp-exporter-base": "0.29.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-exporter-base": "0.29.2" } } diff --git a/experimental/packages/otlp-grpc-exporter-base/protos b/experimental/packages/otlp-grpc-exporter-base/protos index 9657f2f707..c5c8b28012 160000 --- a/experimental/packages/otlp-grpc-exporter-base/protos +++ b/experimental/packages/otlp-grpc-exporter-base/protos @@ -1 +1 @@ -Subproject commit 9657f2f70739433d27412fe99d81479676814e26 +Subproject commit c5c8b28012583fda55b0cb16f73a820722171d49 diff --git a/experimental/packages/otlp-grpc-exporter-base/src/OTLPGRPCExporterNodeBase.ts b/experimental/packages/otlp-grpc-exporter-base/src/OTLPGRPCExporterNodeBase.ts index 9cc349fe4e..87d7e01787 100644 --- a/experimental/packages/otlp-grpc-exporter-base/src/OTLPGRPCExporterNodeBase.ts +++ b/experimental/packages/otlp-grpc-exporter-base/src/OTLPGRPCExporterNodeBase.ts @@ -116,4 +116,5 @@ export abstract class OTLPGRPCExporterNodeBase< abstract getServiceProtoPath(): string; abstract getServiceClientType(): ServiceClientType; + abstract getUrlFromConfig(config: OTLPGRPCExporterConfigNode): string; } diff --git a/experimental/packages/otlp-grpc-exporter-base/src/util.ts b/experimental/packages/otlp-grpc-exporter-base/src/util.ts index 313618fa72..1d3791bd38 100644 --- a/experimental/packages/otlp-grpc-exporter-base/src/util.ts +++ b/experimental/packages/otlp-grpc-exporter-base/src/util.ts @@ -33,7 +33,7 @@ export function onInit( ): void { collector.grpcQueue = []; - const credentials: grpc.ChannelCredentials = configureSecurity(config.credentials, collector.url); + const credentials: grpc.ChannelCredentials = configureSecurity(config.credentials, collector.getUrlFromConfig(config)); const includeDirs = [path.resolve(__dirname, '..', 'protos')]; @@ -92,7 +92,7 @@ export function send( collector.serviceClient.export( serviceRequest, collector.metadata || new grpc.Metadata(), - {deadline: deadline}, + { deadline: deadline }, (err: ExportServiceError) => { if (err) { diag.error('Service request', serviceRequest); @@ -225,7 +225,7 @@ function retrieveCertChain(): Buffer | undefined { } function toGrpcCompression(compression: CompressionAlgorithm): GrpcCompressionAlgorithm { - if(compression === CompressionAlgorithm.NONE) + if (compression === CompressionAlgorithm.NONE) return GrpcCompressionAlgorithm.NONE; else if (compression === CompressionAlgorithm.GZIP) return GrpcCompressionAlgorithm.GZIP; @@ -246,6 +246,6 @@ export function configureCompression(compression: CompressionAlgorithm | undefin } else { const definedCompression = getEnv().OTEL_EXPORTER_OTLP_TRACES_COMPRESSION || getEnv().OTEL_EXPORTER_OTLP_COMPRESSION; - return definedCompression === 'gzip' ? GrpcCompressionAlgorithm.GZIP: GrpcCompressionAlgorithm.NONE; + return definedCompression === 'gzip' ? GrpcCompressionAlgorithm.GZIP : GrpcCompressionAlgorithm.NONE; } } diff --git a/experimental/packages/otlp-grpc-exporter-base/test/OTLPGRPCExporterNodeBase.test.ts b/experimental/packages/otlp-grpc-exporter-base/test/OTLPGRPCExporterNodeBase.test.ts index aca3540763..ec28b53011 100644 --- a/experimental/packages/otlp-grpc-exporter-base/test/OTLPGRPCExporterNodeBase.test.ts +++ b/experimental/packages/otlp-grpc-exporter-base/test/OTLPGRPCExporterNodeBase.test.ts @@ -52,6 +52,10 @@ class MockCollectorExporter extends OTLPGRPCExporterNodeBase< getServiceProtoPath(): string { return 'opentelemetry/proto/collector/trace/v1/trace_service.proto'; } + + getUrlFromConfig(config: OTLPGRPCExporterConfigNode): string { + return ''; + } } // Mocked _send which just saves the callbacks for later diff --git a/experimental/packages/otlp-proto-exporter-base/package.json b/experimental/packages/otlp-proto-exporter-base/package.json index 34c0e150ab..1c83fec8b7 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.29.0", + "version": "0.29.2", "description": "OpenTelemetry OTLP-HTTP-protobuf Exporter base (for internal use only)", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -31,7 +31,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -66,8 +66,8 @@ }, "dependencies": { "@grpc/proto-loader": "^0.6.9", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/otlp-exporter-base": "0.29.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/otlp-exporter-base": "0.29.2", "protobufjs": "^6.9.0" } } diff --git a/experimental/packages/otlp-proto-exporter-base/protos b/experimental/packages/otlp-proto-exporter-base/protos index 9657f2f707..c5c8b28012 160000 --- a/experimental/packages/otlp-proto-exporter-base/protos +++ b/experimental/packages/otlp-proto-exporter-base/protos @@ -1 +1 @@ -Subproject commit 9657f2f70739433d27412fe99d81479676814e26 +Subproject commit c5c8b28012583fda55b0cb16f73a820722171d49 diff --git a/experimental/packages/otlp-transformer/package.json b/experimental/packages/otlp-transformer/package.json index f44f5ef807..2da20e98d6 100644 --- a/experimental/packages/otlp-transformer/package.json +++ b/experimental/packages/otlp-transformer/package.json @@ -4,7 +4,7 @@ "publishConfig": { "access": "public" }, - "version": "0.29.0", + "version": "0.29.2", "description": "Transform OpenTelemetry SDK data into OTLP", "module": "build/esm/index.js", "esnext": "build/esnext/index.js", @@ -12,6 +12,7 @@ "main": "build/src/index.js", "repository": "open-telemetry/opentelemetry-js", "scripts": { + "prepublishOnly": "npm run compile", "compile": "tsc --build tsconfig.all.json", "clean": "tsc --build --clean tsconfig.all.json", "lint": "eslint . --ext .ts", @@ -35,7 +36,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -68,7 +69,7 @@ "mkdirp": "1.0.4", "mocha": "7.2.0", "nyc": "15.1.0", - "protobufjs": "6.11.2", + "protobufjs": "6.11.3", "rimraf": "3.0.2", "ts-loader": "8.3.0", "ts-mocha": "9.0.2", @@ -76,10 +77,10 @@ "webpack": "4.46.0" }, "dependencies": { - "@opentelemetry/api-metrics": "0.29.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-metrics-base": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0" + "@opentelemetry/api-metrics": "0.29.2", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-metrics-base": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1" } } diff --git a/experimental/packages/otlp-transformer/src/common/types.ts b/experimental/packages/otlp-transformer/src/common/types.ts index 7ca7ecd1a3..c64d9820e2 100644 --- a/experimental/packages/otlp-transformer/src/common/types.ts +++ b/experimental/packages/otlp-transformer/src/common/types.ts @@ -41,7 +41,7 @@ export interface IAnyValue { boolValue?: (boolean | null); /** AnyValue intValue */ - intValue?: (number | Long | null); + intValue?: (number | null); /** AnyValue doubleValue */ doubleValue?: (number | null); diff --git a/experimental/packages/otlp-transformer/src/metrics/internal.ts b/experimental/packages/otlp-transformer/src/metrics/internal.ts index bd2e67b35b..e1319a6b17 100644 --- a/experimental/packages/otlp-transformer/src/metrics/internal.ts +++ b/experimental/packages/otlp-transformer/src/metrics/internal.ts @@ -46,9 +46,9 @@ export function toResourceMetrics(resourceMetrics: ResourceMetrics): IResourceMe }; } -export function toScopeMetrics(scopeMetrics: ScopeMetrics[]): IScopeMetrics[]{ +export function toScopeMetrics(scopeMetrics: ScopeMetrics[]): IScopeMetrics[] { return Array.from(scopeMetrics.map(metrics => { - const scopeMetrics : IScopeMetrics = { + const scopeMetrics: IScopeMetrics = { scope: { name: metrics.scope.name, version: metrics.scope.version, @@ -135,6 +135,8 @@ function toHistogramDataPoints( explicitBounds: histogram.buckets.boundaries, count: histogram.count, sum: histogram.sum, + min: histogram.hasMinMax ? histogram.min : undefined, + max: histogram.hasMinMax ? histogram.max : undefined, startTimeUnixNano: hrTimeToNanoseconds(dataPoint.startTime), timeUnixNano: hrTimeToNanoseconds( dataPoint.endTime diff --git a/experimental/packages/otlp-transformer/src/metrics/types.ts b/experimental/packages/otlp-transformer/src/metrics/types.ts index 0e98ff2a25..41870304d4 100644 --- a/experimental/packages/otlp-transformer/src/metrics/types.ts +++ b/experimental/packages/otlp-transformer/src/metrics/types.ts @@ -174,6 +174,12 @@ export interface IHistogramDataPoint { /** HistogramDataPoint flags */ flags?: number; + + /** HistogramDataPoint min */ + min?: number; + + /** HistogramDataPoint max */ + max?: number; } /** Properties of an ExponentialHistogramDataPoint. */ diff --git a/experimental/packages/otlp-transformer/test/metrics.test.ts b/experimental/packages/otlp-transformer/test/metrics.test.ts index 77a54ab1e5..e9047b3f0c 100644 --- a/experimental/packages/otlp-transformer/test/metrics.test.ts +++ b/experimental/packages/otlp-transformer/test/metrics.test.ts @@ -32,6 +32,34 @@ const END_TIME = hrTime(); describe('Metrics', () => { describe('createExportMetricsServiceRequest', () => { + const expectedResource = { + attributes: [ + { + key: 'resource-attribute', + value: { + stringValue: 'resource attribute value', + }, + }, + ], + droppedAttributesCount: 0, + }; + + const expectedScope = { + name: 'mylib', + version: '0.1.0', + }; + + const expectedSchemaUrl = 'http://url.to.schema'; + + const expectedAttributes = [ + { + key: 'string-attribute', + value: { + stringValue: 'some attribute value', + }, + }, + ]; + function createCounterData(value: number, aggregationTemporality: AggregationTemporality): MetricData { return { descriptor: { @@ -98,7 +126,13 @@ describe('Metrics', () => { }; } - function createHistogramMetrics(count: number, sum: number, boundaries: number[], counts: number[], aggregationTemporality: AggregationTemporality): MetricData { + function createHistogramMetrics(count: number, + sum: number, + boundaries: number[], + counts: number[], aggregationTemporality: AggregationTemporality, + hasMinMax: boolean, + min: number, + max: number): MetricData { return { descriptor: { description: 'this is a description', @@ -114,6 +148,9 @@ describe('Metrics', () => { value: { sum: sum, count: count, + hasMinMax: hasMinMax, + min: min, + max: max, buckets: { boundaries: boundaries, counts: counts @@ -139,7 +176,7 @@ describe('Metrics', () => { scope: { name: 'mylib', version: '0.1.0', - schemaUrl: 'http://url.to.schema' + schemaUrl: expectedSchemaUrl }, metrics: metricData, } @@ -155,25 +192,12 @@ describe('Metrics', () => { assert.deepStrictEqual(exportRequest, { resourceMetrics: [ { - resource: { - attributes: [ - { - key: 'resource-attribute', - value: { - stringValue: 'resource attribute value', - }, - }, - ], - droppedAttributesCount: 0, - }, + resource: expectedResource, schemaUrl: undefined, scopeMetrics: [ { - scope: { - name: 'mylib', - version: '0.1.0', - }, - schemaUrl: 'http://url.to.schema', + scope: expectedScope, + schemaUrl: expectedSchemaUrl, metrics: [ { name: 'counter', @@ -182,14 +206,7 @@ describe('Metrics', () => { sum: { dataPoints: [ { - attributes: [ - { - key: 'string-attribute', - value: { - stringValue: 'some attribute value', - }, - }, - ], + attributes: expectedAttributes, startTimeUnixNano: hrTimeToNanoseconds(START_TIME), timeUnixNano: hrTimeToNanoseconds(END_TIME), asInt: 10, @@ -216,25 +233,12 @@ describe('Metrics', () => { assert.deepStrictEqual(exportRequest, { resourceMetrics: [ { - resource: { - attributes: [ - { - key: 'resource-attribute', - value: { - stringValue: 'resource attribute value', - }, - }, - ], - droppedAttributesCount: 0, - }, + resource: expectedResource, schemaUrl: undefined, scopeMetrics: [ { - scope: { - name: 'mylib', - version: '0.1.0', - }, - schemaUrl: 'http://url.to.schema', + scope: expectedScope, + schemaUrl: expectedSchemaUrl, metrics: [ { name: 'observable-counter', @@ -243,14 +247,7 @@ describe('Metrics', () => { sum: { dataPoints: [ { - attributes: [ - { - key: 'string-attribute', - value: { - stringValue: 'some attribute value', - }, - }, - ], + attributes: expectedAttributes, startTimeUnixNano: hrTimeToNanoseconds(START_TIME), timeUnixNano: hrTimeToNanoseconds(END_TIME), asInt: 10, @@ -277,25 +274,12 @@ describe('Metrics', () => { assert.deepStrictEqual(exportRequest, { resourceMetrics: [ { - resource: { - attributes: [ - { - key: 'resource-attribute', - value: { - stringValue: 'resource attribute value', - }, - }, - ], - droppedAttributesCount: 0, - }, + resource: expectedResource, schemaUrl: undefined, scopeMetrics: [ { - scope: { - name: 'mylib', - version: '0.1.0', - }, - schemaUrl: 'http://url.to.schema', + scope: expectedScope, + schemaUrl: expectedSchemaUrl, metrics: [ { name: 'gauge', @@ -304,14 +288,7 @@ describe('Metrics', () => { gauge: { dataPoints: [ { - attributes: [ - { - key: 'string-attribute', - value: { - stringValue: 'some attribute value', - }, - }, - ], + attributes: expectedAttributes, startTimeUnixNano: hrTimeToNanoseconds(START_TIME), timeUnixNano: hrTimeToNanoseconds(END_TIME), asDouble: 10.5, @@ -327,66 +304,95 @@ describe('Metrics', () => { }); }); - it('serializes a histogram metric record', () => { - const exportRequest = createExportMetricsServiceRequest( - [createResourceMetrics([createHistogramMetrics(2, 9, [5], [1,1], AggregationTemporality.CUMULATIVE)])] - ); - assert.ok(exportRequest); + describe('serializes a histogram metric record', () => { + it('with min/max', () => { + const exportRequest = createExportMetricsServiceRequest( + [createResourceMetrics([createHistogramMetrics(2, 9, [5], [1, 1], AggregationTemporality.CUMULATIVE, true,1, 8)])] + ); + assert.ok(exportRequest); - assert.deepStrictEqual(exportRequest, { - resourceMetrics: [ - { - resource: { - attributes: [ + assert.deepStrictEqual(exportRequest, { + resourceMetrics: [ + { + resource: expectedResource, + schemaUrl: undefined, + scopeMetrics: [ { - key: 'resource-attribute', - value: { - stringValue: 'resource attribute value', - }, + scope: expectedScope, + schemaUrl: expectedSchemaUrl, + metrics: [ + { + name: 'hist', + description: 'this is a description', + unit: '1', + histogram: { + aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE, + dataPoints: [ + { + attributes: expectedAttributes, + bucketCounts: [1, 1], + count: 2, + explicitBounds: [5], + sum: 9, + min: 1, + max: 8, + startTimeUnixNano: hrTimeToNanoseconds(START_TIME), + timeUnixNano: hrTimeToNanoseconds(END_TIME), + }, + ], + }, + }, + ], }, ], - droppedAttributesCount: 0, }, - schemaUrl: undefined, - scopeMetrics: [ - { - scope: { - name: 'mylib', - version: '0.1.0', - }, - schemaUrl: 'http://url.to.schema', - metrics: [ - { - name: 'hist', - description: 'this is a description', - unit: '1', - histogram: { - aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE, - dataPoints: [ - { - attributes: [ - { - key: 'string-attribute', - value: { - stringValue: 'some attribute value', - }, - }, - ], - bucketCounts: [1, 1], - count: 2, - explicitBounds: [5], - sum: 9, - startTimeUnixNano: hrTimeToNanoseconds(START_TIME), - timeUnixNano: hrTimeToNanoseconds(END_TIME), - }, - ], + ], + }); + }); + + it('without min/max', () => { + const exportRequest = createExportMetricsServiceRequest( + [createResourceMetrics([createHistogramMetrics(2, 9, [5], [1, 1], AggregationTemporality.CUMULATIVE, false, Infinity, -1)])] + ); + assert.ok(exportRequest); + + assert.deepStrictEqual(exportRequest, { + resourceMetrics: [ + { + resource: expectedResource, + schemaUrl: undefined, + scopeMetrics: [ + { + scope: expectedScope, + schemaUrl: expectedSchemaUrl, + metrics: [ + { + name: 'hist', + description: 'this is a description', + unit: '1', + histogram: { + aggregationTemporality: EAggregationTemporality.AGGREGATION_TEMPORALITY_CUMULATIVE, + dataPoints: [ + { + attributes: expectedAttributes, + bucketCounts: [1, 1], + count: 2, + explicitBounds: [5], + sum: 9, + min: undefined, + max: undefined, + startTimeUnixNano: hrTimeToNanoseconds(START_TIME), + timeUnixNano: hrTimeToNanoseconds(END_TIME), + }, + ], + }, }, - }, - ], - }, - ], - }, - ], + ], + }, + ], + }, + ], + }); }); }); }); diff --git a/integration-tests/propagation-validation-server/package.json b/integration-tests/propagation-validation-server/package.json index 7cea613fb3..2e05aab58e 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.3.0", + "version": "1.3.1", "description": "server for w3c tests", "main": "validation_server.js", "private": true, @@ -12,14 +12,17 @@ }, "dependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-async-hooks": "1.3.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/context-async-hooks": "1.3.1", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "axios": "0.24.0", "body-parser": "1.19.0", "express": "4.17.1" }, "devDependencies": { "typescript": "4.4.4" + }, + "engines": { + "node": ">=14" } } diff --git a/maintenance/bug_triage.md b/maintenance/bug_triage.md new file mode 100644 index 0000000000..2d704b78d5 --- /dev/null +++ b/maintenance/bug_triage.md @@ -0,0 +1,49 @@ +# OpenTelemetry Bug Triage + +This procedure describes the steps project maintainers and approvers should take to triage a bug report. + +Bugs should be created using the [Bug Report](https://github.com/open-telemetry/opentelemetry-js/issues/new?template=bug_report.yaml) issue template. +This template automatically applies the `bug` and `triage` labels. + +## Gather Required Information + +The first step is to ensure the bug report is unique and complete. +If the bug report is not unique, leave a comment with a link to the existing bug and close the issue. +If the bug report is not complete, leave a comment requesting additional details and apply the `information-requested` label. +When the user provides additional details, remove the `information-requested` label and repeat this step. + +## Categorize + +Once a bug report is complete, we can determine if it is truly a bug or not. +A bug is defined as code that does not work the way it was intended to work when written. +A change required by specification may not be a bug if the code is working as intended. +If a bug report is determined not to be a bug, remove the `bug` label and apply the appropriate labels as follows: + +- `documentation` feature is working as intended but documentation is incorrect or incomplete +- `feature-request` new feature request which is not required by the specification, but is allowable by specification rules +- `spec-feature` change required by the specification which adds a new feature or extends an existing feature with new functionality +- `spec-inconsistency` an existing feature incorrectly or incompletely implements the specification - may or may not also be a bug + +## Prioritize + +For bugs and specification required changes, apply a priority label as follows. +Each bug should have only a single priority label which is the highest priority that applies. +For example, a bug which satisfies the conditions for both `p2` and `p3` labels should only receive the `p2` label. + +- `p1` bugs which cause problems in end-user applications such as crashes, data inconsistencies, or memory leaks which grow unbounded +- `p2` bugs and specification inconsistencies which cause telemetry to be incorrectly or incompletely reported +- `p3` bugs which cause problems in end-user applications not related to correctness such as performance issues or high memory use +- `p4` bugs and specification inconsistencies which do not fall into any of the above categories + +## Schedule + +The final step is to determine a reasonable timeline for a bug to be fixed. +`p1` and `p2` issues should be fixed as quickly as possible. +These bugs should be either immediately assigned to the appropriate person, or added to the agenda for the next SIG meeting where they will be assigned. +`p3` and `p4` issues may be addressed less urgently than `p1` and `p2` issues. +If they are not urgent the `up-for-grabs`, `good-first-issue`, or other similar labels may be applied as appropriate. + +## Triage Complete + +The final step is to remove the `triage` label. +This indicates that all above steps have been taken and an issue is ready to be worked on. diff --git a/RELEASING.md b/maintenance/releasing.md similarity index 100% rename from RELEASING.md rename to maintenance/releasing.md diff --git a/packages/opentelemetry-context-async-hooks/package.json b/packages/opentelemetry-context-async-hooks/package.json index 4aca9b53f0..608ce8c7d2 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry AsyncHooks-based Context Manager", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -30,7 +30,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", diff --git a/packages/opentelemetry-context-zone-peer-dep/package.json b/packages/opentelemetry-context-zone-peer-dep/package.json index c00c07a71f..81bb392fd1 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Context Zone with peer dependency for zone.js", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -33,7 +33,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", diff --git a/packages/opentelemetry-context-zone/package.json b/packages/opentelemetry-context-zone/package.json index faa09c4499..b4924c6b79 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Context Zone", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -30,7 +30,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -74,7 +74,7 @@ "webpack-merge": "5.8.0" }, "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.3.0", + "@opentelemetry/context-zone-peer-dep": "1.3.1", "zone.js": "^0.11.0" }, "sideEffects": true diff --git a/packages/opentelemetry-core/package.json b/packages/opentelemetry-core/package.json index dd23d621d2..48edf01e7e 100644 --- a/packages/opentelemetry-core/package.json +++ b/packages/opentelemetry-core/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/core", - "version": "1.3.0", + "version": "1.3.1", "description": "OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -44,7 +44,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -91,6 +91,6 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json index e705e53460..470c3d7573 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -30,7 +30,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -45,7 +45,7 @@ }, "devDependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/resources": "1.3.0", + "@opentelemetry/resources": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/sinon": "10.0.6", @@ -62,9 +62,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1", "jaeger-client": "^3.15.0" } } diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json index 3307a31621..0a5e23d209 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Zipkin Exporter allows the user to send collected traces to Zipkin.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -40,7 +40,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -91,9 +91,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/packages/opentelemetry-propagator-b3/package.json b/packages/opentelemetry-propagator-b3/package.json index 1dc59da976..ecaa0929f4 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.3.0", + "version": "1.3.1", "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", @@ -32,7 +32,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -51,7 +51,7 @@ "access": "public" }, "dependencies": { - "@opentelemetry/core": "1.3.0" + "@opentelemetry/core": "1.3.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.2.0" diff --git a/packages/opentelemetry-propagator-jaeger/package.json b/packages/opentelemetry-propagator-jaeger/package.json index 2e7dbdcd11..ad84310d21 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.3.0", + "version": "1.3.1", "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", @@ -34,7 +34,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -80,6 +80,6 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0" + "@opentelemetry/core": "1.3.1" } } diff --git a/packages/opentelemetry-resources/karma.worker.js b/packages/opentelemetry-resources/karma.worker.js new file mode 100644 index 0000000000..d392e58ba6 --- /dev/null +++ b/packages/opentelemetry-resources/karma.worker.js @@ -0,0 +1,24 @@ +/*! + * 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 + * + * http://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. + */ + +const karmaWebpackConfig = require('../../karma.webpack'); +const karmaBaseConfig = require('../../karma.worker'); + +module.exports = (config) => { + config.set(Object.assign({}, karmaBaseConfig, { + webpack: karmaWebpackConfig + })) +}; diff --git a/packages/opentelemetry-resources/package.json b/packages/opentelemetry-resources/package.json index eca04be76d..19fc4d090b 100644 --- a/packages/opentelemetry-resources/package.json +++ b/packages/opentelemetry-resources/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/resources", - "version": "1.3.0", + "version": "1.3.1", "description": "OpenTelemetry SDK resources", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -18,10 +18,12 @@ "compile": "tsc --build tsconfig.all.json", "clean": "tsc --build --clean tsconfig.all.json", "codecov:browser": "nyc report --reporter=json && codecov -f coverage/*.json -p ../../", + "codecov:webworker": "nyc report --reporter=json && codecov -f coverage/*.json -p ../../", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'", "test:browser": "nyc karma start --single-run", + "test:webworker": "nyc karma start karma.worker.js --single-run", "tdd": "npm run test -- --watch-extensions ts --watch", "codecov": "nyc report --reporter=json && codecov -f coverage/*.json -p ../../", "version": "node ../../scripts/version-update.js", @@ -39,7 +41,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -87,7 +89,7 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/packages/opentelemetry-resources/src/detectors/BrowserDetector.ts b/packages/opentelemetry-resources/src/detectors/BrowserDetector.ts index a3568c2958..1f16e126e8 100644 --- a/packages/opentelemetry-resources/src/detectors/BrowserDetector.ts +++ b/packages/opentelemetry-resources/src/detectors/BrowserDetector.ts @@ -24,14 +24,14 @@ import { ResourceAttributes } from '../types'; */ class BrowserDetector implements Detector { async detect(config?: ResourceDetectionConfig): Promise { - const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined'; + const isBrowser = typeof navigator !== 'undefined'; if (!isBrowser) { return Resource.empty(); } const browserResource: ResourceAttributes = { [SemanticResourceAttributes.PROCESS_RUNTIME_NAME]: 'browser', [SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]: 'Web Browser', - [SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]: window.navigator.userAgent + [SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]: navigator.userAgent }; return this._getResourceAttributes(browserResource, config); } diff --git a/packages/opentelemetry-sdk-trace-base/test/browser/index-webpack.ts b/packages/opentelemetry-resources/src/detectors/NoopDetector.ts similarity index 64% rename from packages/opentelemetry-sdk-trace-base/test/browser/index-webpack.ts rename to packages/opentelemetry-resources/src/detectors/NoopDetector.ts index 99100a0f6e..61cf954bf7 100644 --- a/packages/opentelemetry-sdk-trace-base/test/browser/index-webpack.ts +++ b/packages/opentelemetry-resources/src/detectors/NoopDetector.ts @@ -13,11 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const testsContext = require.context('../browser', true, /test$/); -testsContext.keys().forEach(testsContext); -const testsContextCommon = require.context('../common', true, /test$/); -testsContextCommon.keys().forEach(testsContextCommon); +import { Resource } from '../Resource'; +import { Detector } from '../types'; -const srcContext = require.context('.', true, /src$/); -srcContext.keys().forEach(srcContext); +export class NoopDetector implements Detector { + async detect(): Promise { + return new Resource({}); + } +} + +export const noopDetector = new NoopDetector(); diff --git a/packages/opentelemetry-resources/src/detectors/index.ts b/packages/opentelemetry-resources/src/detectors/index.ts index db9296d266..2a16563da5 100644 --- a/packages/opentelemetry-resources/src/detectors/index.ts +++ b/packages/opentelemetry-resources/src/detectors/index.ts @@ -16,6 +16,4 @@ export * from './BrowserDetector'; export * from './EnvDetector'; -export * from './OSDetector'; -export * from './HostDetector'; export * from './ProcessDetector'; diff --git a/packages/opentelemetry-resources/src/platform/browser/HostDetector.ts b/packages/opentelemetry-resources/src/platform/browser/HostDetector.ts new file mode 100644 index 0000000000..e8e4c942c6 --- /dev/null +++ b/packages/opentelemetry-resources/src/platform/browser/HostDetector.ts @@ -0,0 +1,19 @@ +/* + * 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 { noopDetector } from '../../detectors/NoopDetector'; + +export const hostDetector = noopDetector; diff --git a/packages/opentelemetry-resources/src/platform/browser/OSDetector.ts b/packages/opentelemetry-resources/src/platform/browser/OSDetector.ts new file mode 100644 index 0000000000..27935fe135 --- /dev/null +++ b/packages/opentelemetry-resources/src/platform/browser/OSDetector.ts @@ -0,0 +1,19 @@ +/* + * 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 { noopDetector } from '../../detectors/NoopDetector'; + +export const osDetector = noopDetector; diff --git a/packages/opentelemetry-resources/src/platform/browser/index.ts b/packages/opentelemetry-resources/src/platform/browser/index.ts index 742d36add7..6f3af40a45 100644 --- a/packages/opentelemetry-resources/src/platform/browser/index.ts +++ b/packages/opentelemetry-resources/src/platform/browser/index.ts @@ -16,3 +16,5 @@ export * from './default-service-name'; export * from './detect-resources'; +export * from './HostDetector'; +export * from './OSDetector'; diff --git a/packages/opentelemetry-resources/src/detectors/HostDetector.ts b/packages/opentelemetry-resources/src/platform/node/HostDetector.ts similarity index 91% rename from packages/opentelemetry-resources/src/detectors/HostDetector.ts rename to packages/opentelemetry-resources/src/platform/node/HostDetector.ts index a14c80c5e1..c27766bb92 100644 --- a/packages/opentelemetry-resources/src/detectors/HostDetector.ts +++ b/packages/opentelemetry-resources/src/platform/node/HostDetector.ts @@ -15,9 +15,9 @@ */ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; -import { Resource } from '../Resource'; -import { Detector, ResourceAttributes } from '../types'; -import { ResourceDetectionConfig } from '../config'; +import { Resource } from '../../Resource'; +import { Detector, ResourceAttributes } from '../../types'; +import { ResourceDetectionConfig } from '../../config'; import { arch, hostname } from 'os'; /** diff --git a/packages/opentelemetry-resources/src/detectors/OSDetector.ts b/packages/opentelemetry-resources/src/platform/node/OSDetector.ts similarity index 91% rename from packages/opentelemetry-resources/src/detectors/OSDetector.ts rename to packages/opentelemetry-resources/src/platform/node/OSDetector.ts index 979b48fda0..befa9fb1f6 100644 --- a/packages/opentelemetry-resources/src/detectors/OSDetector.ts +++ b/packages/opentelemetry-resources/src/platform/node/OSDetector.ts @@ -15,9 +15,9 @@ */ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; -import { Resource } from '../Resource'; -import { Detector, ResourceAttributes } from '../types'; -import { ResourceDetectionConfig } from '../config'; +import { Resource } from '../../Resource'; +import { Detector, ResourceAttributes } from '../../types'; +import { ResourceDetectionConfig } from '../../config'; import { platform, release } from 'os'; /** diff --git a/packages/opentelemetry-resources/src/platform/node/index.ts b/packages/opentelemetry-resources/src/platform/node/index.ts index 742d36add7..6f3af40a45 100644 --- a/packages/opentelemetry-resources/src/platform/node/index.ts +++ b/packages/opentelemetry-resources/src/platform/node/index.ts @@ -16,3 +16,5 @@ export * from './default-service-name'; export * from './detect-resources'; +export * from './HostDetector'; +export * from './OSDetector'; diff --git a/packages/opentelemetry-resources/test/detectors/browser/BrowserDetector.test.ts b/packages/opentelemetry-resources/test/detectors/browser/BrowserDetector.test.ts index 7543d29438..ee6a92ccce 100644 --- a/packages/opentelemetry-resources/test/detectors/browser/BrowserDetector.test.ts +++ b/packages/opentelemetry-resources/test/detectors/browser/BrowserDetector.test.ts @@ -22,15 +22,13 @@ import { assertEmptyResource, } from '../../util/resource-assertions'; - describeBrowser('browserDetector()', () => { - afterEach(() => { sinon.restore(); }); it('should return browser information', async () => { - sinon.stub(window, 'navigator').value({ + sinon.stub(globalThis, 'navigator').value({ userAgent: 'dddd', }); @@ -42,11 +40,10 @@ describeBrowser('browserDetector()', () => { }); }); it('should return empty resources if version is missing', async () => { - sinon.stub(window, 'navigator').value({ + sinon.stub(globalThis, 'navigator').value({ userAgent: '', }); const resource: Resource = await browserDetector.detect(); assertEmptyResource(resource); }); }); - diff --git a/packages/opentelemetry-resources/test/detectors/browser/HostDetector.test.ts b/packages/opentelemetry-resources/test/detectors/browser/HostDetector.test.ts new file mode 100644 index 0000000000..8bebadb7c4 --- /dev/null +++ b/packages/opentelemetry-resources/test/detectors/browser/HostDetector.test.ts @@ -0,0 +1,32 @@ +/* + * 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 sinon from 'sinon'; +import { hostDetector, Resource } from '../../../src'; +import { + assertEmptyResource, +} from '../../util/resource-assertions'; +import { describeBrowser } from '../../util'; + +describeBrowser('hostDetector() on web browser', () => { + afterEach(() => { + sinon.restore(); + }); + + it('should return empty resource', async () => { + const resource: Resource = await hostDetector.detect(); + assertEmptyResource(resource); + }); +}); diff --git a/packages/opentelemetry-resources/test/detectors/browser/OSDetector.test.ts b/packages/opentelemetry-resources/test/detectors/browser/OSDetector.test.ts new file mode 100644 index 0000000000..72f0dc6fa6 --- /dev/null +++ b/packages/opentelemetry-resources/test/detectors/browser/OSDetector.test.ts @@ -0,0 +1,32 @@ +/* + * 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 sinon from 'sinon'; +import { osDetector, Resource } from '../../../src'; +import { + assertEmptyResource, +} from '../../util/resource-assertions'; +import { describeBrowser } from '../../util'; + +describeBrowser('osDetector() on web browser', () => { + afterEach(() => { + sinon.restore(); + }); + + it('should return empty resource', async () => { + const resource: Resource = await osDetector.detect(); + assertEmptyResource(resource); + }); +}); diff --git a/packages/opentelemetry-resources/test/index-webpack.worker.ts b/packages/opentelemetry-resources/test/index-webpack.worker.ts new file mode 100644 index 0000000000..dd9b144e0d --- /dev/null +++ b/packages/opentelemetry-resources/test/index-webpack.worker.ts @@ -0,0 +1,25 @@ +/* + * 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. + */ + +{ + const testsContext = require.context('./', false, /test$/); + testsContext.keys().forEach(testsContext); +} + +{ + const testsContext = require.context('./detectors/browser', false, /test$/); + testsContext.keys().forEach(testsContext); +} diff --git a/packages/opentelemetry-sdk-trace-base/karma.conf.js b/packages/opentelemetry-sdk-trace-base/karma.conf.js index 455b1437c8..bf2a41b799 100644 --- a/packages/opentelemetry-sdk-trace-base/karma.conf.js +++ b/packages/opentelemetry-sdk-trace-base/karma.conf.js @@ -20,7 +20,5 @@ const karmaBaseConfig = require('../../karma.base'); module.exports = (config) => { config.set(Object.assign({}, karmaBaseConfig, { webpack: karmaWebpackConfig, - files: ['test/browser/index-webpack.ts'], - preprocessors: { 'test/browser/index-webpack.ts': ['webpack'] } })) }; diff --git a/packages/opentelemetry-sdk-trace-base/karma.worker.js b/packages/opentelemetry-sdk-trace-base/karma.worker.js new file mode 100644 index 0000000000..a8d8e50e81 --- /dev/null +++ b/packages/opentelemetry-sdk-trace-base/karma.worker.js @@ -0,0 +1,24 @@ +/*! + * 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 + * + * http://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. + */ + +const karmaWebpackConfig = require('../../karma.webpack'); +const karmaBaseConfig = require('../../karma.worker'); + +module.exports = (config) => { + config.set(Object.assign({}, karmaBaseConfig, { + webpack: karmaWebpackConfig, + })) +}; diff --git a/packages/opentelemetry-sdk-trace-base/package.json b/packages/opentelemetry-sdk-trace-base/package.json index 4929b3ed7f..8f6487c5a7 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Tracing", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -19,12 +19,14 @@ "clean": "tsc --build --clean tsconfig.all.json", "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'", "test:browser": "nyc karma start --single-run", + "test:webworker": "nyc karma start karma.worker.js --single-run", "tdd": "npm run tdd:node", "tdd:node": "npm run test -- --watch-extensions ts --watch", "tdd:browser": "karma start", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "codecov": "nyc report --reporter=json && codecov -f coverage/*.json -p ../../", + "codecov:webworker": "nyc report --reporter=json && codecov -f coverage/*.json -p ../../", "version": "node ../../scripts/version-update.js", "watch": "tsc --build --watch tsconfig.all.json", "precompile": "lerna run version --scope $(npm pkg get name) --include-dependencies", @@ -42,7 +44,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -73,6 +75,7 @@ "karma-chrome-launcher": "3.1.0", "karma-coverage-istanbul-reporter": "3.0.3", "karma-mocha": "2.0.1", + "karma-mocha-webworker": "1.3.0", "karma-spec-reporter": "0.0.32", "karma-webpack": "4.0.2", "mocha": "7.2.0", @@ -88,8 +91,8 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/packages/opentelemetry-sdk-trace-base/src/platform/browser/export/BatchSpanProcessor.ts b/packages/opentelemetry-sdk-trace-base/src/platform/browser/export/BatchSpanProcessor.ts index d5a87cc10d..12b6eb24a4 100644 --- a/packages/opentelemetry-sdk-trace-base/src/platform/browser/export/BatchSpanProcessor.ts +++ b/packages/opentelemetry-sdk-trace-base/src/platform/browser/export/BatchSpanProcessor.ts @@ -28,7 +28,7 @@ export class BatchSpanProcessor extends BatchSpanProcessorBase { if (document.visibilityState === 'hidden') { void this.forceFlush(); @@ -45,11 +45,13 @@ export class BatchSpanProcessor extends BatchSpanProcessorBase { +const describeDocument = typeof document === 'object' ? describe : describe.skip; + +describeDocument('BatchSpanProcessor - web main context', () => { let visibilityState: VisibilityState = 'visible'; let exporter: SpanExporter; let processor: BatchSpanProcessor; @@ -100,3 +102,14 @@ describe('BatchSpanProcessor - web', () => { }); }); }); + +describe('BatchSpanProcessor', () => { + it('without exception', async () => { + const exporter = new TestTracingSpanExporter(); + const spanProcessor = new BatchSpanProcessor(exporter); + assert.ok(spanProcessor instanceof BatchSpanProcessor); + + await spanProcessor.forceFlush(); + await spanProcessor.shutdown(); + }); +}); diff --git a/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts index 1b5e6872e3..e2b17bb561 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/BasicTracerProvider.test.ts @@ -47,9 +47,13 @@ import { describe('BasicTracerProvider', () => { let removeEvent: (() => void) | undefined; - const envSource = (typeof window !== 'undefined' - ? window - : process.env) as any; + + let envSource: Record; + if (typeof process === 'undefined') { + envSource = (globalThis as unknown) as Record; + } else { + envSource = process.env as Record; + } beforeEach(() => { context.disable(); diff --git a/packages/opentelemetry-sdk-trace-base/test/common/Tracer.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/Tracer.test.ts index 71453bb260..31652f8b6e 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/Tracer.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/Tracer.test.ts @@ -44,9 +44,12 @@ import { invalidAttributes, validAttributes } from './util'; describe('Tracer', () => { const tracerProvider = new BasicTracerProvider(); - const envSource = (typeof window !== 'undefined' - ? window - : process.env) as any; + let envSource: Record; + if (typeof process === 'undefined') { + envSource = (globalThis as unknown) as Record; + } else { + envSource = process.env as Record; + } class TestSampler implements Sampler { shouldSample(_context: Context, _traceId: string, _spanName: string, _spanKind: SpanKind, attributes: SpanAttributes, links: Link[]) { diff --git a/packages/opentelemetry-sdk-trace-base/test/common/config.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/config.test.ts index ea27f21e9d..f627cc18a7 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/config.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/config.test.ts @@ -23,9 +23,12 @@ import * as assert from 'assert'; import { buildSamplerFromEnv } from '../../src/config'; describe('config', () => { - const envSource = (typeof window !== 'undefined' - ? window - : process.env) as any; + let envSource: Record; + if (typeof process === 'undefined') { + envSource = (globalThis as unknown) as Record; + } else { + envSource = process.env as Record; + } describe('buildSamplerFromEnv()', () => { afterEach(() => { diff --git a/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts index 817b5bc376..52cd832a3e 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/export/BatchSpanProcessorBase.test.ts @@ -97,7 +97,7 @@ describe('BatchSpanProcessorBase', () => { let env: Record; if (typeof process === 'undefined') { - env = (window as unknown) as Record; + env = (globalThis as unknown) as Record; } else { env = process.env as Record; } diff --git a/packages/opentelemetry-sdk-trace-base/test/index-webpack.ts b/packages/opentelemetry-sdk-trace-base/test/index-webpack.ts new file mode 100644 index 0000000000..802d6c4053 --- /dev/null +++ b/packages/opentelemetry-sdk-trace-base/test/index-webpack.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +{ + const testsContext = require.context('./', true, /test$/); + testsContext.keys().forEach(testsContext); +} diff --git a/packages/opentelemetry-sdk-trace-base/test/index-webpack.worker.ts b/packages/opentelemetry-sdk-trace-base/test/index-webpack.worker.ts new file mode 100644 index 0000000000..802d6c4053 --- /dev/null +++ b/packages/opentelemetry-sdk-trace-base/test/index-webpack.worker.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +{ + const testsContext = require.context('./', true, /test$/); + testsContext.keys().forEach(testsContext); +} diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json index 4f89adf074..267c1ca69f 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.3.0", + "version": "1.3.1", "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", @@ -31,7 +31,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -46,8 +46,8 @@ }, "devDependencies": { "@opentelemetry/api": ">=1.0.0 <1.2.0", - "@opentelemetry/resources": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0", + "@opentelemetry/resources": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "@types/semver": "7.3.9", @@ -64,11 +64,11 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/context-async-hooks": "1.3.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/propagator-b3": "1.3.0", - "@opentelemetry/propagator-jaeger": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/context-async-hooks": "1.3.1", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/propagator-b3": "1.3.1", + "@opentelemetry/propagator-jaeger": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "semver": "^7.3.5" } } diff --git a/packages/opentelemetry-sdk-trace-web/package.json b/packages/opentelemetry-sdk-trace-web/package.json index 8392cb5bb3..67880f4ec4 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry Web Tracer", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -35,7 +35,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", @@ -57,9 +57,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": ">=1.0.0 <1.2.0", - "@opentelemetry/context-zone": "1.3.0", - "@opentelemetry/propagator-b3": "1.3.0", - "@opentelemetry/resources": "1.3.0", + "@opentelemetry/context-zone": "1.3.1", + "@opentelemetry/propagator-b3": "1.3.1", + "@opentelemetry/resources": "1.3.1", "@types/jquery": "3.5.8", "@types/mocha": "8.2.3", "@types/node": "14.17.33", @@ -91,8 +91,8 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0" + "@opentelemetry/core": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1" } } diff --git a/packages/opentelemetry-semantic-conventions/package.json b/packages/opentelemetry-semantic-conventions/package.json index 17e1ca7b61..55ce00b81f 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.3.0", + "version": "1.3.1", "description": "OpenTelemetry semantic conventions", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -29,7 +29,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/esm/**/*.js", diff --git a/packages/opentelemetry-shim-opentracing/package.json b/packages/opentelemetry-shim-opentracing/package.json index 8fef5a6380..ee537cbd6e 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.3.0", + "version": "1.3.1", "description": "OpenTracing to OpenTelemetry shim", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -28,7 +28,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "files": [ "build/src/**/*.js", @@ -43,9 +43,9 @@ }, "devDependencies": { "@opentelemetry/api": ">=1.0.0 <1.2.0", - "@opentelemetry/propagator-b3": "1.3.0", - "@opentelemetry/propagator-jaeger": "1.3.0", - "@opentelemetry/sdk-trace-base": "1.3.0", + "@opentelemetry/propagator-b3": "1.3.1", + "@opentelemetry/propagator-jaeger": "1.3.1", + "@opentelemetry/sdk-trace-base": "1.3.1", "@types/mocha": "8.2.3", "@types/node": "14.17.33", "codecov": "3.8.3", @@ -59,8 +59,8 @@ "@opentelemetry/api": ">=1.0.0 <1.2.0" }, "dependencies": { - "@opentelemetry/core": "1.3.0", - "@opentelemetry/semantic-conventions": "1.3.0", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/semantic-conventions": "1.3.1", "opentracing": "^0.14.4" } } diff --git a/packages/template/package.json b/packages/template/package.json index c7e2513652..f20b409c60 100644 --- a/packages/template/package.json +++ b/packages/template/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/template", - "version": "1.3.0", + "version": "1.3.1", "private": true, "publishConfig": { "access": "restricted" @@ -23,7 +23,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "engines": { - "node": ">=8.12.0" + "node": ">=14" }, "scripts": { "prepublishOnly": "npm run compile", diff --git a/selenium-tests/package.json b/selenium-tests/package.json index 25b02ad946..715d3ae38c 100644 --- a/selenium-tests/package.json +++ b/selenium-tests/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/selenium-tests", - "version": "1.3.0", + "version": "1.3.1", "private": true, "description": "OpenTelemetry Selenium Tests", "main": "index.js", @@ -25,7 +25,7 @@ "author": "OpenTelemetry Authors", "license": "Apache-2.0", "engines": { - "node": ">=10.0.0" + "node": ">=14" }, "publishConfig": { "access": "restricted" @@ -56,16 +56,16 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.3.0", - "@opentelemetry/core": "1.3.0", - "@opentelemetry/exporter-trace-otlp-http": "0.29.0", - "@opentelemetry/exporter-zipkin": "1.3.0", - "@opentelemetry/instrumentation": "0.29.0", - "@opentelemetry/instrumentation-fetch": "0.29.0", - "@opentelemetry/instrumentation-xml-http-request": "0.29.0", - "@opentelemetry/sdk-metrics-base": "0.29.0", - "@opentelemetry/sdk-trace-base": "1.3.0", - "@opentelemetry/sdk-trace-web": "1.3.0", + "@opentelemetry/context-zone-peer-dep": "1.3.1", + "@opentelemetry/core": "1.3.1", + "@opentelemetry/exporter-trace-otlp-http": "0.29.2", + "@opentelemetry/exporter-zipkin": "1.3.1", + "@opentelemetry/instrumentation": "0.29.2", + "@opentelemetry/instrumentation-fetch": "0.29.2", + "@opentelemetry/instrumentation-xml-http-request": "0.29.2", + "@opentelemetry/sdk-metrics-base": "0.29.2", + "@opentelemetry/sdk-trace-base": "1.3.1", + "@opentelemetry/sdk-trace-web": "1.3.1", "zone.js": "0.11.4" } } diff --git a/tsconfig.json b/tsconfig.json index 7b24699251..d5872dfc60 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -146,13 +146,10 @@ "path": "experimental/packages/otlp-transformer" }, { - "path": "experimental/backwards-compatability/node10" + "path": "experimental/backwards-compatability/node14" }, { - "path": "experimental/backwards-compatability/node12" - }, - { - "path": "experimental/backwards-compatability/node8" + "path": "experimental/backwards-compatability/node16" }, { "path": "integration-tests/propagation-validation-server"