From 652d1675313b806dfa31b6dc37c2db04bf5c3fa0 Mon Sep 17 00:00:00 2001 From: yehonatanz Date: Wed, 18 Jan 2023 16:17:15 +0200 Subject: [PATCH 01/14] fix(typo): Fix typo in Resource.default docstring (#3547) --- packages/opentelemetry-resources/src/Resource.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opentelemetry-resources/src/Resource.ts b/packages/opentelemetry-resources/src/Resource.ts index ac368d812e..0dc2072a2f 100644 --- a/packages/opentelemetry-resources/src/Resource.ts +++ b/packages/opentelemetry-resources/src/Resource.ts @@ -34,7 +34,7 @@ export class Resource { } /** - * Returns a Resource that indentifies the SDK in use. + * Returns a Resource that identifies the SDK in use. */ static default(): Resource { return new Resource({ From 9589d541cef7c8d0227d66c0c4fc2ee32ac93dbe Mon Sep 17 00:00:00 2001 From: Purvi Kanal Date: Fri, 20 Jan 2023 01:12:20 -0500 Subject: [PATCH 02/14] feat: browser support for exporter-trace-otlp-proto (#3208) * add node & browser platform for exporter-trace-otlp-proto * add browser support for proto base exporter * add base browser class with xhr support * add browser class for proto trace exporter * slight tweaks to make it work * send data as blob to avoid making sync xhr requests * fix lint * remove console.logs and add browser proto example * cleanup and start adding tests * Undo formatting changes * exporter-trace-otlp-proto: fix compile errors * Misc updates from review comments * Adding changelog entry * Reverting format changes not needed * Moving the send function into the class for browser case. * Adjust indentation to fix lint errors * Remove template parameter that's not needed * Apply review changes * fix the import path * Addressing lint errors * Explicit imports for browser case * More explicit exports * Add missing exports * Address lint issues with export statements * Adding missing exports * Adding missing export * Using import from top level folder * Trigger Build * Update experimental/packages/exporter-trace-otlp-proto/test/browser/CollectorTraceExporter.test.ts Co-authored-by: Marc Pichler * Remove trailing comma * Remove blank line to fix lint error * Fixes based on testing opentelemetry-web/fetch-proto * Add additional missing export * Skip hex conversion of traceId for the protobuf * Add esm/esnext builds for the proto packages that will now be used for the browser case as well. * Trigger Build Co-authored-by: Santosh Cheler Co-authored-by: Santosh Cheler Co-authored-by: Marc Pichler Co-authored-by: Marc Pichler --- CHANGELOG.md | 1 + .../examples/fetch-proto/index.html | 20 +++++ .../examples/fetch-proto/index.js | 80 +++++++++++++++++ examples/opentelemetry-web/package.json | 1 + .../opentelemetry-web/webpack.dev.config.js | 3 +- .../opentelemetry-web/webpack.prod.config.js | 1 + .../exporter-trace-otlp-proto/karma.conf.js | 26 ++++++ .../exporter-trace-otlp-proto/package.json | 23 ++++- .../exporter-trace-otlp-proto/src/index.ts | 3 +- .../src/platform/browser/OTLPTraceExporter.ts | 72 +++++++++++++++ .../src/platform/browser/index.ts | 16 ++++ .../src/platform/index.ts | 16 ++++ .../{ => platform/node}/OTLPTraceExporter.ts | 0 .../src/platform/node/index.ts | 17 ++++ .../browser/CollectorTraceExporter.test.ts | 50 +++++++++++ .../test/browser/index-webpack.ts | 20 +++++ .../test/{ => node}/OTLPTraceExporter.test.ts | 4 +- .../tsconfig.esm.json | 19 ++++ .../tsconfig.esnext.json | 19 ++++ .../packages/otlp-exporter-base/src/index.ts | 16 +++- .../src/platform/browser/index.ts | 3 +- .../src/platform/browser/util.ts | 2 +- .../otlp-exporter-base/src/platform/index.ts | 12 ++- .../src/platform/node/index.ts | 6 +- .../otlp-proto-exporter-base/package.json | 20 ++++- .../otlp-proto-exporter-base/src/index.ts | 5 +- .../browser/OTLPProtoExporterBrowserBase.ts | 90 +++++++++++++++++++ .../src/platform/browser/index.ts | 17 ++++ .../src/platform/index.ts | 24 +++++ .../node}/OTLPProtoExporterNodeBase.ts | 2 +- .../src/platform/node/index.ts | 18 ++++ .../src/{ => platform/node}/util.ts | 4 +- .../src/{ => platform}/types.ts | 0 .../tsconfig.esm.json | 21 +++++ .../tsconfig.esnext.json | 21 +++++ 35 files changed, 623 insertions(+), 29 deletions(-) create mode 100644 examples/opentelemetry-web/examples/fetch-proto/index.html create mode 100644 examples/opentelemetry-web/examples/fetch-proto/index.js create mode 100644 experimental/packages/exporter-trace-otlp-proto/karma.conf.js create mode 100644 experimental/packages/exporter-trace-otlp-proto/src/platform/browser/OTLPTraceExporter.ts create mode 100644 experimental/packages/exporter-trace-otlp-proto/src/platform/browser/index.ts create mode 100644 experimental/packages/exporter-trace-otlp-proto/src/platform/index.ts rename experimental/packages/exporter-trace-otlp-proto/src/{ => platform/node}/OTLPTraceExporter.ts (100%) create mode 100644 experimental/packages/exporter-trace-otlp-proto/src/platform/node/index.ts create mode 100644 experimental/packages/exporter-trace-otlp-proto/test/browser/CollectorTraceExporter.test.ts create mode 100644 experimental/packages/exporter-trace-otlp-proto/test/browser/index-webpack.ts rename experimental/packages/exporter-trace-otlp-proto/test/{ => node}/OTLPTraceExporter.test.ts (99%) create mode 100644 experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json create mode 100644 experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json create mode 100644 experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts create mode 100644 experimental/packages/otlp-proto-exporter-base/src/platform/browser/index.ts create mode 100644 experimental/packages/otlp-proto-exporter-base/src/platform/index.ts rename experimental/packages/otlp-proto-exporter-base/src/{ => platform/node}/OTLPProtoExporterNodeBase.ts (98%) create mode 100644 experimental/packages/otlp-proto-exporter-base/src/platform/node/index.ts rename experimental/packages/otlp-proto-exporter-base/src/{ => platform/node}/util.ts (96%) rename experimental/packages/otlp-proto-exporter-base/src/{ => platform}/types.ts (100%) create mode 100644 experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json create mode 100644 experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json diff --git a/CHANGELOG.md b/CHANGELOG.md index d6385594f3..daa351e51d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :rocket: (Enhancement) * feat(instrumentation-grpc): set net.peer.name and net.peer.port on client spans [#3430](https://github.com/open-telemetry/opentelemetry-js/pull/3430) +* feat(exporter-trace-otlp-proto): Add protobuf otlp trace exporter support for browser [#3208](https://github.com/open-telemetry/opentelemetry-js/pull/3208) @pkanal ### :bug: (Bug Fix) diff --git a/examples/opentelemetry-web/examples/fetch-proto/index.html b/examples/opentelemetry-web/examples/fetch-proto/index.html new file mode 100644 index 0000000000..160a6bd38b --- /dev/null +++ b/examples/opentelemetry-web/examples/fetch-proto/index.html @@ -0,0 +1,20 @@ + + + + + + Fetch Plugin Example + + + + + + + Example of using Web Tracer with Fetch plugin with console exporter and proto exporter + +
+ + + + + diff --git a/examples/opentelemetry-web/examples/fetch-proto/index.js b/examples/opentelemetry-web/examples/fetch-proto/index.js new file mode 100644 index 0000000000..9a9e85184c --- /dev/null +++ b/examples/opentelemetry-web/examples/fetch-proto/index.js @@ -0,0 +1,80 @@ +const { context, trace } = require("@opentelemetry/api"); +const { ConsoleSpanExporter, SimpleSpanProcessor} = require("@opentelemetry/sdk-trace-base"); +const { WebTracerProvider } = require("@opentelemetry/sdk-trace-web"); +const { FetchInstrumentation } = require("@opentelemetry/instrumentation-fetch"); +const { ZoneContextManager } = require("@opentelemetry/context-zone"); +const { B3Propagator } = require("@opentelemetry/propagator-b3"); +const { registerInstrumentations } = require("@opentelemetry/instrumentation"); +const { OTLPTraceExporter: OTLPTraceExporterProto } = require("@opentelemetry/exporter-trace-otlp-proto"); + +const provider = new WebTracerProvider(); + +// Note: For production consider using the "BatchSpanProcessor" to reduce the number of requests +// to your exporter. Using the SimpleSpanProcessor here as it sends the spans immediately to the +// exporter without delay +provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter())); +provider.addSpanProcessor( + new SimpleSpanProcessor(new OTLPTraceExporterProto()) +); + +provider.register({ + contextManager: new ZoneContextManager(), + propagator: new B3Propagator(), +}); + +registerInstrumentations({ + instrumentations: [ + new FetchInstrumentation({ + ignoreUrls: [/localhost:8090\/sockjs-node/], + propagateTraceHeaderCorsUrls: [ + "https://cors-test.appspot.com/test", + "https://httpbin.org/get", + ], + clearTimingResources: true, + }), + ], +}); + +const webTracerWithZone = provider.getTracer("example-tracer-web"); + +const getData = (url) => + fetch(url, { + method: "GET", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + }); + +// example of keeping track of context between async operations +const prepareClickEvent = () => { + const url = "https://httpbin.org/get"; + + const element = document.getElementById("button1"); + + const onClick = () => { + const singleSpan = webTracerWithZone.startSpan("files-series-info"); + context.with(trace.setSpan(context.active(), singleSpan), () => { + getData(url).then((_data) => { + trace + .getSpan(context.active()) + .addEvent("fetching-single-span-completed"); + singleSpan.end(); + }); + }); + for (let i = 0, j = 5; i < j; i += 1) { + const span = webTracerWithZone.startSpan(`files-series-info-${i}`); + context.with(trace.setSpan(context.active(), span), () => { + getData(url).then((_data) => { + trace + .getSpan(context.active()) + .addEvent(`fetching-span-${i}-completed`); + span.end(); + }); + }); + } + }; + element.addEventListener("click", onClick); +}; + +window.addEventListener("load", prepareClickEvent); diff --git a/examples/opentelemetry-web/package.json b/examples/opentelemetry-web/package.json index 34afeb6bd4..42f011e15c 100644 --- a/examples/opentelemetry-web/package.json +++ b/examples/opentelemetry-web/package.json @@ -47,6 +47,7 @@ "@opentelemetry/core": "1.9.0", "@opentelemetry/exporter-metrics-otlp-http": "0.35.0", "@opentelemetry/exporter-trace-otlp-http": "0.35.0", + "@opentelemetry/exporter-trace-otlp-proto": "0.35.0", "@opentelemetry/exporter-zipkin": "1.9.0", "@opentelemetry/instrumentation": "0.35.0", "@opentelemetry/instrumentation-fetch": "0.35.0", diff --git a/examples/opentelemetry-web/webpack.dev.config.js b/examples/opentelemetry-web/webpack.dev.config.js index c3045d79c1..6d3be1090b 100644 --- a/examples/opentelemetry-web/webpack.dev.config.js +++ b/examples/opentelemetry-web/webpack.dev.config.js @@ -12,6 +12,7 @@ const common = { 'xml-http-request': 'examples/xml-http-request/index.js', fetchXhr: 'examples/fetchXhr/index.js', fetchXhrB3: 'examples/fetchXhrB3/index.js', + 'fetch-proto': 'examples/fetch-proto/index.js', zipkin: 'examples/zipkin/index.js', }, output: { @@ -41,7 +42,7 @@ const common = { resolve: { modules: [ path.resolve(directory), - 'node_modules', + 'node_modules' ], extensions: ['.ts', '.js', '.jsx', '.json'], }, diff --git a/examples/opentelemetry-web/webpack.prod.config.js b/examples/opentelemetry-web/webpack.prod.config.js index 2eb7d783c1..96f7d69af2 100644 --- a/examples/opentelemetry-web/webpack.prod.config.js +++ b/examples/opentelemetry-web/webpack.prod.config.js @@ -12,6 +12,7 @@ const common = { 'xml-http-request': 'examples/xml-http-request/index.js', fetchXhr: 'examples/fetchXhr/index.js', fetchXhrB3: 'examples/fetchXhrB3/index.js', + "fetch-proto": "examples/fetch-proto/index.js", zipkin: 'examples/zipkin/index.js', }, output: { diff --git a/experimental/packages/exporter-trace-otlp-proto/karma.conf.js b/experimental/packages/exporter-trace-otlp-proto/karma.conf.js new file mode 100644 index 0000000000..4c60b54edb --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/karma.conf.js @@ -0,0 +1,26 @@ +/*! + * 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.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/experimental/packages/exporter-trace-otlp-proto/package.json b/experimental/packages/exporter-trace-otlp-proto/package.json index 1a7d0ed244..1bea38c34f 100644 --- a/experimental/packages/exporter-trace-otlp-proto/package.json +++ b/experimental/packages/exporter-trace-otlp-proto/package.json @@ -3,18 +3,27 @@ "version": "0.35.0", "description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector using protobuf over HTTP", "main": "build/src/index.js", + "module": "build/esm/index.js", + "esnext": "build/esnext/index.js", "types": "build/src/index.d.ts", "repository": "open-telemetry/opentelemetry-js", + "browser": { + "./src/platform/index.ts": "./src/platform/browser/index.ts", + "./build/esm/platform/index.js": "./build/esm/platform/browser/index.js", + "./build/esnext/platform/index.js": "./build/esnext/platform/browser/index.js", + "./build/src/platform/index.js": "./build/src/platform/browser/index.js" + }, "scripts": { "prepublishOnly": "npm run compile", - "compile": "tsc --build", - "clean": "tsc --build --clean", + "compile": "tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json", + "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "tdd": "npm run test -- --watch-extensions ts --watch", - "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'", + "test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts' --exclude 'test/browser/**/*.ts'", + "test:browser": "nyc karma start --single-run", "version": "node ../../../scripts/version-update.js", - "watch": "tsc --build --watch", + "watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json", "precompile": "lerna run version --scope $(npm pkg get name) --include-dependencies", "prewatch": "npm run precompile", "peer-api-check": "node ../../../scripts/peer-api-check.js", @@ -35,6 +44,12 @@ "node": ">=14" }, "files": [ + "build/esm/**/*.js", + "build/esm/**/*.js.map", + "build/esm/**/*.d.ts", + "build/esnext/**/*.js", + "build/esnext/**/*.js.map", + "build/esnext/**/*.d.ts", "build/src/**/*.js", "build/src/**/*.js.map", "build/src/**/*.d.ts", diff --git a/experimental/packages/exporter-trace-otlp-proto/src/index.ts b/experimental/packages/exporter-trace-otlp-proto/src/index.ts index 761e8a9262..f0dc6b55e3 100644 --- a/experimental/packages/exporter-trace-otlp-proto/src/index.ts +++ b/experimental/packages/exporter-trace-otlp-proto/src/index.ts @@ -13,5 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -export * from './OTLPTraceExporter'; +export { OTLPTraceExporter } from './platform'; diff --git a/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/OTLPTraceExporter.ts b/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/OTLPTraceExporter.ts new file mode 100644 index 0000000000..890268333f --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/OTLPTraceExporter.ts @@ -0,0 +1,72 @@ +/* + * 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 { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-base'; +import { getEnv, baggageUtils } from '@opentelemetry/core'; +import { + OTLPExporterConfigBase, + appendResourcePathToUrl, + appendRootPathToUrlIfNeeded, +} from '@opentelemetry/otlp-exporter-base'; +import { + OTLPProtoExporterBrowserBase, + ServiceClientType, +} from '@opentelemetry/otlp-proto-exporter-base'; +import { + createExportTraceServiceRequest, + IExportTraceServiceRequest, +} from '@opentelemetry/otlp-transformer'; + +const DEFAULT_COLLECTOR_RESOURCE_PATH = 'v1/traces'; +const DEFAULT_COLLECTOR_URL = `http://localhost:4318/${DEFAULT_COLLECTOR_RESOURCE_PATH}`; + +/** + * Collector Trace Exporter for Web + */ +export class OTLPTraceExporter + extends OTLPProtoExporterBrowserBase + implements SpanExporter +{ + constructor(config: OTLPExporterConfigBase = {}) { + super(config); + this._headers = Object.assign( + this._headers, + baggageUtils.parseKeyPairsIntoRecord( + getEnv().OTEL_EXPORTER_OTLP_TRACES_HEADERS + ) + ); + } + convert(spans: ReadableSpan[]): IExportTraceServiceRequest { + return createExportTraceServiceRequest(spans); + } + + getDefaultUrl(config: OTLPExporterConfigBase): string { + return typeof config.url === 'string' + ? config.url + : getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT.length > 0 + ? appendRootPathToUrlIfNeeded(getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) + : getEnv().OTEL_EXPORTER_OTLP_ENDPOINT.length > 0 + ? appendResourcePathToUrl( + getEnv().OTEL_EXPORTER_OTLP_ENDPOINT, + DEFAULT_COLLECTOR_RESOURCE_PATH + ) + : DEFAULT_COLLECTOR_URL; + } + + getServiceClientType() { + return ServiceClientType.SPANS; + } +} diff --git a/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/index.ts b/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/index.ts new file mode 100644 index 0000000000..74d90ff34c --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/src/platform/browser/index.ts @@ -0,0 +1,16 @@ +/* + * 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. + */ +export { OTLPTraceExporter } from './OTLPTraceExporter'; diff --git a/experimental/packages/exporter-trace-otlp-proto/src/platform/index.ts b/experimental/packages/exporter-trace-otlp-proto/src/platform/index.ts new file mode 100644 index 0000000000..f6ecd3a34f --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/src/platform/index.ts @@ -0,0 +1,16 @@ +/* + * 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. + */ +export { OTLPTraceExporter } from './node'; diff --git a/experimental/packages/exporter-trace-otlp-proto/src/OTLPTraceExporter.ts b/experimental/packages/exporter-trace-otlp-proto/src/platform/node/OTLPTraceExporter.ts similarity index 100% rename from experimental/packages/exporter-trace-otlp-proto/src/OTLPTraceExporter.ts rename to experimental/packages/exporter-trace-otlp-proto/src/platform/node/OTLPTraceExporter.ts diff --git a/experimental/packages/exporter-trace-otlp-proto/src/platform/node/index.ts b/experimental/packages/exporter-trace-otlp-proto/src/platform/node/index.ts new file mode 100644 index 0000000000..254ac931a5 --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/src/platform/node/index.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ + +export { OTLPTraceExporter } from './OTLPTraceExporter'; diff --git a/experimental/packages/exporter-trace-otlp-proto/test/browser/CollectorTraceExporter.test.ts b/experimental/packages/exporter-trace-otlp-proto/test/browser/CollectorTraceExporter.test.ts new file mode 100644 index 0000000000..e8187e7296 --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/test/browser/CollectorTraceExporter.test.ts @@ -0,0 +1,50 @@ +/* + * 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 assert from 'assert'; +import * as sinon from 'sinon'; +import { OTLPTraceExporter } from '../../src/platform/browser/index'; + +describe('OTLPTraceExporter - web', () => { + let collectorTraceExporter: OTLPTraceExporter; + describe('constructor', () => { + let onInitSpy: any; + beforeEach(() => { + onInitSpy = sinon.stub(OTLPTraceExporter.prototype, 'onInit'); + const collectorExporterConfig = { + hostname: 'foo', + url: 'http://foo.bar.com', + }; + collectorTraceExporter = new OTLPTraceExporter(collectorExporterConfig); + }); + afterEach(() => { + sinon.restore(); + }); + it('should create an instance', () => { + assert.ok(typeof collectorTraceExporter !== 'undefined'); + }); + it('should call onInit', () => { + assert.strictEqual(onInitSpy.callCount, 1); + }); + it('should set hostname', () => { + assert.strictEqual(collectorTraceExporter.hostname, 'foo'); + }); + + it('should set url', () => { + assert.strictEqual(collectorTraceExporter.url, 'http://foo.bar.com'); + }); + }); +}); diff --git a/experimental/packages/exporter-trace-otlp-proto/test/browser/index-webpack.ts b/experimental/packages/exporter-trace-otlp-proto/test/browser/index-webpack.ts new file mode 100644 index 0000000000..ae7d4b5a9d --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/test/browser/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('../browser', true, /test$/); +testsContext.keys().forEach(testsContext); + +const srcContext = require.context('.', true, /src$/); +srcContext.keys().forEach(srcContext); diff --git a/experimental/packages/exporter-trace-otlp-proto/test/OTLPTraceExporter.test.ts b/experimental/packages/exporter-trace-otlp-proto/test/node/OTLPTraceExporter.test.ts similarity index 99% rename from experimental/packages/exporter-trace-otlp-proto/test/OTLPTraceExporter.test.ts rename to experimental/packages/exporter-trace-otlp-proto/test/node/OTLPTraceExporter.test.ts index 924c6b4b31..64f0e40ea0 100644 --- a/experimental/packages/exporter-trace-otlp-proto/test/OTLPTraceExporter.test.ts +++ b/experimental/packages/exporter-trace-otlp-proto/test/node/OTLPTraceExporter.test.ts @@ -22,13 +22,13 @@ import * as http from 'http'; import * as sinon from 'sinon'; import { Stream, PassThrough } from 'stream'; import * as zlib from 'zlib'; -import { OTLPTraceExporter } from '../src'; +import { OTLPTraceExporter } from '../../src'; import { ensureExportTraceServiceRequestIsSet, ensureProtoSpanIsCorrect, mockedReadableSpan, MockedResponse, -} from './traceHelper'; +} from '../traceHelper'; import { CompressionAlgorithm, OTLPExporterNodeConfigBase, diff --git a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json new file mode 100644 index 0000000000..ae47403334 --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../tsconfig.base.esm.json", + "compilerOptions": { + "outDir": "build/esm", + "rootDir": "src", + "tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo" + }, + "include": [ + "src/**/*.ts" + ], + "references": [ + { + "path": "../../../api" + }, + { + "path": "../../../packages/opentelemetry-core" + } + ] +} diff --git a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json new file mode 100644 index 0000000000..5f6cf572d5 --- /dev/null +++ b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../tsconfig.base.esnext.json", + "compilerOptions": { + "outDir": "build/esnext", + "rootDir": "src", + "tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo" + }, + "include": [ + "src/**/*.ts" + ], + "references": [ + { + "path": "../../../api" + }, + { + "path": "../../../packages/opentelemetry-core" + } + ] +} diff --git a/experimental/packages/otlp-exporter-base/src/index.ts b/experimental/packages/otlp-exporter-base/src/index.ts index e1149d2add..9ded103782 100644 --- a/experimental/packages/otlp-exporter-base/src/index.ts +++ b/experimental/packages/otlp-exporter-base/src/index.ts @@ -13,7 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export * from './OTLPExporterBase'; export * from './platform'; -export * from './types'; -export * from './util'; +export { OTLPExporterBase } from './OTLPExporterBase'; +export { + OTLPExporterError, + OTLPExporterConfigBase, + ExportServiceError, +} from './types'; +export { + parseHeaders, + appendResourcePathToUrl, + appendRootPathToUrlIfNeeded, + configureExporterTimeout, + invalidTimeout, +} from './util'; diff --git a/experimental/packages/otlp-exporter-base/src/platform/browser/index.ts b/experimental/packages/otlp-exporter-base/src/platform/browser/index.ts index c9678a8017..58b8777a97 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/browser/index.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/browser/index.ts @@ -14,4 +14,5 @@ * limitations under the License. */ -export * from './OTLPExporterBrowserBase'; +export { OTLPExporterBrowserBase } from './OTLPExporterBrowserBase'; +export { sendWithXhr } from './util'; diff --git a/experimental/packages/otlp-exporter-base/src/platform/browser/util.ts b/experimental/packages/otlp-exporter-base/src/platform/browser/util.ts index 8c311fe0ed..a271a3bf5f 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/browser/util.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/browser/util.ts @@ -50,7 +50,7 @@ export function sendWithBeacon( * @param onError */ export function sendWithXhr( - body: string, + body: string | Blob, url: string, headers: Record, exporterTimeout: number, diff --git a/experimental/packages/otlp-exporter-base/src/platform/index.ts b/experimental/packages/otlp-exporter-base/src/platform/index.ts index 86a320fde6..fc857a5802 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/index.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/index.ts @@ -13,5 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export * from './node'; -export { OTLPExporterBrowserBase } from './browser'; + +export { + OTLPExporterNodeBase, + sendWithHttp, + createHttpAgent, + configureCompression, + OTLPExporterNodeConfigBase, + CompressionAlgorithm, +} from './node'; +export { OTLPExporterBrowserBase, sendWithXhr } from './browser'; diff --git a/experimental/packages/otlp-exporter-base/src/platform/node/index.ts b/experimental/packages/otlp-exporter-base/src/platform/node/index.ts index 8a75162ea2..b8b13bda20 100644 --- a/experimental/packages/otlp-exporter-base/src/platform/node/index.ts +++ b/experimental/packages/otlp-exporter-base/src/platform/node/index.ts @@ -14,6 +14,6 @@ * limitations under the License. */ -export * from './OTLPExporterNodeBase'; -export * from './util'; -export * from './types'; +export { OTLPExporterNodeBase } from './OTLPExporterNodeBase'; +export { sendWithHttp, createHttpAgent, configureCompression } from './util'; +export { OTLPExporterNodeConfigBase, CompressionAlgorithm } from './types'; diff --git a/experimental/packages/otlp-proto-exporter-base/package.json b/experimental/packages/otlp-proto-exporter-base/package.json index c1903cd935..c65efc5801 100644 --- a/experimental/packages/otlp-proto-exporter-base/package.json +++ b/experimental/packages/otlp-proto-exporter-base/package.json @@ -3,18 +3,26 @@ "version": "0.35.0", "description": "OpenTelemetry OTLP-HTTP-protobuf Exporter base (for internal use only)", "main": "build/src/index.js", + "module": "build/esm/index.js", + "esnext": "build/esnext/index.js", "types": "build/src/index.d.ts", "repository": "open-telemetry/opentelemetry-js", + "browser": { + "./src/platform/index.ts": "./src/platform/browser/index.ts", + "./build/esm/platform/index.js": "./build/esm/platform/browser/index.js", + "./build/esnext/platform/index.js": "./build/esnext/platform/browser/index.js", + "./build/src/platform/index.js": "./build/src/platform/browser/index.js" + }, "scripts": { "prepublishOnly": "npm run compile", - "compile": "npm run protos && tsc --build", - "clean": "tsc --build --clean", + "compile": "npm run protos && tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json", + "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "protos": "npm run submodule && node scripts/protos.js", "submodule": "git submodule sync --recursive && git submodule update --init --recursive", "version": "node ../../../scripts/version-update.js", - "watch": "npm run protos && tsc -w", + "watch": "npm run protos && tsc -w tsconfig.json tsconfig.esm.json tsconfig.esnext.json", "precompile": "lerna run version --scope $(npm pkg get name) --include-dependencies", "prewatch": "npm run precompile" }, @@ -33,6 +41,12 @@ "node": ">=14" }, "files": [ + "build/esm/**/*.js", + "build/esm/**/*.js.map", + "build/esm/**/*.d.ts", + "build/esnext/**/*.js", + "build/esnext/**/*.js.map", + "build/esnext/**/*.d.ts", "build/src/**/*.js", "build/src/**/*.js.map", "build/src/**/*.d.ts", diff --git a/experimental/packages/otlp-proto-exporter-base/src/index.ts b/experimental/packages/otlp-proto-exporter-base/src/index.ts index e2cc1ee65c..e76b3a3593 100644 --- a/experimental/packages/otlp-proto-exporter-base/src/index.ts +++ b/experimental/packages/otlp-proto-exporter-base/src/index.ts @@ -13,7 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -export { OTLPProtoExporterNodeBase } from './OTLPProtoExporterNodeBase'; -export * from './types'; -export * from './util'; +export * from './platform'; diff --git a/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts new file mode 100644 index 0000000000..1b386855e4 --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts @@ -0,0 +1,90 @@ +/* + * 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 { diag } from '@opentelemetry/api'; +import { ServiceClientType } from '../types'; +import { + OTLPExporterBrowserBase as OTLPExporterBaseMain, + OTLPExporterError, + OTLPExporterConfigBase, + sendWithXhr, +} from '@opentelemetry/otlp-exporter-base'; +import * as root from '../../generated/root'; + +interface ExportRequestType unknown }> { + create(properties?: T): R; + encode(message: T, writer?: protobuf.Writer): protobuf.Writer; + decode(reader: protobuf.Reader | Uint8Array, length?: number): R; +} + +/** + * Collector Exporter abstract base class + */ +export abstract class OTLPProtoExporterBrowserBase< + ExportItem, + ServiceRequest +> extends OTLPExporterBaseMain { + constructor(config: OTLPExporterConfigBase = {}) { + super(config); + } + + private _getExportRequestProto( + clientType: ServiceClientType + ): ExportRequestType { + if (clientType === ServiceClientType.SPANS) { + // eslint-disable-next-line + return root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest as unknown as ExportRequestType; + } else { + // eslint-disable-next-line + return root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest as unknown as ExportRequestType; + } + } + + override send( + objects: ExportItem[], + onSuccess: () => void, + onError: (error: OTLPExporterError) => void + ): void { + if (this._shutdownOnce.isCalled) { + diag.debug('Shutdown already started. Cannot send objects'); + return; + } + + const serviceRequest = this.convert(objects); + const exportRequestType = this._getExportRequestProto( + this.getServiceClientType() + ); + const message = exportRequestType.create(serviceRequest); + + if (message) { + const body = exportRequestType.encode(message).finish(); + if (body) { + sendWithXhr( + new Blob([body], { type: 'application/x-protobuf' }), + this.url, + { ...this._headers, 'Content-Type': 'application/x-protobuf' }, + this.timeoutMillis, + onSuccess, + onError + ); + } + } else { + onError(new OTLPExporterError('No proto')); + } + } + + abstract getServiceClientType(): ServiceClientType; +} diff --git a/experimental/packages/otlp-proto-exporter-base/src/platform/browser/index.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/index.ts new file mode 100644 index 0000000000..26765ea51f --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/index.ts @@ -0,0 +1,17 @@ +/* + * 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. + */ +export { OTLPProtoExporterBrowserBase } from './OTLPProtoExporterBrowserBase'; +export { ServiceClientType } from '../types'; diff --git a/experimental/packages/otlp-proto-exporter-base/src/platform/index.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/index.ts new file mode 100644 index 0000000000..22efeb0309 --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/index.ts @@ -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 + * + * 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. + */ + +export { + OTLPProtoExporterNodeBase, + ExportRequestType, + getExportRequestProto, + send, +} from './node'; +export { OTLPProtoExporterBrowserBase } from './browser'; +export { ServiceClientType } from './types'; diff --git a/experimental/packages/otlp-proto-exporter-base/src/OTLPProtoExporterNodeBase.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/node/OTLPProtoExporterNodeBase.ts similarity index 98% rename from experimental/packages/otlp-proto-exporter-base/src/OTLPProtoExporterNodeBase.ts rename to experimental/packages/otlp-proto-exporter-base/src/platform/node/OTLPProtoExporterNodeBase.ts index 1d458c5cf6..c0ff4b6b39 100644 --- a/experimental/packages/otlp-proto-exporter-base/src/OTLPProtoExporterNodeBase.ts +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/node/OTLPProtoExporterNodeBase.ts @@ -15,7 +15,7 @@ */ import { diag } from '@opentelemetry/api'; -import { ServiceClientType } from './types'; +import { ServiceClientType } from '../types'; import { OTLPExporterNodeBase as OTLPExporterBaseMain, CompressionAlgorithm, diff --git a/experimental/packages/otlp-proto-exporter-base/src/platform/node/index.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/node/index.ts new file mode 100644 index 0000000000..c9c84bdac3 --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/node/index.ts @@ -0,0 +1,18 @@ +/* + * 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. + */ + +export { OTLPProtoExporterNodeBase } from './OTLPProtoExporterNodeBase'; +export { ExportRequestType, getExportRequestProto, send } from './util'; diff --git a/experimental/packages/otlp-proto-exporter-base/src/util.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/node/util.ts similarity index 96% rename from experimental/packages/otlp-proto-exporter-base/src/util.ts rename to experimental/packages/otlp-proto-exporter-base/src/platform/node/util.ts index 1d262cd74b..5cdbfa396d 100644 --- a/experimental/packages/otlp-proto-exporter-base/src/util.ts +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/node/util.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ServiceClientType } from './types'; +import { ServiceClientType } from '../types'; import { OTLPProtoExporterNodeBase } from './OTLPProtoExporterNodeBase'; import { CompressionAlgorithm, @@ -22,7 +22,7 @@ import { sendWithHttp, } from '@opentelemetry/otlp-exporter-base'; import type * as protobuf from 'protobufjs'; -import * as root from './generated/root'; +import * as root from '../../generated/root'; export interface ExportRequestType unknown }> { create(properties?: T): R; diff --git a/experimental/packages/otlp-proto-exporter-base/src/types.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/types.ts similarity index 100% rename from experimental/packages/otlp-proto-exporter-base/src/types.ts rename to experimental/packages/otlp-proto-exporter-base/src/platform/types.ts diff --git a/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json b/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json new file mode 100644 index 0000000000..ce8637cb82 --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../tsconfig.base.esm.json", + "compilerOptions": { + "allowJs": true, + "outDir": "build/esm", + "rootDir": "src", + "tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo" + }, + "include": [ + "src/**/*.ts", + "src/generated/*.js" + ], + "references": [ + { + "path": "../../../api" + }, + { + "path": "../../../packages/opentelemetry-core" + } + ] +} diff --git a/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json b/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json new file mode 100644 index 0000000000..4a1cb2c30b --- /dev/null +++ b/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../tsconfig.base.esnext.json", + "compilerOptions": { + "allowJs": true, + "outDir": "build/esnext", + "rootDir": "src", + "tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo" + }, + "include": [ + "src/**/*.ts", + "src/generated/*.js", + ], + "references": [ + { + "path": "../../../api" + }, + { + "path": "../../../packages/opentelemetry-core" + } + ] +} From bcfb1b63d5eb9d10cc5ddcb9b3683a48cbdfb43b Mon Sep 17 00:00:00 2001 From: Santosh Cheler Date: Tue, 24 Jan 2023 11:13:08 -0800 Subject: [PATCH 03/14] Match Accept header with Content-Type in the proto exporter (#3562) * Match Accept header with Content-Type in the proto exporter * Lint fixes * Add changelog entry --- CHANGELOG.md | 3 +++ .../src/platform/browser/OTLPProtoExporterBrowserBase.ts | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index daa351e51d..651c54da10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :bug: (Bug Fix) +* fix(otlp-proto-exporter-base): Match Accept header with Content-Type in the proto exporter + [#3562](https://github.com/open-telemetry/opentelemetry-js/pull/3562) @scheler + ### :books: (Refine Doc) ### :house: (Internal) diff --git a/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts index 1b386855e4..4e9f95d5c0 100644 --- a/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts +++ b/experimental/packages/otlp-proto-exporter-base/src/platform/browser/OTLPProtoExporterBrowserBase.ts @@ -75,7 +75,11 @@ export abstract class OTLPProtoExporterBrowserBase< sendWithXhr( new Blob([body], { type: 'application/x-protobuf' }), this.url, - { ...this._headers, 'Content-Type': 'application/x-protobuf' }, + { + ...this._headers, + 'Content-Type': 'application/x-protobuf', + Accept: 'application/x-protobuf', + }, this.timeoutMillis, onSuccess, onError From 77f7753392c356918286c370328f31d1cea4ffe7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 24 Jan 2023 19:46:40 +0000 Subject: [PATCH 04/14] chore(deps): update dependency mkdirp to v2 (#3554) Co-authored-by: Daniel Dyla --- experimental/packages/otlp-transformer/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/packages/otlp-transformer/package.json b/experimental/packages/otlp-transformer/package.json index ba4462f5c5..cd1641edcc 100644 --- a/experimental/packages/otlp-transformer/package.json +++ b/experimental/packages/otlp-transformer/package.json @@ -66,7 +66,7 @@ "karma-mocha": "2.0.1", "karma-spec-reporter": "0.0.32", "karma-webpack": "4.0.2", - "mkdirp": "1.0.4", + "mkdirp": "2.1.3", "mocha": "10.0.0", "nyc": "15.1.0", "rimraf": "3.0.2", From b5ef0e4625ad7da67bde80dcb4aa451be98e665a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Wed, 25 Jan 2023 14:04:36 +0100 Subject: [PATCH 05/14] chore: fix proto generation (#3567) Seems protobufjs 7.2.0 requires to include a search path. --- experimental/packages/otlp-proto-exporter-base/scripts/protos.js | 1 + 1 file changed, 1 insertion(+) diff --git a/experimental/packages/otlp-proto-exporter-base/scripts/protos.js b/experimental/packages/otlp-proto-exporter-base/scripts/protos.js index e06cc9db44..3f3fbd6c0c 100644 --- a/experimental/packages/otlp-proto-exporter-base/scripts/protos.js +++ b/experimental/packages/otlp-proto-exporter-base/scripts/protos.js @@ -45,6 +45,7 @@ async function pbjs(files) { const outFile = path.join(generatedPath, 'root.js'); const pbjsOptions = [ '-t', 'static-module', + '-p', protosPath, '-w', 'commonjs', '--null-defaults', '-o', outFile, From 3670071468f95ccc73bc2e89fe9d2415803ac3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Wed, 25 Jan 2023 14:20:58 +0100 Subject: [PATCH 06/14] fix: avoid grpc types dependency (#3551) * fix: avoid grpc types dependency Avoid a dependency to grpc types by moving the into a internal-types.ts file. * Update CHANGELOG.md Co-authored-by: Marc Pichler Co-authored-by: Daniel Dyla --- CHANGELOG.md | 1 + .../src/grpc-js/clientUtils.ts | 2 +- .../src/grpc-js/index.ts | 3 +- .../src/grpc/clientUtils.ts | 2 +- .../src/grpc/index.ts | 3 +- .../src/internal-types.ts | 32 +++++++++++++++++++ .../src/types.ts | 16 ---------- 7 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 experimental/packages/opentelemetry-instrumentation-grpc/src/internal-types.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 651c54da10..cd6d6055d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :bug: (Bug Fix) +* fix: avoid grpc types dependency [#3551](https://github.com/open-telemetry/opentelemetry-js/pull/3551) @flarna * fix(otlp-proto-exporter-base): Match Accept header with Content-Type in the proto exporter [#3562](https://github.com/open-telemetry/opentelemetry-js/pull/3562) @scheler diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/clientUtils.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/clientUtils.ts index 050eee24b1..8c98a10936 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/clientUtils.ts +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/clientUtils.ts @@ -33,7 +33,7 @@ import { CALL_SPAN_ENDED } from './serverUtils'; import { EventEmitter } from 'events'; import { AttributeNames } from '../enums/AttributeNames'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; -import { metadataCaptureType } from '../types'; +import { metadataCaptureType } from '../internal-types'; import { GRPC_STATUS_CODE_OK } from '../status-code'; /** diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/index.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/index.ts index 9147f455a0..2e5c833b19 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/index.ts +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc-js/index.ts @@ -20,7 +20,8 @@ import { isWrapped, } from '@opentelemetry/instrumentation'; import { InstrumentationBase } from '@opentelemetry/instrumentation'; -import { GrpcInstrumentationConfig, metadataCaptureType } from '../types'; +import { GrpcInstrumentationConfig } from '../types'; +import { metadataCaptureType } from '../internal-types'; import { ServerCallWithMeta, SendUnaryDataCallback, diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/clientUtils.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/clientUtils.ts index 47de2ecf34..af56330a85 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/clientUtils.ts +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/clientUtils.ts @@ -25,7 +25,7 @@ import { findIndex, } from '../utils'; import { AttributeNames } from '../enums/AttributeNames'; -import { metadataCaptureType } from '../types'; +import { metadataCaptureType } from '../internal-types'; import { GRPC_STATUS_CODE_OK } from '../status-code'; /** diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/index.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/index.ts index 436e04ada4..4df381eb66 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/index.ts +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/grpc/index.ts @@ -27,7 +27,8 @@ import { SendUnaryDataCallback, GrpcClientFunc, } from './types'; -import { GrpcInstrumentationConfig, metadataCaptureType } from '../types'; +import { GrpcInstrumentationConfig } from '../types'; +import { metadataCaptureType } from '../internal-types'; import { context, propagation, diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/internal-types.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/internal-types.ts new file mode 100644 index 0000000000..d0052f7643 --- /dev/null +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/internal-types.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 { Span } from '@opentelemetry/api'; +import type * as grpcJsTypes from '@grpc/grpc-js'; +import type * as grpcTypes from 'grpc'; + +export type metadataCaptureType = { + client: { + captureRequestMetadata: ( + span: Span, + metadata: grpcJsTypes.Metadata | grpcTypes.Metadata + ) => void; + captureResponseMetadata: ( + span: Span, + metadata: grpcJsTypes.Metadata | grpcTypes.Metadata + ) => void; + }; +}; diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/src/types.ts b/experimental/packages/opentelemetry-instrumentation-grpc/src/types.ts index 67940a48e0..dd08d8224b 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/src/types.ts +++ b/experimental/packages/opentelemetry-instrumentation-grpc/src/types.ts @@ -15,9 +15,6 @@ */ import { InstrumentationConfig } from '@opentelemetry/instrumentation'; -import { Span } from '@opentelemetry/api'; -import type * as grpcJsTypes from '@grpc/grpc-js'; -import type * as grpcTypes from 'grpc'; export type IgnoreMatcher = string | RegExp | ((str: string) => boolean); @@ -34,16 +31,3 @@ export interface GrpcInstrumentationConfig extends InstrumentationConfig { }; }; } - -export type metadataCaptureType = { - client: { - captureRequestMetadata: ( - span: Span, - metadata: grpcJsTypes.Metadata | grpcTypes.Metadata - ) => void; - captureResponseMetadata: ( - span: Span, - metadata: grpcJsTypes.Metadata | grpcTypes.Metadata - ) => void; - }; -}; From 3bc93a9fa69ad5bcd32966d044781ee7f0eca496 Mon Sep 17 00:00:00 2001 From: Matthew Wear Date: Fri, 27 Jan 2023 05:31:57 -0800 Subject: [PATCH 07/14] feat: exponential histogram - part 1 - mapping functions (#3504) * feat: add exponential histogram mapping functions * Apply suggestions from code review Co-authored-by: Marc Pichler Co-authored-by: Daniel Dyla * chore: fix compile * refactor: use Number.MAX_VALUE directly * chore: add docs to mapping and ieee754 * chore: move MIN_SCALE and MAX_SCALE to unexported constants * chore: remove currently unused test helper * chore: lint * refactor: build all scales, extract single getMapping function * fix: off by one error when pre-building mappings Co-authored-by: Marc Pichler Co-authored-by: Marc Pichler Co-authored-by: Daniel Dyla --- CHANGELOG.md | 2 + .../mapping/ExponentMapping.ts | 105 +++++++ .../mapping/LogarithmMapping.ts | 108 +++++++ .../mapping/getMapping.ts | 44 +++ .../exponential-histogram/mapping/ieee754.ts | 98 ++++++ .../exponential-histogram/mapping/types.ts | 27 ++ .../aggregator/exponential-histogram/util.ts | 40 +++ .../ExponentMapping.test.ts | 295 ++++++++++++++++++ .../LogarithmMapping.test.ts | 177 +++++++++++ .../exponential-histogram/getMapping.test.ts | 45 +++ .../exponential-histogram/helpers.ts | 33 ++ .../exponential-histogram/ieee754.test.ts | 58 ++++ 12 files changed, 1032 insertions(+) create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ExponentMapping.ts create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/LogarithmMapping.ts create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/getMapping.ts create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ieee754.ts create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/types.ts create mode 100644 packages/sdk-metrics/src/aggregator/exponential-histogram/util.ts create mode 100644 packages/sdk-metrics/test/aggregator/exponential-histogram/ExponentMapping.test.ts create mode 100644 packages/sdk-metrics/test/aggregator/exponential-histogram/LogarithmMapping.test.ts create mode 100644 packages/sdk-metrics/test/aggregator/exponential-histogram/getMapping.test.ts create mode 100644 packages/sdk-metrics/test/aggregator/exponential-histogram/helpers.ts create mode 100644 packages/sdk-metrics/test/aggregator/exponential-histogram/ieee754.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index cd6d6055d1..0d629c233a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :rocket: (Enhancement) +* feat(sdk-metrics): add exponential histogram mapping functions [#3504](https://github.com/open-telemetry/opentelemetry-js/pull/3504) @mwear + ### :bug: (Bug Fix) * fix: avoid grpc types dependency [#3551](https://github.com/open-telemetry/opentelemetry-js/pull/3551) @flarna diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ExponentMapping.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ExponentMapping.ts new file mode 100644 index 0000000000..49662b44f4 --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ExponentMapping.ts @@ -0,0 +1,105 @@ +/* + * 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 ieee754 from './ieee754'; +import * as util from '../util'; +import { Mapping, MappingError } from './types'; + +/** + * ExponentMapping implements exponential mapping functions for + * scales <=0. For scales > 0 LogarithmMapping should be used. + */ +export class ExponentMapping implements Mapping { + private readonly _shift: number; + + constructor(scale: number) { + this._shift = -scale; + } + + /** + * Maps positive floating point values to indexes corresponding to scale + * @param value + * @returns {number} index for provided value at the current scale + */ + mapToIndex(value: number): number { + if (value < ieee754.MIN_VALUE) { + return this._minNormalLowerBoundaryIndex(); + } + + const exp = ieee754.getNormalBase2(value); + + // In case the value is an exact power of two, compute a + // correction of -1. Note, we are using a custom _rightShift + // to accommodate a 52-bit argument, which the native bitwise + // operators do not support + const correction = this._rightShift( + ieee754.getSignificand(value) - 1, + ieee754.SIGNIFICAND_WIDTH + ); + + return (exp + correction) >> this._shift; + } + + /** + * Returns the lower bucket boundary for the given index for scale + * + * @param index + * @returns {number} + */ + lowerBoundary(index: number): number { + const minIndex = this._minNormalLowerBoundaryIndex(); + if (index < minIndex) { + throw new MappingError( + `underflow: ${index} is < minimum lower boundary: ${minIndex}` + ); + } + const maxIndex = this._maxNormalLowerBoundaryIndex(); + if (index > maxIndex) { + throw new MappingError( + `overflow: ${index} is > maximum lower boundary: ${maxIndex}` + ); + } + + return util.ldexp(1, index << this._shift); + } + + /** + * The scale used by this mapping + * @returns {number} + */ + scale(): number { + if (this._shift === 0) { + return 0; + } + return -this._shift; + } + + private _minNormalLowerBoundaryIndex(): number { + let index = ieee754.MIN_NORMAL_EXPONENT >> this._shift; + if (this._shift < 2) { + index--; + } + + return index; + } + + private _maxNormalLowerBoundaryIndex(): number { + return ieee754.MAX_NORMAL_EXPONENT >> this._shift; + } + + private _rightShift(value: number, shift: number): number { + return Math.floor(value * Math.pow(2, -shift)); + } +} diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/LogarithmMapping.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/LogarithmMapping.ts new file mode 100644 index 0000000000..974d9ff84e --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/LogarithmMapping.ts @@ -0,0 +1,108 @@ +/* + * 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 ieee754 from './ieee754'; +import * as util from '../util'; +import { Mapping, MappingError } from './types'; + +/** + * LogarithmMapping implements exponential mapping functions for scale > 0. + * For scales <= 0 the exponent mapping should be used. + */ +export class LogarithmMapping implements Mapping { + private readonly _scale: number; + private readonly _scaleFactor: number; + private readonly _inverseFactor: number; + + constructor(scale: number) { + this._scale = scale; + this._scaleFactor = util.ldexp(Math.LOG2E, scale); + this._inverseFactor = util.ldexp(Math.LN2, -scale); + } + + /** + * Maps positive floating point values to indexes corresponding to scale + * @param value + * @returns {number} index for provided value at the current scale + */ + mapToIndex(value: number): number { + if (value <= ieee754.MIN_VALUE) { + return this._minNormalLowerBoundaryIndex() - 1; + } + + // exact power of two special case + if (ieee754.getSignificand(value) === 0) { + const exp = ieee754.getNormalBase2(value); + return (exp << this._scale) - 1; + } + + // non-power of two cases. use Math.floor to round the scaled logarithm + const index = Math.floor(Math.log(value) * this._scaleFactor); + const maxIndex = this._maxNormalLowerBoundaryIndex(); + if (index >= maxIndex) { + return maxIndex; + } + + return index; + } + + /** + * Returns the lower bucket boundary for the given index for scale + * + * @param index + * @returns {number} + */ + lowerBoundary(index: number): number { + const maxIndex = this._maxNormalLowerBoundaryIndex(); + if (index >= maxIndex) { + if (index === maxIndex) { + return 2 * Math.exp((index - (1 << this._scale)) / this._scaleFactor); + } + throw new MappingError( + `overflow: ${index} is > maximum lower boundary: ${maxIndex}` + ); + } + + const minIndex = this._minNormalLowerBoundaryIndex(); + if (index <= minIndex) { + if (index === minIndex) { + return ieee754.MIN_VALUE; + } else if (index === minIndex - 1) { + return Math.exp((index + (1 << this._scale)) / this._scaleFactor) / 2; + } + throw new MappingError( + `overflow: ${index} is < minimum lower boundary: ${minIndex}` + ); + } + + return Math.exp(index * this._inverseFactor); + } + + /** + * The scale used by this mapping + * @returns {number} + */ + scale(): number { + return this._scale; + } + + private _minNormalLowerBoundaryIndex(): number { + return ieee754.MIN_NORMAL_EXPONENT << this._scale; + } + + private _maxNormalLowerBoundaryIndex(): number { + return ((ieee754.MAX_NORMAL_EXPONENT + 1) << this._scale) - 1; + } +} diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/getMapping.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/getMapping.ts new file mode 100644 index 0000000000..ce8949b325 --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/getMapping.ts @@ -0,0 +1,44 @@ +/* + * 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 { ExponentMapping } from './ExponentMapping'; +import { LogarithmMapping } from './LogarithmMapping'; +import { MappingError, Mapping } from './types'; + +const MIN_SCALE = -10; +const MAX_SCALE = 20; +const PREBUILT_MAPPINGS = Array.from({ length: 31 }, (_, i) => { + if (i > 10) { + return new LogarithmMapping(i - 10); + } + return new ExponentMapping(i - 10); +}); + +/** + * getMapping returns an appropriate mapping for the given scale. For scales -10 + * to 0 the underlying type will be ExponentMapping. For scales 1 to 20 the + * underlying type will be LogarithmMapping. + * @param scale a number in the range [-10, 20] + * @returns {Mapping} + */ +export function getMapping(scale: number): Mapping { + if (scale > MAX_SCALE || scale < MIN_SCALE) { + throw new MappingError( + `expected scale >= ${MIN_SCALE} && <= ${MAX_SCALE}, got: ${scale}` + ); + } + // mappings are offset by 10. scale -10 is at position 0 and scale 20 is at 30 + return PREBUILT_MAPPINGS[scale + 10]; +} diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ieee754.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ieee754.ts new file mode 100644 index 0000000000..0dc4f01bc3 --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/ieee754.ts @@ -0,0 +1,98 @@ +/* + * 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. + */ + +/** + * The functions and constants in this file allow us to interact + * with the internal representation of an IEEE 64-bit floating point + * number. We need to work with all 64-bits, thus, care needs to be + * taken when working with Javascript's bitwise operators (<<, >>, &, + * |, etc) as they truncate operands to 32-bits. In order to work around + * this we work with the 64-bits as two 32-bit halves, perform bitwise + * operations on them independently, and combine the results (if needed). + */ + +export const SIGNIFICAND_WIDTH = 52; + +/** + * EXPONENT_MASK is set to 1 for the hi 32-bits of an IEEE 754 + * floating point exponent: 0x7ff00000. + */ +const EXPONENT_MASK = 0x7ff00000; + +/** + * SIGNIFICAND_MASK is the mask for the significand portion of the hi 32-bits + * of an IEEE 754 double-precision floating-point value: 0xfffff + */ +const SIGNIFICAND_MASK = 0xfffff; + +/** + * EXPONENT_BIAS is the exponent bias specified for encoding + * the IEEE 754 double-precision floating point exponent: 1023 + */ +const EXPONENT_BIAS = 1023; + +/** + * MIN_NORMAL_EXPONENT is the minimum exponent of a normalized + * floating point: -1022. + */ +export const MIN_NORMAL_EXPONENT = -EXPONENT_BIAS + 1; + +/** + * MAX_NORMAL_EXPONENT is the maximum exponent of a normalized + * floating point: 1023. + */ +export const MAX_NORMAL_EXPONENT = EXPONENT_BIAS; + +/** + * MIN_VALUE is the smallest normal number + */ +export const MIN_VALUE = Math.pow(2, -1022); + +/** + * getNormalBase2 extracts the normalized base-2 fractional exponent. + * This returns k for the equation f x 2**k where f is + * in the range [1, 2). Note that this function is not called for + * subnormal numbers. + * @param {number} value - the value to determine normalized base-2 fractional + * exponent for + * @returns {number} the normalized base-2 exponent + */ +export function getNormalBase2(value: number): number { + const dv = new DataView(new ArrayBuffer(8)); + dv.setFloat64(0, value); + // access the raw 64-bit float as 32-bit uints + const hiBits = dv.getUint32(0); + const expBits = (hiBits & EXPONENT_MASK) >> 20; + return expBits - EXPONENT_BIAS; +} + +/** + * GetSignificand returns the 52 bit (unsigned) significand as a signed value. + * @param {number} value - the floating point number to extract the significand from + * @returns {number} The 52-bit significand + */ +export function getSignificand(value: number): number { + const dv = new DataView(new ArrayBuffer(8)); + dv.setFloat64(0, value); + // access the raw 64-bit float as two 32-bit uints + const hiBits = dv.getUint32(0); + const loBits = dv.getUint32(4); + // extract the significand bits from the hi bits and left shift 32 places note: + // we can't use the native << operator as it will truncate the result to 32-bits + const significandHiBits = (hiBits & SIGNIFICAND_MASK) * Math.pow(2, 32); + // combine the hi and lo bits and return + return significandHiBits + loBits; +} diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/types.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/types.ts new file mode 100644 index 0000000000..afe6ed9118 --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/mapping/types.ts @@ -0,0 +1,27 @@ +/* + * 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. + */ +export class MappingError extends Error {} + +/** + * The mapping interface is used by the exponential histogram to determine + * where to bucket values. The interface is implemented by ExponentMapping, + * used for scales [-10, 0] and LogarithmMapping, used for scales [1, 20]. + */ +export interface Mapping { + mapToIndex(value: number): number; + lowerBoundary(index: number): number; + scale(): number; +} diff --git a/packages/sdk-metrics/src/aggregator/exponential-histogram/util.ts b/packages/sdk-metrics/src/aggregator/exponential-histogram/util.ts new file mode 100644 index 0000000000..356bbab260 --- /dev/null +++ b/packages/sdk-metrics/src/aggregator/exponential-histogram/util.ts @@ -0,0 +1,40 @@ +/* + * 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. + */ + +/** + * Note: other languages provide this as a built in function. This is + * a naive, but functionally correct implementation. This is used sparingly, + * when creating a new mapping in a running application. + * + * ldexp returns frac × 2**exp. With the following special cases: + * ldexp(±0, exp) = ±0 + * ldexp(±Inf, exp) = ±Inf + * ldexp(NaN, exp) = NaN + * @param frac + * @param exp + * @returns {number} + */ +export function ldexp(frac: number, exp: number): number { + if ( + frac === 0 || + frac === Number.POSITIVE_INFINITY || + frac === Number.NEGATIVE_INFINITY || + Number.isNaN(frac) + ) { + return frac; + } + return frac * Math.pow(2, exp); +} diff --git a/packages/sdk-metrics/test/aggregator/exponential-histogram/ExponentMapping.test.ts b/packages/sdk-metrics/test/aggregator/exponential-histogram/ExponentMapping.test.ts new file mode 100644 index 0000000000..8a9ed82157 --- /dev/null +++ b/packages/sdk-metrics/test/aggregator/exponential-histogram/ExponentMapping.test.ts @@ -0,0 +1,295 @@ +/* + * 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 { ExponentMapping } from '../../../src/aggregator/exponential-histogram/mapping/ExponentMapping'; +import * as ieee754 from '../../../src/aggregator/exponential-histogram/mapping/ieee754'; +import * as assert from 'assert'; + +const MIN_SCALE = -10; +const MAX_SCALE = 0; + +describe('ExponentMapping', () => { + it('maps expected values for scale 0', () => { + const mapping = new ExponentMapping(0); + assert.strictEqual(mapping.scale(), 0); + + const expectedMappings = [ + // near +inf + [Number.MAX_VALUE, ieee754.MAX_NORMAL_EXPONENT], + [Number.MAX_VALUE, 1023], + [Math.pow(2, 1023), 1022], + [1.0625 * Math.pow(2, 1023), 1023], + [Math.pow(2, 1022), 1021], + [1.0625 * Math.pow(2, 1023), 1023], + + // near 0 + [Math.pow(2, -1022), -1023], + [1.0625 * Math.pow(2, -1022), -1022], + [Math.pow(2, -1021), -1022], + [1.0625 * Math.pow(2, -1021), -1021], + + [Math.pow(2, -1022), ieee754.MIN_NORMAL_EXPONENT - 1], + [Math.pow(2, -1021), ieee754.MIN_NORMAL_EXPONENT], + [Number.MIN_VALUE, ieee754.MIN_NORMAL_EXPONENT - 1], + + // near 1 + [4, 1], + [3, 1], + [2, 0], + [1.5, 0], + [1, -1], + [0.75, -1], + [0.51, -1], + [0.5, -2], + [0.26, -2], + [0.25, -3], + [0.126, -3], + [0.125, -4], + ]; + + expectedMappings.forEach(([value, expected]) => { + const result = mapping.mapToIndex(value); + assert.strictEqual( + result, + expected, + `expected: ${value} to map to: ${expected}, got: ${result}` + ); + }); + }); + + it('maps expected values for min scale', () => { + const mapping = new ExponentMapping(MIN_SCALE); + assert.strictEqual(mapping.scale(), MIN_SCALE); + + const expectedMappings = [ + [1.000001, 0], + [1, -1], + [Number.MAX_VALUE / 2, 0], + [Number.MAX_VALUE, 0], + [Number.MIN_VALUE, -1], + [0.5, -1], + ]; + + expectedMappings.forEach(([value, expected]) => { + const result = mapping.mapToIndex(value); + assert.strictEqual( + result, + expected, + `expected: ${value} to map to: ${expected}, got: ${result}` + ); + }); + }); + + it('maps expected values for scale -1', () => { + const mapping = new ExponentMapping(-1); + assert.strictEqual(mapping.scale(), -1); + + const expectedMappings = [ + [17, 2], + [16, 1], + [15, 1], + [9, 1], + [8, 1], + [5, 1], + [4, 0], + [3, 0], + [2, 0], + [1.5, 0], + [1, -1], + [0.75, -1], + [0.5, -1], + [0.25, -2], + [0.2, -2], + [0.13, -2], + [0.125, -2], + [0.1, -2], + [0.0625, -3], + [0.06, -3], + ]; + + expectedMappings.forEach(([value, expected]) => { + const result = mapping.mapToIndex(value); + assert.strictEqual( + result, + expected, + `expected: ${value} to map to: ${expected}, got: ${result}` + ); + }); + }); + + it('maps expected values for scale -4', () => { + const mapping = new ExponentMapping(-4); + assert.strictEqual(mapping.scale(), -4); + + const expectedMappings = [ + [0x1, -1], + [0x10, 0], + [0x100, 0], + [0x1000, 0], + [0x10000, 0], // Base == 2**16 + [0x100000, 1], + [0x1000000, 1], + [0x10000000, 1], + [0x100000000, 1], // == 2**32 + [0x1000000000, 2], + [0x10000000000, 2], + [0x100000000000, 2], + [0x1000000000000, 2], // 2**48 + [0x10000000000000, 3], + [0x1000000000000000, 3], + [0x10000000000000000, 3], // 2**64 + [0x100000000000000000, 4], + [0x1000000000000000000, 4], + [0x10000000000000000000, 4], + [0x100000000000000000000, 4], // 2**80 + [0x1000000000000000000000, 5], + + [1 / 0x1, -1], + [1 / 0x10, -1], + [1 / 0x100, -1], + [1 / 0x1000, -1], + [1 / 0x10000, -2], // 2**-16 + [1 / 0x100000, -2], + [1 / 0x1000000, -2], + [1 / 0x10000000, -2], + [1 / 0x100000000, -3], // 2**-32 + [1 / 0x1000000000, -3], + [1 / 0x10000000000, -3], + [1 / 0x100000000000, -3], + [1 / 0x1000000000000, -4], // 2**-48 + [1 / 0x10000000000000, -4], + [1 / 0x100000000000000, -4], + [1 / 0x1000000000000000, -4], + [1 / 0x10000000000000000, -5], // 2**-64 + [1 / 0x100000000000000000, -5], + + // Max values + // below is equivalent to [0x1.FFFFFFFFFFFFFp1023, 63], + [ + Array.from({ length: 13 }, (_, x) => 0xf * Math.pow(16, -x - 1)).reduce( + (x, y) => x + y, + 1 + ) * Math.pow(2, 1023), + 63, + ], + [Math.pow(2, 1023), 63], + [Math.pow(2, 1019), 63], + [Math.pow(2, 1009), 63], + [Math.pow(2, 1008), 62], + [Math.pow(2, 1007), 62], + [Math.pow(2, 1000), 62], + [Math.pow(2, 993), 62], + [Math.pow(2, 992), 61], + [Math.pow(2, 991), 61], + + // Min and subnormal values + [Math.pow(2, -1074), -64], + [Math.pow(2, -1073), -64], + [Math.pow(2, -1072), -64], + [Math.pow(2, -1057), -64], + [Math.pow(2, -1056), -64], + [Math.pow(2, -1041), -64], + [Math.pow(2, -1040), -64], + [Math.pow(2, -1025), -64], + [Math.pow(2, -1024), -64], + [Math.pow(2, -1023), -64], + [Math.pow(2, -1022), -64], + [Math.pow(2, -1009), -64], + [Math.pow(2, -1008), -64], + [Math.pow(2, -1007), -63], + [Math.pow(2, -993), -63], + [Math.pow(2, -992), -63], + [Math.pow(2, -991), -62], + [Math.pow(2, -977), -62], + [Math.pow(2, -976), -62], + [Math.pow(2, -975), -61], + ]; + + expectedMappings.forEach(([value, expected]) => { + const result = mapping.mapToIndex(value); + assert.strictEqual( + result, + expected, + `expected: ${value} to map to: ${expected}, got: ${result}` + ); + }); + }); + + it('handles max index for all scales', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = new ExponentMapping(scale); + const index = mapping.mapToIndex(Number.MAX_VALUE); + const maxIndex = ((ieee754.MAX_NORMAL_EXPONENT + 1) >> -scale) - 1; + assert.strictEqual( + index, + maxIndex, + `expected index: ${index} and ${maxIndex} to be equal for scale: ${scale}` + ); + + const boundary = mapping.lowerBoundary(index); + assert.strictEqual(boundary, roundedBoundary(scale, maxIndex)); + + assert.throws(() => { + // one larger will overflow + mapping.lowerBoundary(index + 1); + }); + } + }); + + it('handles min index for all scales', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = new ExponentMapping(scale); + const minIndex = mapping.mapToIndex(ieee754.MIN_VALUE); + let expectedMinIndex = ieee754.MIN_NORMAL_EXPONENT >> -scale; + if (ieee754.MIN_NORMAL_EXPONENT % (1 << -scale) === 0) { + expectedMinIndex--; + } + assert.strictEqual( + minIndex, + expectedMinIndex, + `expected expectedMinIndex: ${expectedMinIndex} and ${minIndex} to be equal for scale: ${scale}` + ); + + const boundary = mapping.lowerBoundary(minIndex); + const expectedBoundary = roundedBoundary(scale, expectedMinIndex); + assert.strictEqual(boundary, expectedBoundary); + + //one smaller will underflow + assert.throws(() => { + mapping.lowerBoundary(minIndex - 1); + }); + + // subnormals map to the min index + [ + ieee754.MIN_VALUE / 2, + ieee754.MIN_VALUE / 3, + Math.pow(2, -1050), + Math.pow(2, -1073), + 1.0625 * Math.pow(2, -1073), + Math.pow(2, -1074), + ].forEach(value => { + assert.strictEqual(mapping.mapToIndex(value), expectedMinIndex); + }); + } + }); +}); + +function roundedBoundary(scale: number, index: number): number { + let result = Math.pow(2, index); + for (let i = scale; i < 0; i++) { + result = result * result; + } + return result; +} diff --git a/packages/sdk-metrics/test/aggregator/exponential-histogram/LogarithmMapping.test.ts b/packages/sdk-metrics/test/aggregator/exponential-histogram/LogarithmMapping.test.ts new file mode 100644 index 0000000000..d6d04bf814 --- /dev/null +++ b/packages/sdk-metrics/test/aggregator/exponential-histogram/LogarithmMapping.test.ts @@ -0,0 +1,177 @@ +/* + * 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 { LogarithmMapping } from '../../../src/aggregator/exponential-histogram/mapping/LogarithmMapping'; +import * as ieee754 from '../../../src/aggregator/exponential-histogram/mapping/ieee754'; +import * as assert from 'assert'; +import { assertInEpsilon } from './helpers'; + +const MIN_SCALE = 1; +const MAX_SCALE = 20; + +describe('LogarithmMapping', () => { + it('maps values for scale 1', () => { + const mapping = new LogarithmMapping(1); + assert.strictEqual(mapping.scale(), 1); + + const expectedMappings = [ + [15, 7], + [9, 6], + [7, 5], + [5, 4], + [3, 3], + [2.5, 2], + [1.5, 1], + [1.2, 0], + [1, -1], + [0.75, -1], + [0.55, -2], + [0.45, -3], + ]; + + expectedMappings.forEach(([value, expected]) => { + const result = mapping.mapToIndex(value); + assert.strictEqual( + result, + expected, + `expected: ${value} to map to: ${expected}, got: ${result}` + ); + }); + }); + + it('computes boundary', () => { + [1, 2, 3, 4, 10, 15].forEach(scale => { + const mapping = new LogarithmMapping(scale); + [-100, -10, -1, 0, 1, 10, 100].forEach(index => { + const boundary = mapping.lowerBoundary(index); + const mappedIndex = mapping.mapToIndex(boundary); + + assert.ok(index - 1 <= mappedIndex); + assert.ok(index >= mappedIndex); + assertInEpsilon(roundedBoundary(scale, index), boundary, 1e-9); + }); + }); + }); + + it('handles max index for each scale', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = new LogarithmMapping(scale); + const index = mapping.mapToIndex(Number.MAX_VALUE); + + // the max index is one less than the first index that + // overflows Number.MAX_VALUE + const maxIndex = ((ieee754.MAX_NORMAL_EXPONENT + 1) << scale) - 1; + + assert.strictEqual(index, maxIndex); + + const boundary = mapping.lowerBoundary(index); + const base = mapping.lowerBoundary(1); + + assert.ok( + boundary < Number.MAX_VALUE, + `expected boundary: ${boundary} to be < max value: ${Number.MAX_VALUE}` + ); + + assertInEpsilon( + base - 1, + (Number.MAX_VALUE - boundary) / boundary, + 10e-6 + ); + } + }); + + it('handles min index for each scale', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = new LogarithmMapping(scale); + const minIndex = mapping.mapToIndex(ieee754.MIN_VALUE); + + const expectedMinIndex = (ieee754.MIN_NORMAL_EXPONENT << scale) - 1; + assert.strictEqual(minIndex, expectedMinIndex); + + const expectedBoundary = roundedBoundary(scale, expectedMinIndex); + assert.ok(expectedBoundary < ieee754.MIN_VALUE); + + const expectedUpperBoundary = roundedBoundary( + scale, + expectedMinIndex + 1 + ); + assert.strictEqual(ieee754.MIN_VALUE, expectedUpperBoundary); + + const mappedLowerBoundary = mapping.lowerBoundary(minIndex + 1); + assertInEpsilon(ieee754.MIN_VALUE, mappedLowerBoundary, 1e-6); + + // subnormals map to the min index + [ + ieee754.MIN_VALUE / 2, + ieee754.MIN_VALUE / 3, + ieee754.MIN_VALUE / 100, + Math.pow(2, -1050), + Math.pow(2, -1073), + 1.0625 * Math.pow(2, -1073), + Math.pow(2, -1074), + ].forEach(value => { + const result = mapping.mapToIndex(value); + assert.strictEqual(result, expectedMinIndex); + }); + + const mappedMinLower = mapping.lowerBoundary(minIndex); + + assertInEpsilon(expectedBoundary, mappedMinLower, 1e-6); + + // one smaller will underflow + assert.throws(() => { + mapping.lowerBoundary(minIndex - 1); + }); + } + }); + + it('maps max float to max index for each scale', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = new LogarithmMapping(scale); + const index = mapping.mapToIndex(Number.MAX_VALUE); + const maxIndex = ((ieee754.MAX_NORMAL_EXPONENT + 1) << scale) - 1; + assert.strictEqual(maxIndex, index); + + const boundary = mapping.lowerBoundary(index); + const base = mapping.lowerBoundary(1); + + assert.ok(boundary < Number.MAX_VALUE); + assertInEpsilon(base - 1, (Number.MAX_VALUE - boundary) / boundary, 1e-6); + + //one larger will overflow + assert.throws(() => { + mapping.lowerBoundary(index + 1); + }); + } + }); +}); + +function roundedBoundary(scale: number, index: number): number { + while (scale > 0) { + if (index < -1022) { + index /= 2; + scale--; + } else { + break; + } + } + + let result = Math.pow(2, index); + for (let i = scale; i > 0; i--) { + result = Math.sqrt(result); + } + + return result; +} diff --git a/packages/sdk-metrics/test/aggregator/exponential-histogram/getMapping.test.ts b/packages/sdk-metrics/test/aggregator/exponential-histogram/getMapping.test.ts new file mode 100644 index 0000000000..4d7326be54 --- /dev/null +++ b/packages/sdk-metrics/test/aggregator/exponential-histogram/getMapping.test.ts @@ -0,0 +1,45 @@ +/* + * 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 { ExponentMapping } from '../../../src/aggregator/exponential-histogram/mapping/ExponentMapping'; +import { LogarithmMapping } from '../../../src/aggregator/exponential-histogram/mapping/LogarithmMapping'; +import { getMapping } from '../../../src/aggregator/exponential-histogram/mapping/getMapping'; +import * as assert from 'assert'; + +const MIN_SCALE = -10; +const MAX_SCALE = 20; + +describe('getMapping', () => { + it('returns correct mapping for all scales', () => { + for (let scale = MIN_SCALE; scale <= MAX_SCALE; scale++) { + const mapping = getMapping(scale); + if (scale > 0) { + assert.ok(mapping instanceof LogarithmMapping); + } else { + assert.ok(mapping instanceof ExponentMapping); + } + assert.strictEqual(mapping.scale(), scale); + } + }); + + it('throws for invalid scales', () => { + assert.throws(() => { + getMapping(MIN_SCALE - 1); + }); + assert.throws(() => { + getMapping(MAX_SCALE + 1); + }); + }); +}); diff --git a/packages/sdk-metrics/test/aggregator/exponential-histogram/helpers.ts b/packages/sdk-metrics/test/aggregator/exponential-histogram/helpers.ts new file mode 100644 index 0000000000..a2241fbf66 --- /dev/null +++ b/packages/sdk-metrics/test/aggregator/exponential-histogram/helpers.ts @@ -0,0 +1,33 @@ +/* + * 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 assert from 'assert'; + +export function assertInEpsilon( + actual: number, + expected: number, + epsilon: number +) { + assert.ok(!Number.isNaN(actual), 'unexpected NaN for actual argument'); + assert.ok(!Number.isNaN(expected), 'unexpected NaN for expected argument'); + assert.ok(actual !== 0, 'unexpected 0 for actual argument'); + + const relErr = Math.abs(actual - expected) / Math.abs(actual); + + assert.ok( + relErr < epsilon, + `expected relative error: ${relErr} to be < ${epsilon}` + ); +} diff --git a/packages/sdk-metrics/test/aggregator/exponential-histogram/ieee754.test.ts b/packages/sdk-metrics/test/aggregator/exponential-histogram/ieee754.test.ts new file mode 100644 index 0000000000..3db0da3268 --- /dev/null +++ b/packages/sdk-metrics/test/aggregator/exponential-histogram/ieee754.test.ts @@ -0,0 +1,58 @@ +/* + * 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 ieee754 from '../../../src/aggregator/exponential-histogram/mapping/ieee754'; +import * as assert from 'assert'; + +describe('ieee754 helpers', () => { + describe('MIN_NORMAL_EXPONENT', () => { + it('has expected value', () => { + assert.strictEqual(ieee754.MIN_NORMAL_EXPONENT, -1022); + }); + }); + + describe('MAX_NORMAL_EXPONENT', () => { + it('has expected value', () => { + assert.strictEqual(ieee754.MAX_NORMAL_EXPONENT, 1023); + }); + }); + + describe('getNormalBase2', () => { + it('extracts exponent', () => { + assert.strictEqual( + ieee754.getNormalBase2(Math.pow(2, 1023)), + ieee754.MAX_NORMAL_EXPONENT + ); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, 1022)), 1022); + assert.strictEqual(ieee754.getNormalBase2(18.9), 4); + assert.strictEqual(ieee754.getNormalBase2(1), 0); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1021)), -1021); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1022)), -1022); + + // Subnormals below + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1023)), -1023); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1024)), -1023); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1025)), -1023); + assert.strictEqual(ieee754.getNormalBase2(Math.pow(2, -1074)), -1023); + }); + }); + + describe('getSignificand', () => { + it('returns expected values', () => { + // The number 1.5 has a single most-significant bit set, i.e., 1<<51. + assert.strictEqual(ieee754.getSignificand(1.5), Math.pow(2, 51)); + }); + }); +}); From dcb09b76d1013c8e8c18fcb7b34e73b876a716f9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 27 Jan 2023 14:21:53 +0000 Subject: [PATCH 08/14] chore(deps): update dependency gh-pages to v5 (#3571) Co-authored-by: Daniel Dyla --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0bec743a3b..df63bd8fcd 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "eslint-plugin-header": "3.1.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.2.1", - "gh-pages": "4.0.0", + "gh-pages": "5.0.0", "lerna": "6.0.3", "lerna-changelog": "2.2.0", "linkinator": "4.0.3", From 5b070b80a43f8c29ac1ea87f868b5ba01b11b0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Fri, 27 Jan 2023 16:39:51 +0100 Subject: [PATCH 09/14] fix: include TraceState in trace exports (#3569) * fix: include TraceState in trace exports Include TraceState in OTEL spans and links. Print span.traceState in ConsoleSpanExporter. * Update experimental/CHANGELOG.md * Update CHANGELOG.md --- CHANGELOG.md | 1 + experimental/CHANGELOG.md | 2 ++ .../packages/otlp-transformer/src/trace/internal.ts | 2 ++ experimental/packages/otlp-transformer/test/trace.test.ts | 6 ++++-- .../src/export/ConsoleSpanExporter.ts | 1 + .../test/common/export/ConsoleSpanExporter.test.ts | 3 +++ 6 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d629c233a..91960a3c5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ * fix: avoid grpc types dependency [#3551](https://github.com/open-telemetry/opentelemetry-js/pull/3551) @flarna * fix(otlp-proto-exporter-base): Match Accept header with Content-Type in the proto exporter [#3562](https://github.com/open-telemetry/opentelemetry-js/pull/3562) @scheler +* fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna ### :books: (Refine Doc) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 9416823ca2..44c40824e4 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -10,6 +10,8 @@ All notable changes to experimental packages in this project will be documented ### :bug: (Bug Fix) +* fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna + ### :books: (Refine Doc) ### :house: (Internal) diff --git a/experimental/packages/otlp-transformer/src/trace/internal.ts b/experimental/packages/otlp-transformer/src/trace/internal.ts index bebc41c4e8..e4d787349e 100644 --- a/experimental/packages/otlp-transformer/src/trace/internal.ts +++ b/experimental/packages/otlp-transformer/src/trace/internal.ts @@ -32,6 +32,7 @@ export function sdkSpanToOtlpSpan(span: ReadableSpan, useHex?: boolean): ISpan { traceId: useHex ? ctx.traceId : core.hexToBase64(ctx.traceId), spanId: useHex ? ctx.spanId : core.hexToBase64(ctx.spanId), parentSpanId: parentSpanId, + traceState: ctx.traceState?.serialize(), name: span.name, // Span kind is offset by 1 because the API does not define a value for unset kind: span.kind == null ? 0 : span.kind + 1, @@ -60,6 +61,7 @@ export function toOtlpLink(link: Link, useHex?: boolean): ILink { traceId: useHex ? link.context.traceId : core.hexToBase64(link.context.traceId), + traceState: link.context.traceState?.serialize(), droppedAttributesCount: 0, }; } diff --git a/experimental/packages/otlp-transformer/test/trace.test.ts b/experimental/packages/otlp-transformer/test/trace.test.ts index 6d0682d3d3..7308139004 100644 --- a/experimental/packages/otlp-transformer/test/trace.test.ts +++ b/experimental/packages/otlp-transformer/test/trace.test.ts @@ -60,6 +60,7 @@ function createExpectedSpanJson(useHex: boolean) { traceId: traceId, spanId: spanId, parentSpanId: parentSpanId, + traceState: 'span=bar', name: 'span-name', kind: ESpanKind.SPAN_KIND_CLIENT, links: [ @@ -67,6 +68,7 @@ function createExpectedSpanJson(useHex: boolean) { droppedAttributesCount: 0, spanId: linkSpanId, traceId: linkTraceId, + traceState: 'link=foo', attributes: [ { key: 'link-attribute', @@ -134,7 +136,7 @@ describe('Trace', () => { traceFlags: 1, traceId: '00000000000000000000000000000001', isRemote: false, - traceState: new TraceState(''), + traceState: new TraceState('span=bar'), }), parentSpanId: '0000000000000001', attributes: { 'string-attribute': 'some attribute value' }, @@ -163,7 +165,7 @@ describe('Trace', () => { traceId: '00000000000000000000000000000002', traceFlags: 1, isRemote: false, - traceState: new TraceState(''), + traceState: new TraceState('link=foo'), }, attributes: { 'link-attribute': 'string value', diff --git a/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts b/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts index 8f1b8e1978..77b0965598 100644 --- a/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts +++ b/packages/opentelemetry-sdk-trace-base/src/export/ConsoleSpanExporter.ts @@ -57,6 +57,7 @@ export class ConsoleSpanExporter implements SpanExporter { return { traceId: span.spanContext().traceId, parentId: span.parentSpanId, + traceState: span.spanContext().traceState?.serialize(), name: span.name, id: span.spanContext().spanId, kind: span.kind, diff --git a/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts b/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts index 633cac3ec7..72642927a3 100644 --- a/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts +++ b/packages/opentelemetry-sdk-trace-base/test/common/export/ConsoleSpanExporter.test.ts @@ -15,6 +15,7 @@ */ import { SpanContext, TraceFlags } from '@opentelemetry/api'; +import { TraceState } from '@opentelemetry/core'; import * as assert from 'assert'; import * as sinon from 'sinon'; import { @@ -63,6 +64,7 @@ describe('ConsoleSpanExporter', () => { const span = tracer.startSpan('foo', { links: [{ context, attributes: { anAttr: 'aValue' } }], }); + span.spanContext().traceState = new TraceState('trace=state'); span.addEvent('foobar'); span.end(); @@ -85,6 +87,7 @@ describe('ConsoleSpanExporter', () => { 'status', 'timestamp', 'traceId', + 'traceState', ].join(','); assert.ok(firstSpan.name === 'foo'); From a90c558772e049d614f91c8046b60c49f3211de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Fri, 27 Jan 2023 18:58:41 +0100 Subject: [PATCH 10/14] fix(sdk-node): register instrumentations early (#3502) * fix(sdk-node): register instrumentations early Register instrumentations as first step in start() before it gets async to ensure that modules required during async resource detection get instrumented. * Update experimental/CHANGELOG.md --------- Co-authored-by: Daniel Dyla --- experimental/CHANGELOG.md | 1 + experimental/packages/opentelemetry-sdk-node/src/sdk.ts | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 44c40824e4..40f2bcbbfa 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to experimental packages in this project will be documented ### :bug: (Bug Fix) +* fix(sdk-node): register instrumentations early [#3502](https://github.com/open-telemetry/opentelemetry-js/pull/3502) @flarna * fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna ### :books: (Refine Doc) diff --git a/experimental/packages/opentelemetry-sdk-node/src/sdk.ts b/experimental/packages/opentelemetry-sdk-node/src/sdk.ts index a3af268442..caad9b85e2 100644 --- a/experimental/packages/opentelemetry-sdk-node/src/sdk.ts +++ b/experimental/packages/opentelemetry-sdk-node/src/sdk.ts @@ -208,6 +208,10 @@ export class NodeSDK { return; } + registerInstrumentations({ + instrumentations: this._instrumentations, + }); + if (this._autoDetectResources) { await this.detectResources(); } @@ -255,10 +259,6 @@ export class NodeSDK { metrics.setGlobalMeterProvider(meterProvider); } - - registerInstrumentations({ - instrumentations: this._instrumentations, - }); } public shutdown(): Promise { From e0abcc0b3fe49545a7d0a62825e9f9399c178f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Fri, 27 Jan 2023 18:59:50 +0100 Subject: [PATCH 11/14] fix: remove JSON syntax error and regenerate tsconfig files (#3566) * chore: regenerate tsconfig files * fix: add generated js files back to proto base esnext * Changelog --------- Co-authored-by: Daniel Dyla --- experimental/CHANGELOG.md | 2 ++ .../exporter-trace-otlp-proto/tsconfig.esm.json | 15 +++++++++++++++ .../tsconfig.esnext.json | 15 +++++++++++++++ .../otlp-proto-exporter-base/tsconfig.esm.json | 3 +++ .../otlp-proto-exporter-base/tsconfig.esnext.json | 5 ++++- tsconfig.esm.json | 6 ++++++ tsconfig.esnext.json | 6 ++++++ 7 files changed, 51 insertions(+), 1 deletion(-) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 40f2bcbbfa..57eccab24b 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -10,6 +10,8 @@ All notable changes to experimental packages in this project will be documented ### :bug: (Bug Fix) +* fix: remove JSON syntax error and regenerate tsconfig files [#3566](https://github.com/open-telemetry/opentelemetry-js/pull/3566) @Flarna + * Fixes an error where the generated JS files were not included in the esnext package due to a failure of the tsconfig generation * fix(sdk-node): register instrumentations early [#3502](https://github.com/open-telemetry/opentelemetry-js/pull/3502) @flarna * fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna diff --git a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json index ae47403334..22887f7b0a 100644 --- a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json +++ b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json @@ -14,6 +14,21 @@ }, { "path": "../../../packages/opentelemetry-core" + }, + { + "path": "../../../packages/opentelemetry-resources" + }, + { + "path": "../../../packages/opentelemetry-sdk-trace-base" + }, + { + "path": "../otlp-exporter-base" + }, + { + "path": "../otlp-proto-exporter-base" + }, + { + "path": "../otlp-transformer" } ] } diff --git a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json index 5f6cf572d5..199ea3b325 100644 --- a/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json +++ b/experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json @@ -14,6 +14,21 @@ }, { "path": "../../../packages/opentelemetry-core" + }, + { + "path": "../../../packages/opentelemetry-resources" + }, + { + "path": "../../../packages/opentelemetry-sdk-trace-base" + }, + { + "path": "../otlp-exporter-base" + }, + { + "path": "../otlp-proto-exporter-base" + }, + { + "path": "../otlp-transformer" } ] } diff --git a/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json b/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json index ce8637cb82..d5c055a849 100644 --- a/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json +++ b/experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json @@ -16,6 +16,9 @@ }, { "path": "../../../packages/opentelemetry-core" + }, + { + "path": "../otlp-exporter-base" } ] } diff --git a/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json b/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json index 4a1cb2c30b..2eeda32b24 100644 --- a/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json +++ b/experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json @@ -8,7 +8,7 @@ }, "include": [ "src/**/*.ts", - "src/generated/*.js", + "src/generated/*.js" ], "references": [ { @@ -16,6 +16,9 @@ }, { "path": "../../../packages/opentelemetry-core" + }, + { + "path": "../otlp-exporter-base" } ] } diff --git a/tsconfig.esm.json b/tsconfig.esm.json index 3c3cb876dd..afd8742243 100644 --- a/tsconfig.esm.json +++ b/tsconfig.esm.json @@ -11,6 +11,9 @@ { "path": "experimental/packages/exporter-trace-otlp-http/tsconfig.esm.json" }, + { + "path": "experimental/packages/exporter-trace-otlp-proto/tsconfig.esm.json" + }, { "path": "experimental/packages/opentelemetry-browser-detector/tsconfig.esm.json" }, @@ -29,6 +32,9 @@ { "path": "experimental/packages/otlp-exporter-base/tsconfig.esm.json" }, + { + "path": "experimental/packages/otlp-proto-exporter-base/tsconfig.esm.json" + }, { "path": "experimental/packages/otlp-transformer/tsconfig.esm.json" }, diff --git a/tsconfig.esnext.json b/tsconfig.esnext.json index 63c1e27aa4..c826225f26 100644 --- a/tsconfig.esnext.json +++ b/tsconfig.esnext.json @@ -11,6 +11,9 @@ { "path": "experimental/packages/exporter-trace-otlp-http/tsconfig.esnext.json" }, + { + "path": "experimental/packages/exporter-trace-otlp-proto/tsconfig.esnext.json" + }, { "path": "experimental/packages/opentelemetry-browser-detector/tsconfig.esnext.json" }, @@ -29,6 +32,9 @@ { "path": "experimental/packages/otlp-exporter-base/tsconfig.esnext.json" }, + { + "path": "experimental/packages/otlp-proto-exporter-base/tsconfig.esnext.json" + }, { "path": "experimental/packages/otlp-transformer/tsconfig.esnext.json" }, From d1f9594d0c691a0422c0d56fc8243d84c32324e2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 27 Jan 2023 21:49:12 +0000 Subject: [PATCH 12/14] chore(deps): update dependency rimraf to v4 (#3532) Co-authored-by: Daniel Dyla --- experimental/packages/exporter-trace-otlp-grpc/package.json | 2 +- experimental/packages/exporter-trace-otlp-http/package.json | 2 +- experimental/packages/exporter-trace-otlp-proto/package.json | 2 +- .../opentelemetry-exporter-metrics-otlp-grpc/package.json | 2 +- .../opentelemetry-exporter-metrics-otlp-http/package.json | 2 +- .../opentelemetry-exporter-metrics-otlp-proto/package.json | 2 +- .../packages/opentelemetry-exporter-prometheus/package.json | 2 +- .../packages/opentelemetry-instrumentation-fetch/package.json | 2 +- .../packages/opentelemetry-instrumentation-grpc/package.json | 2 +- .../packages/opentelemetry-instrumentation-http/package.json | 2 +- .../opentelemetry-instrumentation-xml-http-request/package.json | 2 +- .../packages/opentelemetry-instrumentation/package.json | 2 +- experimental/packages/otlp-grpc-exporter-base/package.json | 2 +- experimental/packages/otlp-proto-exporter-base/package.json | 2 +- experimental/packages/otlp-transformer/package.json | 2 +- packages/opentelemetry-context-async-hooks/package.json | 2 +- packages/opentelemetry-context-zone-peer-dep/package.json | 2 +- packages/opentelemetry-context-zone/package.json | 2 +- packages/opentelemetry-core/package.json | 2 +- packages/opentelemetry-exporter-jaeger/package.json | 2 +- packages/opentelemetry-exporter-zipkin/package.json | 2 +- packages/opentelemetry-propagator-b3/package.json | 2 +- packages/opentelemetry-propagator-jaeger/package.json | 2 +- packages/opentelemetry-resources/package.json | 2 +- packages/opentelemetry-sdk-trace-base/package.json | 2 +- packages/opentelemetry-sdk-trace-node/package.json | 2 +- packages/opentelemetry-sdk-trace-web/package.json | 2 +- packages/opentelemetry-semantic-conventions/package.json | 2 +- packages/opentelemetry-shim-opentracing/package.json | 2 +- packages/sdk-metrics/package.json | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/experimental/packages/exporter-trace-otlp-grpc/package.json b/experimental/packages/exporter-trace-otlp-grpc/package.json index 46cc3ac3c9..d9e43e09a5 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/package.json +++ b/experimental/packages/exporter-trace-otlp-grpc/package.json @@ -58,7 +58,7 @@ "cpx": "1.5.0", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/exporter-trace-otlp-http/package.json b/experimental/packages/exporter-trace-otlp-http/package.json index b1e0be41c7..f5720ba500 100644 --- a/experimental/packages/exporter-trace-otlp-http/package.json +++ b/experimental/packages/exporter-trace-otlp-http/package.json @@ -81,7 +81,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/exporter-trace-otlp-proto/package.json b/experimental/packages/exporter-trace-otlp-proto/package.json index 1bea38c34f..5404c19d07 100644 --- a/experimental/packages/exporter-trace-otlp-proto/package.json +++ b/experimental/packages/exporter-trace-otlp-proto/package.json @@ -71,7 +71,7 @@ "cpx": "1.5.0", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json index 3211e4e20f..fc331adc3a 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json @@ -57,7 +57,7 @@ "cpx": "1.5.0", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json index acbea110fe..b7a22b0580 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json @@ -81,7 +81,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json index 742f0ef098..cfffa241ff 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json @@ -56,7 +56,7 @@ "cpx": "1.5.0", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-exporter-prometheus/package.json b/experimental/packages/opentelemetry-exporter-prometheus/package.json index 020fb4233e..ebb460276d 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/package.json +++ b/experimental/packages/opentelemetry-exporter-prometheus/package.json @@ -51,7 +51,7 @@ "codecov": "3.8.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/package.json b/experimental/packages/opentelemetry-instrumentation-fetch/package.json index 99d90251d5..9dbaacd237 100644 --- a/experimental/packages/opentelemetry-instrumentation-fetch/package.json +++ b/experimental/packages/opentelemetry-instrumentation-fetch/package.json @@ -74,7 +74,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/package.json b/experimental/packages/opentelemetry-instrumentation-grpc/package.json index c66861143c..ecb0891d77 100644 --- a/experimental/packages/opentelemetry-instrumentation-grpc/package.json +++ b/experimental/packages/opentelemetry-instrumentation-grpc/package.json @@ -61,7 +61,7 @@ "mocha": "10.0.0", "node-pre-gyp": "0.17.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "semver": "7.3.5", "sinon": "15.0.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-instrumentation-http/package.json b/experimental/packages/opentelemetry-instrumentation-http/package.json index 0cc0414c89..da3da4412f 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/package.json +++ b/experimental/packages/opentelemetry-instrumentation-http/package.json @@ -63,7 +63,7 @@ "nyc": "15.1.0", "request": "2.88.2", "request-promise-native": "1.0.9", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "superagent": "8.0.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json index 04faf9af92..e9df68a706 100644 --- a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json +++ b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json @@ -74,7 +74,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/opentelemetry-instrumentation/package.json b/experimental/packages/opentelemetry-instrumentation/package.json index cdab1c1192..00d787d530 100644 --- a/experimental/packages/opentelemetry-instrumentation/package.json +++ b/experimental/packages/opentelemetry-instrumentation/package.json @@ -97,7 +97,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/otlp-grpc-exporter-base/package.json b/experimental/packages/otlp-grpc-exporter-base/package.json index a75b6c9ca4..19c799ddb6 100644 --- a/experimental/packages/otlp-grpc-exporter-base/package.json +++ b/experimental/packages/otlp-grpc-exporter-base/package.json @@ -61,7 +61,7 @@ "cpx": "1.5.0", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/otlp-proto-exporter-base/package.json b/experimental/packages/otlp-proto-exporter-base/package.json index c65efc5801..aeedeab199 100644 --- a/experimental/packages/otlp-proto-exporter-base/package.json +++ b/experimental/packages/otlp-proto-exporter-base/package.json @@ -67,7 +67,7 @@ "mocha": "10.0.0", "nyc": "15.1.0", "protobufjs-cli": "1.0.2", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/experimental/packages/otlp-transformer/package.json b/experimental/packages/otlp-transformer/package.json index cd1641edcc..1667e88cca 100644 --- a/experimental/packages/otlp-transformer/package.json +++ b/experimental/packages/otlp-transformer/package.json @@ -69,7 +69,7 @@ "mkdirp": "2.1.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", "typescript": "4.4.4", diff --git a/packages/opentelemetry-context-async-hooks/package.json b/packages/opentelemetry-context-async-hooks/package.json index 99fbbd1984..8994955e2c 100644 --- a/packages/opentelemetry-context-async-hooks/package.json +++ b/packages/opentelemetry-context-async-hooks/package.json @@ -50,7 +50,7 @@ "codecov": "3.8.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "ts-mocha": "10.0.0", "typescript": "4.4.4" }, diff --git a/packages/opentelemetry-context-zone-peer-dep/package.json b/packages/opentelemetry-context-zone-peer-dep/package.json index 842beda518..c67006dd05 100644 --- a/packages/opentelemetry-context-zone-peer-dep/package.json +++ b/packages/opentelemetry-context-zone-peer-dep/package.json @@ -71,7 +71,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-context-zone/package.json b/packages/opentelemetry-context-zone/package.json index 5f5cd308af..097b7c81e3 100644 --- a/packages/opentelemetry-context-zone/package.json +++ b/packages/opentelemetry-context-zone/package.json @@ -64,7 +64,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-core/package.json b/packages/opentelemetry-core/package.json index 9c65520b56..e8bc5a0917 100644 --- a/packages/opentelemetry-core/package.json +++ b/packages/opentelemetry-core/package.json @@ -80,7 +80,7 @@ "lerna": "6.0.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json index ae60076423..f347f2199f 100644 --- a/packages/opentelemetry-exporter-jaeger/package.json +++ b/packages/opentelemetry-exporter-jaeger/package.json @@ -53,7 +53,7 @@ "mocha": "10.0.0", "nock": "13.0.11", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json index 558606dad3..3a8ee9d9a6 100644 --- a/packages/opentelemetry-exporter-zipkin/package.json +++ b/packages/opentelemetry-exporter-zipkin/package.json @@ -78,7 +78,7 @@ "mocha": "10.0.0", "nock": "13.0.11", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-propagator-b3/package.json b/packages/opentelemetry-propagator-b3/package.json index a4800b8f8b..b222af6472 100644 --- a/packages/opentelemetry-propagator-b3/package.json +++ b/packages/opentelemetry-propagator-b3/package.json @@ -64,7 +64,7 @@ "istanbul-instrumenter-loader": "3.0.1", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" diff --git a/packages/opentelemetry-propagator-jaeger/package.json b/packages/opentelemetry-propagator-jaeger/package.json index e47bb04e3b..030a14d54c 100644 --- a/packages/opentelemetry-propagator-jaeger/package.json +++ b/packages/opentelemetry-propagator-jaeger/package.json @@ -69,7 +69,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-resources/package.json b/packages/opentelemetry-resources/package.json index c6177a592d..6f9dc03473 100644 --- a/packages/opentelemetry-resources/package.json +++ b/packages/opentelemetry-resources/package.json @@ -77,7 +77,7 @@ "mocha": "10.0.0", "nock": "13.0.11", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4", diff --git a/packages/opentelemetry-sdk-trace-base/package.json b/packages/opentelemetry-sdk-trace-base/package.json index c7ffaa8f30..c3e7b93239 100644 --- a/packages/opentelemetry-sdk-trace-base/package.json +++ b/packages/opentelemetry-sdk-trace-base/package.json @@ -80,7 +80,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json index f49cf4c553..108d8c975b 100644 --- a/packages/opentelemetry-sdk-trace-node/package.json +++ b/packages/opentelemetry-sdk-trace-node/package.json @@ -55,7 +55,7 @@ "codecov": "3.8.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" diff --git a/packages/opentelemetry-sdk-trace-web/package.json b/packages/opentelemetry-sdk-trace-web/package.json index 4a456d43a6..b6c64e8974 100644 --- a/packages/opentelemetry-sdk-trace-web/package.json +++ b/packages/opentelemetry-sdk-trace-web/package.json @@ -78,7 +78,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-loader": "8.4.0", "ts-mocha": "10.0.0", diff --git a/packages/opentelemetry-semantic-conventions/package.json b/packages/opentelemetry-semantic-conventions/package.json index 8d091a5ce5..90faab299d 100644 --- a/packages/opentelemetry-semantic-conventions/package.json +++ b/packages/opentelemetry-semantic-conventions/package.json @@ -56,7 +56,7 @@ "mocha": "10.0.0", "nock": "13.0.11", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" diff --git a/packages/opentelemetry-shim-opentracing/package.json b/packages/opentelemetry-shim-opentracing/package.json index cd3beb16ab..7062f307ed 100644 --- a/packages/opentelemetry-shim-opentracing/package.json +++ b/packages/opentelemetry-shim-opentracing/package.json @@ -51,7 +51,7 @@ "codecov": "3.8.3", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "ts-mocha": "10.0.0", "typescript": "4.4.4" }, diff --git a/packages/sdk-metrics/package.json b/packages/sdk-metrics/package.json index 2112fa5514..3a4f653ac7 100644 --- a/packages/sdk-metrics/package.json +++ b/packages/sdk-metrics/package.json @@ -68,7 +68,7 @@ "karma-webpack": "4.0.2", "mocha": "10.0.0", "nyc": "15.1.0", - "rimraf": "3.0.2", + "rimraf": "4.1.2", "sinon": "15.0.0", "ts-mocha": "10.0.0", "typescript": "4.4.4" From 49787433b66a17a1788a20f3a7edda3aa2580890 Mon Sep 17 00:00:00 2001 From: Marcin Jahn Date: Mon, 30 Jan 2023 07:51:52 +0100 Subject: [PATCH 13/14] fix(http): remove outgoing headers normalization (#3557) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Daniel Dyla Co-authored-by: Gerhard Stöbich --- experimental/CHANGELOG.md | 1 + .../opentelemetry-instrumentation-http/src/utils.ts | 8 -------- .../test/functionals/http-enable.test.ts | 5 ----- .../test/functionals/https-enable.test.ts | 5 ----- 4 files changed, 1 insertion(+), 18 deletions(-) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 57eccab24b..2f3f725b6e 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to experimental packages in this project will be documented * Fixes an error where the generated JS files were not included in the esnext package due to a failure of the tsconfig generation * fix(sdk-node): register instrumentations early [#3502](https://github.com/open-telemetry/opentelemetry-js/pull/3502) @flarna * fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna +* fix(http) Remove outgoing headers normalization [#3557](https://github.com/open-telemetry/opentelemetry-js/pull/3557) @marcinjahn ### :books: (Refine Doc) diff --git a/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts b/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts index 4f91ad4cfd..c9a178653e 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/src/utils.ts @@ -276,14 +276,6 @@ export const getRequestInfo = ( origin = `${optionsParsed.protocol || 'http:'}//${hostname}`; } - const headers = optionsParsed.headers ?? {}; - optionsParsed.headers = Object.keys(headers).reduce( - (normalizedHeader, key) => { - normalizedHeader[key.toLowerCase()] = headers[key]; - return normalizedHeader; - }, - {} as OutgoingHttpHeaders - ); // some packages return method in lowercase.. // ensure upperCase for consistency const method = optionsParsed.method 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 fb10580739..9ebfe41c80 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 @@ -508,11 +508,6 @@ describe('HttpInstrumentation', () => { 'user-agent': testValue, }, }), - httpRequest.get(`${protocol}://${hostname}:${serverPort}`, { - headers: { - 'uSeR-aGeNt': testValue, - }, - }), ]); const spans = memoryExporter.getFinishedSpans(); assert.strictEqual(spans.length, 0); diff --git a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts index 8ca18c5e98..2f3af2aaeb 100644 --- a/experimental/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts +++ b/experimental/packages/opentelemetry-instrumentation-http/test/functionals/https-enable.test.ts @@ -460,11 +460,6 @@ describe('HttpsInstrumentation', () => { 'user-agent': testValue, }, }), - httpsRequest.get(`${protocol}://${hostname}:${serverPort}`, { - headers: { - 'uSeR-aGeNt': testValue, - }, - }), ]); const spans = memoryExporter.getFinishedSpans(); assert.strictEqual(spans.length, 0); From 279458e7ddf16f7ddca5fe60c78672e05fafce66 Mon Sep 17 00:00:00 2001 From: Daniel Dyla Date: Mon, 30 Jan 2023 08:43:13 -0500 Subject: [PATCH 14/14] Release 1.9.1 / 0.35.1 (#3573) * Release 1.9.1 / 0.35.1 * clean up unreleased changelog --- CHANGELOG.md | 11 +++++-- examples/https/package.json | 18 +++++------ examples/opentelemetry-web/package.json | 30 +++++++++---------- examples/otlp-exporter-node/package.json | 24 +++++++-------- experimental/CHANGELOG.md | 12 +++++--- .../node14/package.json | 6 ++-- .../node16/package.json | 6 ++-- experimental/examples/prometheus/package.json | 6 ++-- experimental/packages/api-logs/package.json | 2 +- .../exporter-trace-otlp-grpc/package.json | 14 ++++----- .../exporter-trace-otlp-http/package.json | 12 ++++---- .../exporter-trace-otlp-proto/package.json | 14 ++++----- .../package.json | 6 ++-- .../package.json | 14 ++++----- .../package.json | 12 ++++---- .../package.json | 16 +++++----- .../package.json | 10 +++---- .../package.json | 16 +++++----- .../package.json | 14 ++++----- .../package.json | 16 +++++----- .../package.json | 16 +++++----- .../package.json | 4 +-- .../opentelemetry-sdk-node/package.json | 28 ++++++++--------- .../packages/otlp-exporter-base/package.json | 4 +-- .../otlp-grpc-exporter-base/package.json | 12 ++++---- .../otlp-proto-exporter-base/package.json | 6 ++-- .../packages/otlp-transformer/package.json | 10 +++---- .../package.json | 8 ++--- .../package.json | 2 +- .../package.json | 2 +- .../opentelemetry-context-zone/package.json | 4 +-- packages/opentelemetry-core/package.json | 4 +-- .../package.json | 10 +++---- .../package.json | 10 +++---- .../opentelemetry-propagator-b3/package.json | 4 +-- .../package.json | 4 +-- packages/opentelemetry-resources/package.json | 6 ++-- .../opentelemetry-sdk-trace-base/package.json | 8 ++--- .../opentelemetry-sdk-trace-node/package.json | 16 +++++----- .../opentelemetry-sdk-trace-web/package.json | 14 ++++----- .../package.json | 2 +- .../package.json | 12 ++++---- packages/sdk-metrics/package.json | 6 ++-- packages/template/package.json | 2 +- selenium-tests/package.json | 22 +++++++------- 45 files changed, 242 insertions(+), 233 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91960a3c5b..8623279f76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,13 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ ### :rocket: (Enhancement) -* feat(sdk-metrics): add exponential histogram mapping functions [#3504](https://github.com/open-telemetry/opentelemetry-js/pull/3504) @mwear +### :bug: (Bug Fix) + +### :books: (Refine Doc) + +### :house: (Internal) + +## 1.9.1 ### :bug: (Bug Fix) @@ -20,11 +26,10 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/ [#3562](https://github.com/open-telemetry/opentelemetry-js/pull/3562) @scheler * fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna -### :books: (Refine Doc) - ### :house: (Internal) * chore: fix cross project links and missing implicitly exported types [#3533](https://github.com/open-telemetry/opentelemetry-js/pull/3533) @legendecas +* feat(sdk-metrics): add exponential histogram mapping functions [#3504](https://github.com/open-telemetry/opentelemetry-js/pull/3504) @mwear ## 1.9.0 diff --git a/examples/https/package.json b/examples/https/package.json index 944e31678c..1c5b2c3179 100644 --- a/examples/https/package.json +++ b/examples/https/package.json @@ -1,7 +1,7 @@ { "name": "https-example", "private": true, - "version": "0.35.0", + "version": "0.35.1", "description": "Example of HTTPs integration with OpenTelemetry", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -33,14 +33,14 @@ }, "dependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/exporter-jaeger": "1.9.0", - "@opentelemetry/exporter-zipkin": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/instrumentation-http": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-node": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/exporter-jaeger": "1.9.1", + "@opentelemetry/exporter-zipkin": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/instrumentation-http": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-node": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/https", "devDependencies": { diff --git a/examples/opentelemetry-web/package.json b/examples/opentelemetry-web/package.json index 42f011e15c..4967b0eeff 100644 --- a/examples/opentelemetry-web/package.json +++ b/examples/opentelemetry-web/package.json @@ -1,7 +1,7 @@ { "name": "web-opentelemetry-example", "private": true, - "version": "0.35.0", + "version": "0.35.1", "description": "Example of using @opentelemetry/sdk-trace-web and @opentelemetry/sdk-metrics in browser", "main": "index.js", "scripts": { @@ -43,20 +43,20 @@ }, "dependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/context-zone": "1.9.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.35.0", - "@opentelemetry/exporter-trace-otlp-http": "0.35.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.35.0", - "@opentelemetry/exporter-zipkin": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/instrumentation-fetch": "0.35.0", - "@opentelemetry/instrumentation-xml-http-request": "0.35.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-web": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/context-zone": "1.9.1", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.35.1", + "@opentelemetry/exporter-trace-otlp-http": "0.35.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.35.1", + "@opentelemetry/exporter-zipkin": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/instrumentation-fetch": "0.35.1", + "@opentelemetry/instrumentation-xml-http-request": "0.35.1", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-web": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web" } diff --git a/examples/otlp-exporter-node/package.json b/examples/otlp-exporter-node/package.json index 7eee8b3479..67425a5379 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.35.0", + "version": "0.35.1", "description": "Example of using @opentelemetry/collector-exporter in Node.js", "main": "index.js", "scripts": { @@ -29,17 +29,17 @@ }, "dependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-metrics-otlp-grpc": "0.35.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.35.0", - "@opentelemetry/exporter-metrics-otlp-proto": "0.35.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.35.0", - "@opentelemetry/exporter-trace-otlp-http": "0.35.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.35.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.35.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.35.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.35.1", + "@opentelemetry/exporter-trace-otlp-http": "0.35.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/otlp-exporter-node" } diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 2f3f725b6e..8d34640976 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -10,16 +10,20 @@ All notable changes to experimental packages in this project will be documented ### :bug: (Bug Fix) +### :books: (Refine Doc) + +### :house: (Internal) + +## 0.35.1 + +### :bug: (Bug Fix) + * fix: remove JSON syntax error and regenerate tsconfig files [#3566](https://github.com/open-telemetry/opentelemetry-js/pull/3566) @Flarna * Fixes an error where the generated JS files were not included in the esnext package due to a failure of the tsconfig generation * fix(sdk-node): register instrumentations early [#3502](https://github.com/open-telemetry/opentelemetry-js/pull/3502) @flarna * fix: include tracestate in export [#3569](https://github.com/open-telemetry/opentelemetry-js/pull/3569) @flarna * fix(http) Remove outgoing headers normalization [#3557](https://github.com/open-telemetry/opentelemetry-js/pull/3557) @marcinjahn -### :books: (Refine Doc) - -### :house: (Internal) - ## 0.35.0 ### :rocket: (Enhancement) diff --git a/experimental/backwards-compatability/node14/package.json b/experimental/backwards-compatability/node14/package.json index 1479ec527b..1d40058ead 100644 --- a/experimental/backwards-compatability/node14/package.json +++ b/experimental/backwards-compatability/node14/package.json @@ -1,6 +1,6 @@ { "name": "backcompat-node14", - "version": "0.35.0", + "version": "0.35.1", "private": true, "description": "Backwards compatability app for node 14 types and the OpenTelemetry Node.js SDK", "main": "index.js", @@ -9,8 +9,8 @@ "peer-api-check": "node ../../../scripts/peer-api-check.js" }, "dependencies": { - "@opentelemetry/sdk-node": "0.35.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/sdk-node": "0.35.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "devDependencies": { "@types/node": "14.18.25", diff --git a/experimental/backwards-compatability/node16/package.json b/experimental/backwards-compatability/node16/package.json index c25735166c..25e8e60913 100644 --- a/experimental/backwards-compatability/node16/package.json +++ b/experimental/backwards-compatability/node16/package.json @@ -1,6 +1,6 @@ { "name": "backcompat-node16", - "version": "0.35.0", + "version": "0.35.1", "private": true, "description": "Backwards compatability app for node 16 types and the OpenTelemetry Node.js SDK", "main": "index.js", @@ -9,8 +9,8 @@ "peer-api-check": "node ../../../scripts/peer-api-check.js" }, "dependencies": { - "@opentelemetry/sdk-node": "0.35.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/sdk-node": "0.35.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "devDependencies": { "@types/node": "16.11.52", diff --git a/experimental/examples/prometheus/package.json b/experimental/examples/prometheus/package.json index f5a991d5bb..a649056fa3 100644 --- a/experimental/examples/prometheus/package.json +++ b/experimental/examples/prometheus/package.json @@ -1,6 +1,6 @@ { "name": "prometheus-example", - "version": "0.35.0", + "version": "0.35.1", "private": true, "description": "Example of using @opentelemetry/sdk-metrics and @opentelemetry/exporter-prometheus", "main": "index.js", @@ -11,7 +11,7 @@ "license": "Apache-2.0", "dependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/exporter-prometheus": "0.35.0", - "@opentelemetry/sdk-metrics": "1.9.0" + "@opentelemetry/exporter-prometheus": "0.35.1", + "@opentelemetry/sdk-metrics": "1.9.1" } } diff --git a/experimental/packages/api-logs/package.json b/experimental/packages/api-logs/package.json index 822949a3db..7f6f846e2f 100644 --- a/experimental/packages/api-logs/package.json +++ b/experimental/packages/api-logs/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/api-logs", - "version": "0.35.0", + "version": "0.35.1", "description": "Public logs API for OpenTelemetry", "main": "build/src/index.js", "module": "build/esm/index.js", diff --git a/experimental/packages/exporter-trace-otlp-grpc/package.json b/experimental/packages/exporter-trace-otlp-grpc/package.json index d9e43e09a5..4600780b4a 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.35.0", + "version": "0.35.1", "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", @@ -50,7 +50,7 @@ "@babel/core": "7.16.0", "@grpc/proto-loader": "^0.7.3", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", + "@opentelemetry/otlp-exporter-base": "0.35.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -69,11 +69,11 @@ }, "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-grpc", "sideEffects": false diff --git a/experimental/packages/exporter-trace-otlp-http/package.json b/experimental/packages/exporter-trace-otlp-http/package.json index f5720ba500..90ac43cab7 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.35.0", + "version": "0.35.1", "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", @@ -94,11 +94,11 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-http", "sideEffects": false diff --git a/experimental/packages/exporter-trace-otlp-proto/package.json b/experimental/packages/exporter-trace-otlp-proto/package.json index 5404c19d07..920f533084 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector using protobuf over HTTP", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -81,12 +81,12 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", - "@opentelemetry/otlp-proto-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-exporter-base": "0.35.1", + "@opentelemetry/otlp-proto-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-proto", "sideEffects": false diff --git a/experimental/packages/opentelemetry-browser-detector/package.json b/experimental/packages/opentelemetry-browser-detector/package.json index a04c6cf78b..a1b604d274 100644 --- a/experimental/packages/opentelemetry-browser-detector/package.json +++ b/experimental/packages/opentelemetry-browser-detector/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/opentelemetry-browser-detector", - "version": "0.35.0", + "version": "0.35.1", "description": "OpenTelemetry Resource Detector for Browser", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -70,8 +70,8 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/browser-detector" } diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/package.json index fc331adc3a..ddefef4862 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.35.0", + "version": "0.35.1", "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", @@ -68,12 +68,12 @@ }, "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.35.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.35.1", + "@opentelemetry/otlp-grpc-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc", "sideEffects": false diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/package.json index b7a22b0580..01c9e5f742 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.35.0", + "version": "0.35.1", "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", @@ -94,11 +94,11 @@ "@opentelemetry/api": "^1.3.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-http", "sideEffects": false diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/package.json index cfffa241ff..df98d761fa 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.35.0", + "version": "0.35.1", "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", @@ -66,13 +66,13 @@ "@opentelemetry/api": "^1.3.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.35.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", - "@opentelemetry/otlp-proto-exporter-base": "0.35.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-metrics-otlp-http": "0.35.1", + "@opentelemetry/otlp-exporter-base": "0.35.1", + "@opentelemetry/otlp-proto-exporter-base": "0.35.1", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-proto", "sideEffects": false diff --git a/experimental/packages/opentelemetry-exporter-prometheus/package.json b/experimental/packages/opentelemetry-exporter-prometheus/package.json index ebb460276d..685ea68a1e 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry Exporter Prometheus provides a metrics endpoint for Prometheus", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -44,7 +44,7 @@ }, "devDependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/semantic-conventions": "1.9.0", + "@opentelemetry/semantic-conventions": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -60,9 +60,9 @@ "@opentelemetry/api": "^1.3.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus", "sideEffects": false diff --git a/experimental/packages/opentelemetry-instrumentation-fetch/package.json b/experimental/packages/opentelemetry-instrumentation-fetch/package.json index 9dbaacd237..7e3a2719a8 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry fetch automatic instrumentation package.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -56,9 +56,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-zone": "1.9.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/context-zone": "1.9.1", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -87,10 +87,10 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/sdk-trace-web": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/sdk-trace-web": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-fetch", "sideEffects": false diff --git a/experimental/packages/opentelemetry-instrumentation-grpc/package.json b/experimental/packages/opentelemetry-instrumentation-grpc/package.json index ecb0891d77..5bc49bcc37 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry grpc automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -48,10 +48,10 @@ "@grpc/grpc-js": "^1.7.1", "@grpc/proto-loader": "^0.7.3", "@opentelemetry/api": "^1.3.0", - "@opentelemetry/context-async-hooks": "1.9.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-node": "1.9.0", + "@opentelemetry/context-async-hooks": "1.9.1", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-node": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/semver": "7.3.9", @@ -71,8 +71,8 @@ "@opentelemetry/api": "^1.3.0" }, "dependencies": { - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-grpc", "sideEffects": false diff --git a/experimental/packages/opentelemetry-instrumentation-http/package.json b/experimental/packages/opentelemetry-instrumentation-http/package.json index da3da4412f..7cae297fe3 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry http/https automatic instrumentation package.", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -46,10 +46,10 @@ }, "devDependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/context-async-hooks": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-node": "1.9.0", + "@opentelemetry/context-async-hooks": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-node": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/request-promise-native": "1.0.18", @@ -73,9 +73,9 @@ "@opentelemetry/api": "^1.3.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/semantic-conventions": "1.9.0", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/semantic-conventions": "1.9.1", "semver": "^7.3.5" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http", diff --git a/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json b/experimental/packages/opentelemetry-instrumentation-xml-http-request/package.json index e9df68a706..99813efd39 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry XMLHttpRequest automatic instrumentation package.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -56,9 +56,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-zone": "1.9.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/context-zone": "1.9.1", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -87,10 +87,10 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/sdk-trace-web": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/sdk-trace-web": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-xml-http-request", "sideEffects": false diff --git a/experimental/packages/opentelemetry-instrumentation/package.json b/experimental/packages/opentelemetry-instrumentation/package.json index 00d787d530..05cc761e75 100644 --- a/experimental/packages/opentelemetry-instrumentation/package.json +++ b/experimental/packages/opentelemetry-instrumentation/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/instrumentation", - "version": "0.35.0", + "version": "0.35.1", "description": "Base class for node which OpenTelemetry instrumentation modules extend", "author": "OpenTelemetry Authors", "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation", @@ -78,7 +78,7 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.3.0", - "@opentelemetry/sdk-metrics": "1.9.0", + "@opentelemetry/sdk-metrics": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/semver": "7.3.9", diff --git a/experimental/packages/opentelemetry-sdk-node/package.json b/experimental/packages/opentelemetry-sdk-node/package.json index 4388986fb3..bb629ad0b5 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry SDK for Node.js", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -44,25 +44,25 @@ "access": "public" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-jaeger": "1.9.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.35.0", - "@opentelemetry/exporter-trace-otlp-http": "0.35.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.35.0", - "@opentelemetry/exporter-zipkin": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-node": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-jaeger": "1.9.1", + "@opentelemetry/exporter-trace-otlp-grpc": "0.35.1", + "@opentelemetry/exporter-trace-otlp-http": "0.35.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.35.1", + "@opentelemetry/exporter-zipkin": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-node": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.3.0 <1.5.0" }, "devDependencies": { "@opentelemetry/api": ">=1.3.0 <1.5.0", - "@opentelemetry/context-async-hooks": "1.9.0", + "@opentelemetry/context-async-hooks": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/semver": "7.3.9", diff --git a/experimental/packages/otlp-exporter-base/package.json b/experimental/packages/otlp-exporter-base/package.json index 52435a0dfd..22c390b1bb 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry OTLP Exporter base (for internal use only)", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -61,7 +61,7 @@ "access": "public" }, "dependencies": { - "@opentelemetry/core": "1.9.0" + "@opentelemetry/core": "1.9.1" }, "devDependencies": { "@opentelemetry/api": "^1.0.0", diff --git a/experimental/packages/otlp-grpc-exporter-base/package.json b/experimental/packages/otlp-grpc-exporter-base/package.json index 19c799ddb6..c64506e064 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry OTLP-gRPC Exporter base (for internal use only)", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -51,9 +51,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": "^1.0.0", - "@opentelemetry/otlp-transformer": "0.35.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/otlp-transformer": "0.35.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -73,8 +73,8 @@ "dependencies": { "@grpc/grpc-js": "^1.7.1", "@grpc/proto-loader": "^0.7.3", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-exporter-base": "0.35.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-exporter-base": "0.35.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-grpc-exporter-base", "sideEffects": false diff --git a/experimental/packages/otlp-proto-exporter-base/package.json b/experimental/packages/otlp-proto-exporter-base/package.json index aeedeab199..a3ae550587 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.35.0", + "version": "0.35.1", "description": "OpenTelemetry OTLP-HTTP-protobuf Exporter base (for internal use only)", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -77,8 +77,8 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/otlp-exporter-base": "0.35.0", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/otlp-exporter-base": "0.35.1", "protobufjs": "^7.1.2" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-proto-exporter-base", diff --git a/experimental/packages/otlp-transformer/package.json b/experimental/packages/otlp-transformer/package.json index 1667e88cca..d4596fddba 100644 --- a/experimental/packages/otlp-transformer/package.json +++ b/experimental/packages/otlp-transformer/package.json @@ -4,7 +4,7 @@ "publishConfig": { "access": "public" }, - "version": "0.35.0", + "version": "0.35.1", "description": "Transform OpenTelemetry SDK data into OTLP", "module": "build/esm/index.js", "esnext": "build/esnext/index.js", @@ -76,10 +76,10 @@ "webpack": "4.46.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-transformer", "sideEffects": false diff --git a/integration-tests/propagation-validation-server/package.json b/integration-tests/propagation-validation-server/package.json index 8e102338ea..e49ef1ac83 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.9.0", + "version": "1.9.1", "description": "server for w3c tests", "main": "validation_server.js", "private": true, @@ -12,9 +12,9 @@ }, "dependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/context-async-hooks": "1.9.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/context-async-hooks": "1.9.1", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "axios": "0.24.0", "body-parser": "1.19.0", "express": "4.17.3" diff --git a/packages/opentelemetry-context-async-hooks/package.json b/packages/opentelemetry-context-async-hooks/package.json index 8994955e2c..c44f6ea93c 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry AsyncHooks-based Context Manager", "main": "build/src/index.js", "types": "build/src/index.d.ts", diff --git a/packages/opentelemetry-context-zone-peer-dep/package.json b/packages/opentelemetry-context-zone-peer-dep/package.json index c67006dd05..ff1f4aa78f 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Context Zone with peer dependency for zone.js", "main": "build/src/index.js", "module": "build/esm/index.js", diff --git a/packages/opentelemetry-context-zone/package.json b/packages/opentelemetry-context-zone/package.json index 097b7c81e3..b31be1757c 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Context Zone", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -74,7 +74,7 @@ "webpack-merge": "5.8.0" }, "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.9.0", + "@opentelemetry/context-zone-peer-dep": "1.9.1", "zone.js": "^0.11.0" }, "sideEffects": true, diff --git a/packages/opentelemetry-core/package.json b/packages/opentelemetry-core/package.json index e8bc5a0917..f9cd044ce6 100644 --- a/packages/opentelemetry-core/package.json +++ b/packages/opentelemetry-core/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/core", - "version": "1.9.0", + "version": "1.9.1", "description": "OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -91,7 +91,7 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core", "sideEffects": false diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json index f347f2199f..fbfbf01170 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -45,7 +45,7 @@ }, "devDependencies": { "@opentelemetry/api": "^1.0.0", - "@opentelemetry/resources": "1.9.0", + "@opentelemetry/resources": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/sinon": "10.0.13", @@ -62,9 +62,9 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1", "jaeger-client": "^3.15.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-jaeger", diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json index 3a8ee9d9a6..76a0bbc4d7 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Zipkin Exporter allows the user to send collected traces to Zipkin.", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -91,10 +91,10 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin", "sideEffects": false diff --git a/packages/opentelemetry-propagator-b3/package.json b/packages/opentelemetry-propagator-b3/package.json index b222af6472..f9d3cad28d 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.9.0", + "version": "1.9.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", @@ -51,7 +51,7 @@ "access": "public" }, "dependencies": { - "@opentelemetry/core": "1.9.0" + "@opentelemetry/core": "1.9.1" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.5.0" diff --git a/packages/opentelemetry-propagator-jaeger/package.json b/packages/opentelemetry-propagator-jaeger/package.json index 030a14d54c..32bc7760cf 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.9.0", + "version": "1.9.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", @@ -80,7 +80,7 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0" + "@opentelemetry/core": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-propagator-jaeger", "sideEffects": false diff --git a/packages/opentelemetry-resources/package.json b/packages/opentelemetry-resources/package.json index 6f9dc03473..59c1054cb2 100644 --- a/packages/opentelemetry-resources/package.json +++ b/packages/opentelemetry-resources/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/resources", - "version": "1.9.0", + "version": "1.9.1", "description": "OpenTelemetry SDK resources", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -89,8 +89,8 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources", "sideEffects": false diff --git a/packages/opentelemetry-sdk-trace-base/package.json b/packages/opentelemetry-sdk-trace-base/package.json index c3e7b93239..b0f0967ead 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Tracing", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -91,9 +91,9 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-base", "sideEffects": false diff --git a/packages/opentelemetry-sdk-trace-node/package.json b/packages/opentelemetry-sdk-trace-node/package.json index 108d8c975b..53a01967b3 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.9.0", + "version": "1.9.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", @@ -46,8 +46,8 @@ }, "devDependencies": { "@opentelemetry/api": ">=1.0.0 <1.5.0", - "@opentelemetry/resources": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0", + "@opentelemetry/resources": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "@types/semver": "7.3.9", @@ -64,11 +64,11 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/context-async-hooks": "1.9.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/propagator-jaeger": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/context-async-hooks": "1.9.1", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/propagator-jaeger": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "semver": "^7.3.5" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node", diff --git a/packages/opentelemetry-sdk-trace-web/package.json b/packages/opentelemetry-sdk-trace-web/package.json index b6c64e8974..285ac03779 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry Web Tracer", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -57,9 +57,9 @@ "devDependencies": { "@babel/core": "7.16.0", "@opentelemetry/api": ">=1.0.0 <1.5.0", - "@opentelemetry/context-zone": "1.9.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/resources": "1.9.0", + "@opentelemetry/context-zone": "1.9.1", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/resources": "1.9.1", "@types/jquery": "3.5.8", "@types/mocha": "10.0.0", "@types/node": "18.6.5", @@ -91,9 +91,9 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0" + "@opentelemetry/core": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-web", "sideEffects": false diff --git a/packages/opentelemetry-semantic-conventions/package.json b/packages/opentelemetry-semantic-conventions/package.json index 90faab299d..7887147efc 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.9.0", + "version": "1.9.1", "description": "OpenTelemetry semantic conventions", "main": "build/src/index.js", "module": "build/esm/index.js", diff --git a/packages/opentelemetry-shim-opentracing/package.json b/packages/opentelemetry-shim-opentracing/package.json index 7062f307ed..1262559717 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.9.0", + "version": "1.9.1", "description": "OpenTracing to OpenTelemetry shim", "main": "build/src/index.js", "types": "build/src/index.d.ts", @@ -43,9 +43,9 @@ }, "devDependencies": { "@opentelemetry/api": ">=1.0.0 <1.5.0", - "@opentelemetry/propagator-b3": "1.9.0", - "@opentelemetry/propagator-jaeger": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", + "@opentelemetry/propagator-b3": "1.9.1", + "@opentelemetry/propagator-jaeger": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", "@types/mocha": "10.0.0", "@types/node": "18.6.5", "codecov": "3.8.3", @@ -59,8 +59,8 @@ "@opentelemetry/api": ">=1.0.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/semantic-conventions": "1.9.0", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/semantic-conventions": "1.9.1", "opentracing": "^0.14.4" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-shim-opentracing", diff --git a/packages/sdk-metrics/package.json b/packages/sdk-metrics/package.json index 3a4f653ac7..bcd67dfb2a 100644 --- a/packages/sdk-metrics/package.json +++ b/packages/sdk-metrics/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/sdk-metrics", - "version": "1.9.0", + "version": "1.9.1", "description": "OpenTelemetry metrics SDK", "main": "build/src/index.js", "module": "build/esm/index.js", @@ -77,8 +77,8 @@ "@opentelemetry/api": ">=1.3.0 <1.5.0" }, "dependencies": { - "@opentelemetry/core": "1.9.0", - "@opentelemetry/resources": "1.9.0", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/resources": "1.9.1", "lodash.merge": "4.6.2" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics", diff --git a/packages/template/package.json b/packages/template/package.json index 3f0e9e70c7..ff6de03cfb 100644 --- a/packages/template/package.json +++ b/packages/template/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/template", - "version": "1.9.0", + "version": "1.9.1", "private": true, "publishConfig": { "access": "restricted" diff --git a/selenium-tests/package.json b/selenium-tests/package.json index 388d4ccadf..be4f1d42a1 100644 --- a/selenium-tests/package.json +++ b/selenium-tests/package.json @@ -1,6 +1,6 @@ { "name": "@opentelemetry/selenium-tests", - "version": "1.9.0", + "version": "1.9.1", "private": true, "description": "OpenTelemetry Selenium Tests", "main": "index.js", @@ -56,16 +56,16 @@ "@opentelemetry/api": "^1.0.0" }, "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.9.0", - "@opentelemetry/core": "1.9.0", - "@opentelemetry/exporter-trace-otlp-http": "0.35.0", - "@opentelemetry/exporter-zipkin": "1.9.0", - "@opentelemetry/instrumentation": "0.35.0", - "@opentelemetry/instrumentation-fetch": "0.35.0", - "@opentelemetry/instrumentation-xml-http-request": "0.35.0", - "@opentelemetry/sdk-metrics": "1.9.0", - "@opentelemetry/sdk-trace-base": "1.9.0", - "@opentelemetry/sdk-trace-web": "1.9.0", + "@opentelemetry/context-zone-peer-dep": "1.9.1", + "@opentelemetry/core": "1.9.1", + "@opentelemetry/exporter-trace-otlp-http": "0.35.1", + "@opentelemetry/exporter-zipkin": "1.9.1", + "@opentelemetry/instrumentation": "0.35.1", + "@opentelemetry/instrumentation-fetch": "0.35.1", + "@opentelemetry/instrumentation-xml-http-request": "0.35.1", + "@opentelemetry/sdk-metrics": "1.9.1", + "@opentelemetry/sdk-trace-base": "1.9.1", + "@opentelemetry/sdk-trace-web": "1.9.1", "zone.js": "0.11.4" } }