Update `next` branch (#4294)

* chore: track package-lock.json (#4238)

* chore: track package-lock.json

* Pin to old versions for node 14

* Use version range

* Remove unused cached directories

* Temporarily disable other tests

* Temporarily enable only api test

* Enable only some packages

* Test only api packages

* Test trace exporters

* Fix line ordering

* Test all packages except otlp exporters

* Add trace http exporter

* Add trace proto exporter

* Test all but grpc exporters

* chore: use npm workspaces and degrade lerna to v6

* chore: get rid of lerna bootstrap

* chore: use npx

* chore: allow install scripts to setup buf

* chore: fix w3c-integration-test cache key

* chore: fix cache key

* chore: disable resource compat test

* chore: fix node_modules assumptions

* chore: fix hoisted karma issue

* chore: fix markdown linter complaints

* chore: lock @grpc/grpc-js to v1.8.21

* Break caches

* chore: remove cache

* chore: fixup inline commands

---------

Co-authored-by: Daniel Dyla <dyladan@users.noreply.github.com>

* docs: fixed link to benchmark results (#4233)

Co-authored-by: Chengzhong Wu <legendecas@gmail.com>

* chore(deps): update all patch versions (#4215)

* fix: otlp json encoding (#4220)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* fix: remove duplicate export star from version.ts (#4225)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* docs: fix sdk-node config instructions (#4249)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* feat(api): publish api esnext target (#4231)

* chore: release API 1.7.0/Core 1.18.0/Experimental 0.45.0 (#4254)

* fix(sdk-metrics): hand-roll MetricAdvice type as older API versions do not include it (#4260)

* chore: prepare release 1.18.1/0.45.1 (#4261)

* chore: no need for 'packages' in "lerna.json" (#4264)

* Benchmark tests for trace OTLP transform and BatchSpanProcessor (#4218)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* chore: type reference on zone.js (#4257)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* docs: add docker-compose to run prometheus for the experimental example (#4268)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* fix(sdk-logs): avoid map attribute set when count limit exceeded (#4195)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

* chore(deps): update dependency chromedriver to v119 [security] (#4280)

* chore(deps): update actions/setup-node action to v4 (#4236)

* fix(sdk-trace-base): processor onStart called with a span having empty attributes (#4277)

Co-authored-by: artahmetaj <artahmetaj@yahoo.com>

* Update fetch instrumentation to be runtime agnostic (#4063)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>

---------

Co-authored-by: Chengzhong Wu <legendecas@gmail.com>
Co-authored-by: Martin Kuba <martin@martinkuba.com>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Siim Kallas <siimkallas@gmail.com>
Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>
Co-authored-by: David Luna <david.luna@elastic.co>
Co-authored-by: Dinko Osrecki <dinko.osrecki@emarsys.com>
Co-authored-by: Trent Mick <trentm@gmail.com>
Co-authored-by: François <32224751+Lp-Francois@users.noreply.github.com>
Co-authored-by: Hyun Oh <hyunnoh01@gmail.com>
Co-authored-by: André Cruz <andremiguelcruz@msn.com>
Co-authored-by: artahmetaj <artahmetaj@yahoo.com>
Co-authored-by: drewcorlin1 <82601620+drewcorlin1@users.noreply.github.com>
This commit is contained in:
Daniel Dyla 2023-11-15 11:15:51 -05:00 committed by GitHub
parent 1c7d7a3542
commit 0f8aa7924f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
126 changed files with 64947 additions and 1145 deletions

View File

@ -19,33 +19,17 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
- run: npm install -g npm@latest
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: node-tests-${{ runner.os }}-${{ matrix.node_version }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js' --ignore @opentelemetry/selenium-tests
run: npm ci
- name: Build 🔧
run: |
npm run compile
run: npm run compile
- name: Benchmark tests
run: |

View File

@ -11,35 +11,13 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: restore lock files
uses: actions/cache@master # must use unreleased master to cache multiple paths
id: cache
with:
# must be done before bootstrap to not include node_modules files in the cache paths
path: |
package-lock.json
packages/*/package-lock.json
backwards-compatibility/*/package-lock.json
metapackages/*/package-lock.json
packages/*/package-lock.json
integration-tests/*/package-lock.json
key: ${{ runner.os }}-unit_test-${{ matrix.node_version }}-${{ hashFiles('**/package.json') }}
- name: Install and Build (cache miss) 🔧
if: steps.cache.outputs.cache-hit != 'true'
- name: Install and Build 🔧
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js'
npm run compile
- name: Install and Build (cache hit) 🔧
if: steps.cache.outputs.cache-hit == 'true'
run: |
npm ci --ignore-scripts
npx lerna bootstrap --hoist --nohoist='zone.js'
npm ci
npm run compile
- name: Build Docs

View File

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '16'
@ -34,24 +34,8 @@ jobs:
args: "./**/*.md"
ignore: './CHANGELOG.md ./experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/protos ./experimental/packages/opentelemetry-exporter-metrics-otlp-proto/protos ./packages/exporter-trace-otlp-grpc/protos ./packages/exporter-trace-otlp-proto/protos'
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: lint-${{ runner.os }}-${{ matrix.node_version }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04142022
# On a cache miss, install dependencies
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js'
run: npm ci
- name: Lint
run: |

View File

@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v4
- name: Install lerna
run: npm install -g lerna
run: npm install -g lerna@6.6.2
- name: Install semver
run: npm install semver

View File

@ -22,7 +22,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
@ -33,31 +33,11 @@ jobs:
- run: npm install -g npm@"<10.0.0"
if: ${{ matrix.node_version == '14' || matrix.node_version == '16' }}
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: node-tests-${{ runner.os }}-${{ matrix.node_version }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022
# temporary fix for https://github.com/nrwl/nx/issues/19022
- run: npm install --save-dev nx@16.7.4 @nx/devkit@16.7.4
if: ${{ matrix.node_version == '14' }}
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js' --ignore @opentelemetry/selenium-tests
run: npm ci
- name: Build 🔧
run: |
npm run compile
run: npm run compile
- name: Unit tests
run: |
@ -77,29 +57,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm install -g npm@latest
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: node-windows-tests-${{ runner.os }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js' --ignore @opentelemetry/selenium-tests
run: npm ci
- name: Build 🔧
run: |
@ -118,31 +83,15 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: browser-tests-${{ runner.os }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js' --ignore @opentelemetry/selenium-tests
run: npm ci
- name: Build 🔧
run: |
npm run compile
run: npm run compile
- name: Unit tests
run: npm run test:browser
@ -155,31 +104,15 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4.0.0
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16
- name: restore lerna
id: cache
uses: actions/cache@v3
with:
path: |
node_modules
package-lock.json
packages/*/node_modules
packages/*/package-lock.json
experimental/packages/*/node_modules
experimental/packages/*/package-lock.json
key: webworker-tests-${{ runner.os }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022
- name: Bootstrap
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --nohoist='zone.js'
run: npm ci
- name: Build 🔧
run: |
npm run compile
run: npm run compile
- name: Unit tests
run: npm run test:webworker
@ -198,7 +131,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}

View File

@ -14,37 +14,15 @@ jobs:
- name: Checkout 🛎️
uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '16'
- name: restore lock files
uses: actions/cache@master # must use unreleased master to cache multiple paths
id: cache
with:
# must be done before bootstrap to not include node_modules files in the cache paths
path: |
package-lock.json
packages/*/package-lock.json
metapackages/*/package-lock.json
packages/*/package-lock.json
integration-tests/*/package-lock.json
key: ${{ runner.os }}-w3c_integration-${{ hashFiles('**/package.json') }}
- name: Install and Bootstrap (cache miss) 🔧
if: steps.cache.outputs.cache-hit != 'true'
run: |
npm install --ignore-scripts
npx lerna bootstrap --no-ci --hoist --scope=propagation-validation-server --include-dependencies
- name: Install and Bootstrap (cache hit) 🔧
if: steps.cache.outputs.cache-hit == 'true'
run: |
npm ci --ignore-scripts
npx lerna bootstrap --hoist --scope=propagation-validation-server --include-dependencies
- name: Install and Bootstrap 🔧
run: npm ci
- name: Generate version.ts files
run: lerna run version
run: npm run version:update
- name: Build 🔧
run: npm run compile

1
.gitignore vendored
View File

@ -66,7 +66,6 @@ typings/
# lock files
yarn.lock
package-lock.json
# docs files
docs

View File

@ -11,14 +11,39 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/
### :rocket: (Enhancement)
### :books: (Refine Doc)
### :house: (Internal)
* chore: type reference on zone.js [#4257](https://github.com/open-telemetry/opentelemetry-js/pull/4257) @legendecas
* chore: no need for 'packages' in lerna.json [#4264](https://github.com/open-telemetry/opentelemetry-js/pull/4264) @trentm
### :bug: (Bug Fix)
* fix(sdk-trace-web): only access location if it is defined [#4063](https://github.com/open-telemetry/opentelemetry-js/pull/4063)
* fix(sdk-trace-base): processor onStart called with a span having empty attributes
## 1.18.1
### :bug: (Bug Fix)
* fix(sdk-metrics): hand-roll MetricAdvice type as older API versions do not include it #4260
## 1.18.0
### :rocket: (Enhancement)
* feat(metrics): prototype experimental advice support [#3876](https://github.com/open-telemetry/opentelemetry-js/pull/3876) @legendecas
### :bug: (Bug Fix)
### :books: (Refine Doc)
* fix(core): remove re-export of `version.ts` [#4225](https://github.com/open-telemetry/opentelemetry-js/pull/4225) @david-luna
### :house: (Internal)
* chore: track package-lock.json [#4238](https://github.com/open-telemetry/opentelemetry-js/pull/4238) @legendecas
* Switched to npm workspaces to bootstrap dependencies.
## 1.17.1
### :bug: (Bug Fix)

View File

@ -161,7 +161,7 @@ Most of the commands needed for development are accessed as [npm scripts](https:
### Install dependencies
This will install all dependencies for the root project and all modules managed by `lerna`. By default, a `postinstall` script will run `lerna bootstrap` automatically after an install. This can be avoided using the `--ignore-scripts` option if desired.
This will install all dependencies for the root project and all modules managed by `npm workspaces`.
```sh
npm install

View File

@ -143,7 +143,8 @@ The below table describes which versions of each set of packages are expected to
| Stable Packages | Experimental Packages |
|-----------------------------------------------------------------|-----------------------|
| 1.17.x | 0.43.x |
| 1.18.x | 0.45.x |
| 1.17.x | 0.44.x |
| 1.16.x | 0.42.x |
| 1.15.x | 0.41.x |
| 1.14.x | 0.40.x |

View File

@ -4,9 +4,12 @@ All notable changes to this project will be documented in this file.
## Unreleased
## 1.7.0
### :rocket: (Enhancement)
* feat(metrics): prototype experimental advice support [#3876](https://github.com/open-telemetry/opentelemetry-js/pull/3876) @legendecas
* feat(api): publish api esnext target [#4231](https://github.com/open-telemetry/opentelemetry-js/pull/4231) @legendecas
## 1.6.0

View File

@ -1,13 +1,15 @@
{
"name": "@opentelemetry/api",
"version": "1.6.0",
"version": "1.7.0",
"description": "Public API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
"esnext": "build/esnext/index.js",
"types": "build/src/index.d.ts",
"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"
},
"repository": "open-telemetry/opentelemetry-js",
@ -51,6 +53,9 @@
"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",
@ -61,15 +66,15 @@
"access": "public"
},
"devDependencies": {
"@types/mocha": "10.0.2",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/webpack": "4.41.34",
"@types/sinon": "10.0.20",
"@types/webpack": "4.41.35",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"dpdm": "3.13.1",
"babel-plugin-istanbul": "6.1.1",
"karma": "6.4.2",
"karma-chrome-launcher": "3.1.0",
"karma-coverage": "2.2.1",
@ -77,7 +82,7 @@
"karma-mocha-webworker": "1.3.0",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"memfs": "3.5.3",
"mocha": "10.2.0",
"nyc": "15.1.0",

View File

@ -95,7 +95,7 @@ describe('tree-shaking', () => {
if (err) {
return reject(err);
}
resolve(stats);
resolve(stats!);
});
});
assert.deepStrictEqual(stats.compilation.errors, []);

View File

@ -5,7 +5,7 @@ Benchmark tests are intended to measure performance of small units of code.
It is recommended that operations that have a high impact on the performance of the SDK (or potential for) are accompanied by a benchmark test. This helps end-users understand the performance trend over time, and it also helps maintainers catch performance regressions.
Benchmark tests are run automatically with every merge to main, and the results are available at <https://open-telemetry.github.io/opentelemetry-js/benchmark>.
Benchmark tests are run automatically with every merge to main, and the results are available at <https://open-telemetry.github.io/opentelemetry-js/benchmarks>.
## Running benchmark tests

View File

@ -1,7 +1,7 @@
{
"name": "esm-http-ts",
"private": true,
"version": "0.44.0",
"version": "0.45.1",
"description": "Example of HTTP integration with OpenTelemetry using ESM and TypeScript",
"main": "build/index.js",
"type": "module",
@ -30,13 +30,13 @@
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/",
"dependencies": {
"@opentelemetry/api": "1.6.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.44.0",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/instrumentation-http": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/api": "1.7.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.45.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/instrumentation-http": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
}
}

View File

@ -1,7 +1,7 @@
{
"name": "http-example",
"private": true,
"version": "0.44.0",
"version": "0.45.1",
"description": "Example of HTTP integration with OpenTelemetry",
"main": "index.js",
"scripts": {
@ -29,14 +29,14 @@
},
"dependencies": {
"@opentelemetry/api": "^1.3.0",
"@opentelemetry/exporter-jaeger": "1.17.1",
"@opentelemetry/exporter-zipkin": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/instrumentation-http": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/exporter-jaeger": "1.18.1",
"@opentelemetry/exporter-zipkin": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/instrumentation-http": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/http",
"devDependencies": {

View File

@ -1,7 +1,7 @@
{
"name": "https-example",
"private": true,
"version": "0.44.0",
"version": "0.45.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.17.1",
"@opentelemetry/exporter-zipkin": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/instrumentation-http": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/exporter-jaeger": "1.18.1",
"@opentelemetry/exporter-zipkin": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/instrumentation-http": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/https",
"devDependencies": {

View File

@ -1,7 +1,7 @@
{
"name": "web-opentelemetry-example",
"private": true,
"version": "0.44.0",
"version": "0.45.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.17.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.44.0",
"@opentelemetry/exporter-trace-otlp-http": "0.44.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.44.0",
"@opentelemetry/exporter-zipkin": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/instrumentation-fetch": "0.44.0",
"@opentelemetry/instrumentation-xml-http-request": "0.44.0",
"@opentelemetry/propagator-b3": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-web": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/context-zone": "1.18.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.45.1",
"@opentelemetry/exporter-trace-otlp-http": "0.45.1",
"@opentelemetry/exporter-trace-otlp-proto": "0.45.1",
"@opentelemetry/exporter-zipkin": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/instrumentation-fetch": "0.45.1",
"@opentelemetry/instrumentation-xml-http-request": "0.45.1",
"@opentelemetry/propagator-b3": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-web": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/tracer-web"
}

View File

@ -1,7 +1,7 @@
{
"name": "example-otlp-exporter-node",
"private": true,
"version": "0.44.0",
"version": "0.45.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.17.1",
"@opentelemetry/exporter-metrics-otlp-grpc": "0.44.0",
"@opentelemetry/exporter-metrics-otlp-http": "0.44.0",
"@opentelemetry/exporter-metrics-otlp-proto": "0.44.0",
"@opentelemetry/exporter-trace-otlp-grpc": "0.44.0",
"@opentelemetry/exporter-trace-otlp-http": "0.44.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/exporter-metrics-otlp-grpc": "0.45.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.45.1",
"@opentelemetry/exporter-metrics-otlp-proto": "0.45.1",
"@opentelemetry/exporter-trace-otlp-grpc": "0.45.1",
"@opentelemetry/exporter-trace-otlp-http": "0.45.1",
"@opentelemetry/exporter-trace-otlp-proto": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/examples/otlp-exporter-node"
}

View File

@ -10,14 +10,31 @@ All notable changes to experimental packages in this project will be documented
### :bug: (Bug Fix)
* fix(sdk-node): remove the explicit dependency on @opentelemetry/exporter-jaeger that was kept on the previous release
* '@opentelemetry/exporter-jaeger' is no longer be a dependency of this package. To continue using '@opentelemetry/exporter-jaeger', please install it manually.
* NOTE: `@opentelemetry/exporter-jaeger` is deprecated, consider switching to one of the alternatives described [here](https://www.npmjs.com/package/@opentelemetry/exporter-jaeger)
* fix(sdk-logs): avoid map attribute set when count limit exceeded
* fix(instrumentation-fetch): only access navigator if it is defined [#4063](https://github.com/open-telemetry/opentelemetry-js/pull/4063)
* allows for experimental usage of this instrumentation with non-browser runtimes
### :books: (Refine Doc)
### :house: (Internal)
## 0.45.1
### :bug: (Bug Fix)
* Bumps all dependencies to explicitly include Stable v1.18.1 packages
## 0.45.0
### :boom: Breaking Change
* fix(sdk-node)!: remove the explicit dependency on @opentelemetry/exporter-jaeger that was kept on the previous release
* '@opentelemetry/exporter-jaeger' is no longer be a dependency of this package. To continue using '@opentelemetry/exporter-jaeger', please install it manually.
* NOTE: `@opentelemetry/exporter-jaeger` is deprecated, consider switching to one of the alternatives described [here](https://www.npmjs.com/package/@opentelemetry/exporter-jaeger)
* fix(otlp-transformer)!: OTLP json encoding [#4220](https://github.com/open-telemetry/opentelemetry-js/pull/4220) @seemk
* Fixes a bug in the OTLP (http/json) exporters where timestamps were not encoded as strings, causing the export to
be rejected by OTLP endpoints
## 0.44.0
### :boom: Breaking Change

View File

@ -1,6 +1,6 @@
{
"name": "backcompat-node14",
"version": "0.44.0",
"version": "0.45.1",
"private": true,
"description": "Backwards compatibility app for node 14 types and the OpenTelemetry Node.js SDK",
"main": "index.js",
@ -9,8 +9,8 @@
"peer-api-check": "node ../../../scripts/peer-api-check.js"
},
"dependencies": {
"@opentelemetry/sdk-node": "0.44.0",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/sdk-node": "0.45.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"devDependencies": {
"@types/node": "14.18.25",

View File

@ -1,6 +1,6 @@
{
"name": "backcompat-node16",
"version": "0.44.0",
"version": "0.45.1",
"private": true,
"description": "Backwards compatibility app for node 16 types and the OpenTelemetry Node.js SDK",
"main": "index.js",
@ -9,8 +9,8 @@
"peer-api-check": "node ../../../scripts/peer-api-check.js"
},
"dependencies": {
"@opentelemetry/sdk-node": "0.44.0",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/sdk-node": "0.45.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"devDependencies": {
"@types/node": "16.11.52",

View File

@ -1,14 +1,14 @@
{
"name": "logs-example",
"version": "0.44.0",
"version": "0.45.1",
"private": true,
"scripts": {
"start": "ts-node index.ts"
},
"dependencies": {
"@opentelemetry/api": "^1.6.0",
"@opentelemetry/api-logs": "0.41.0",
"@opentelemetry/sdk-logs": "0.41.0"
"@opentelemetry/api": "^1.7.0",
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/sdk-logs": "0.45.1"
},
"devDependencies": {
"@types/node": "18.6.5",

View File

@ -1,7 +1,7 @@
{
"name": "opencensus-shim",
"private": true,
"version": "0.44.0",
"version": "0.45.1",
"description": "Example of using @opentelemetry/shim-opencensus in Node.js",
"main": "index.js",
"scripts": {
@ -30,14 +30,14 @@
"@opencensus/core": "0.1.0",
"@opencensus/instrumentation-http": "0.1.0",
"@opencensus/nodejs-base": "0.1.0",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/exporter-prometheus": "0.44.0",
"@opentelemetry/exporter-trace-otlp-grpc": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1",
"@opentelemetry/shim-opencensus": "0.44.0"
"@opentelemetry/api": "1.7.0",
"@opentelemetry/exporter-prometheus": "0.45.1",
"@opentelemetry/exporter-trace-otlp-grpc": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1",
"@opentelemetry/shim-opencensus": "0.45.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/examples/opencensus-shim"
}

View File

@ -11,17 +11,28 @@ This is a simple example that demonstrates basic metrics collection and exports
npm install
```
Setup [Prometheus](https://prometheus.io/docs/prometheus/latest/getting_started/)
## Run the Application
- Run the server
```sh
# from this directory
npm run start
```
If you are using the default configurations, the metrics should be available at <http://localhost:9464/metrics>
## Run Prometheus
### With docker
```sh
# from this directory
docker compose up
```
### With binary
Setup [Prometheus](https://prometheus.io/docs/prometheus/latest/getting_started/)
- Replace the `prometheus.yml` provided by the Prometheus installation with the following:
```yaml
@ -34,7 +45,6 @@ scrape_configs:
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9464']
```
- Start Prometheus
@ -44,7 +54,7 @@ scrape_configs:
prometheus --config.file=prometheus.yml
```
### Prometheus UI
## Prometheus UI
If you are using the default configurations, the prometheus client will be available at <http://localhost:9090>

View File

@ -0,0 +1,12 @@
version: '3.7'
services:
prometheus:
image: prom/prometheus:v2.47.2
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- "./prometheus.docker.yml:/etc/prometheus/prometheus.yml"
ports:
- 9090:9090
restart: always

View File

@ -1,6 +1,6 @@
{
"name": "prometheus-example",
"version": "0.44.0",
"version": "0.45.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.44.0",
"@opentelemetry/sdk-metrics": "1.17.1"
"@opentelemetry/exporter-prometheus": "0.45.1",
"@opentelemetry/sdk-metrics": "1.18.1"
}
}

View File

@ -0,0 +1,9 @@
global:
scrape_interval: 15s # Default is every 1 minute.
scrape_configs:
- job_name: 'opentelemetry'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['host.docker.internal:9464']

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/api-events",
"version": "0.44.0",
"version": "0.45.1",
"description": "Public events API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -64,7 +64,7 @@
"@opentelemetry/api": "^1.0.0"
},
"devDependencies": {
"@types/mocha": "10.0.2",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
@ -76,7 +76,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"ts-loader": "8.4.0",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/api-logs",
"version": "0.44.0",
"version": "0.45.1",
"description": "Public logs API for OpenTelemetry",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -64,7 +64,7 @@
"@opentelemetry/api": "^1.0.0"
},
"devDependencies": {
"@types/mocha": "10.0.2",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
@ -76,7 +76,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"ts-loader": "8.4.0",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-grpc",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry Collector Exporter allows user to send collected log records to the OpenTelemetry Collector",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -50,17 +50,17 @@
"devDependencies": {
"@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.10",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/api-logs": "0.44.0",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cpx": "1.5.0",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -73,10 +73,10 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-grpc-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/sdk-logs": "0.44.0"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-grpc-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/sdk-logs": "0.45.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-grpc",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-http",
"version": "0.44.0",
"version": "0.45.1",
"publishConfig": {
"access": "public"
},
@ -72,11 +72,11 @@
"sideEffects": false,
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/resources": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/resources": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -89,7 +89,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -104,10 +104,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/api-logs": "0.44.0",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/sdk-logs": "0.44.0"
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/sdk-logs": "0.45.1"
}
}

View File

@ -48,7 +48,10 @@ export class OTLPLogExporter
}
convert(logRecords: ReadableLogRecord[]): IExportLogsServiceRequest {
return createExportLogsServiceRequest(logRecords, true);
return createExportLogsServiceRequest(logRecords, {
useHex: true,
useLongBits: false,
});
}
getDefaultUrl(config: OTLPExporterConfigBase): string {

View File

@ -48,7 +48,10 @@ export class OTLPLogExporter
}
convert(logRecords: ReadableLogRecord[]): IExportLogsServiceRequest {
return createExportLogsServiceRequest(logRecords, true);
return createExportLogsServiceRequest(logRecords, {
useHex: true,
useLongBits: false,
});
}
getDefaultUrl(config: OTLPExporterNodeConfigBase): string {

View File

@ -20,7 +20,6 @@ import { Resource } from '@opentelemetry/resources';
import * as assert from 'assert';
import { VERSION } from '@opentelemetry/core';
import {
hrTimeToFixed64Nanos,
IAnyValue,
IExportLogsServiceRequest,
IKeyValue,
@ -77,22 +76,17 @@ export function ensureExportedBodyIsCorrect(body?: IAnyValue) {
);
}
function hrTimeToFixed64(hrTime: HrTime) {
const { low, high } = hrTimeToFixed64Nanos(hrTime);
return { low, high };
}
export function ensureExportedLogRecordIsCorrect(logRecord: ILogRecord) {
ensureExportedBodyIsCorrect(logRecord.body);
ensureExportedAttributesAreCorrect(logRecord.attributes);
assert.deepStrictEqual(
logRecord.timeUnixNano,
hrTimeToFixed64(mockedReadableLogRecord.hrTime),
'1680253513123241635',
'timeUnixNano is wrong'
);
assert.deepStrictEqual(
logRecord.observedTimeUnixNano,
hrTimeToFixed64(mockedReadableLogRecord.hrTimeObserved),
'1680253513123241635',
'observedTimeUnixNano is wrong'
);
assert.strictEqual(

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-logs-otlp-proto",
"version": "0.44.0",
"version": "0.45.1",
"description": "An OTLP exporter to send logs using protobuf over HTTP",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -64,10 +64,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cpx": "1.5.0",
@ -78,7 +78,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -93,14 +93,14 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/api-logs": "0.44.0",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-proto-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-logs": "0.44.0",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-proto-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-logs": "0.45.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-logs-otlp-proto",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-grpc",
"version": "0.44.0",
"version": "0.45.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",
@ -49,15 +49,15 @@
"devDependencies": {
"@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.10",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cpx": "1.5.0",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -70,11 +70,11 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-grpc-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-grpc-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-grpc",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-http",
"version": "0.44.0",
"version": "0.45.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",
@ -64,10 +64,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -80,7 +80,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -95,11 +95,11 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-http",
"sideEffects": false

View File

@ -47,7 +47,10 @@ export class OTLPTraceExporter
);
}
convert(spans: ReadableSpan[]): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans, true);
return createExportTraceServiceRequest(spans, {
useHex: true,
useLongBits: false,
});
}
getDefaultUrl(config: OTLPExporterConfigBase): string {

View File

@ -53,7 +53,10 @@ export class OTLPTraceExporter
}
convert(spans: ReadableSpan[]): IExportTraceServiceRequest {
return createExportTraceServiceRequest(spans, true);
return createExportTraceServiceRequest(spans, {
useHex: true,
useLongBits: false,
});
}
getDefaultUrl(config: OTLPExporterNodeConfigBase): string {

View File

@ -31,7 +31,6 @@ import {
ILink,
IResource,
ISpan,
UnsignedLong,
} from '@opentelemetry/otlp-transformer';
if (typeof Buffer === 'undefined') {
@ -244,59 +243,54 @@ export const multiInstrumentationLibraryTrace: ReadableSpan[] = [
},
];
function fixed64FromString(str: string) {
const { low, high } = UnsignedLong.fromString(str);
return { low, high };
}
export function ensureEventsAreCorrect(events: IEvent[]) {
assert.deepStrictEqual(
events,
[
{
timeUnixNano: fixed64FromString('1574120165429803070'),
timeUnixNano: '1574120165429803070',
name: 'fetchStart',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165429803070'),
timeUnixNano: '1574120165429803070',
name: 'domainLookupStart',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165429803070'),
timeUnixNano: '1574120165429803070',
name: 'domainLookupEnd',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165429803070'),
timeUnixNano: '1574120165429803070',
name: 'connectStart',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165429803070'),
timeUnixNano: '1574120165429803070',
name: 'connectEnd',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165435513070'),
timeUnixNano: '1574120165435513070',
name: 'requestStart',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165436923070'),
timeUnixNano: '1574120165436923070',
name: 'responseStart',
attributes: [],
droppedAttributesCount: 0,
},
{
timeUnixNano: fixed64FromString('1574120165438688070'),
timeUnixNano: '1574120165438688070',
name: 'responseEnd',
attributes: [],
droppedAttributesCount: 0,
@ -372,12 +366,12 @@ export function ensureSpanIsCorrect(span: ISpan, useHex = true) {
assert.strictEqual(span.kind, ESpanKind.SPAN_KIND_INTERNAL, 'kind is wrong');
assert.deepStrictEqual(
span.startTimeUnixNano,
fixed64FromString('1574120165429803070'),
'1574120165429803070',
'startTimeUnixNano is wrong'
);
assert.deepStrictEqual(
span.endTimeUnixNano,
fixed64FromString('1574120165438688070'),
'1574120165438688070',
'endTimeUnixNano is wrong'
);
assert.strictEqual(

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-trace-otlp-proto",
"version": "0.44.0",
"version": "0.45.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",
@ -63,10 +63,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cpx": "1.5.0",
@ -77,7 +77,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -92,12 +92,12 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-proto-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-proto-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/exporter-trace-otlp-proto",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/opentelemetry-browser-detector",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry Resource Detector for Browser",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -54,10 +54,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cross-var": "1.1.0",
@ -67,7 +67,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -82,8 +82,8 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/browser-detector"
}

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-grpc",
"version": "0.44.0",
"version": "0.45.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",
@ -49,14 +49,14 @@
"devDependencies": {
"@babel/core": "7.22.20",
"@grpc/proto-loader": "^0.7.10",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cpx": "1.5.0",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -69,12 +69,12 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.44.0",
"@opentelemetry/otlp-grpc-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.45.1",
"@opentelemetry/otlp-grpc-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc",
"sideEffects": false

View File

@ -33,11 +33,10 @@ import {
View,
} from '@opentelemetry/sdk-metrics';
import {
hrTimeToFixed64Nanos,
encodeAsString,
IKeyValue,
IMetric,
IResource,
UnsignedLong,
} from '@opentelemetry/otlp-transformer';
class TestMetricReader extends MetricReader {
@ -152,14 +151,8 @@ export function ensureExportedCounterIsCorrect(
assert.strictEqual(dp.asInt, '1');
assert.strictEqual(dp.flags, 0);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano as string, encodeAsString(time));
}
export function ensureExportedObservableGaugeIsCorrect(
@ -179,14 +172,8 @@ export function ensureExportedObservableGaugeIsCorrect(
assert.strictEqual(dp.asDouble, 6);
assert.strictEqual(dp.flags, 0);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureExportedHistogramIsCorrect(
@ -215,14 +202,8 @@ export function ensureExportedHistogramIsCorrect(
assert.strictEqual(dp.min, 7);
assert.strictEqual(dp.max, 14);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
assert.deepStrictEqual(dp.bucketCounts, bucketCounts);
assert.deepStrictEqual(dp.explicitBounds, explicitBounds);
}

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-http",
"version": "0.44.0",
"version": "0.45.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",
@ -64,10 +64,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -80,7 +80,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -95,11 +95,11 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-http",
"sideEffects": false

View File

@ -62,7 +62,7 @@ class OTLPExporterBrowserProxy extends OTLPExporterBrowserBase<
}
convert(metrics: ResourceMetrics[]): IExportMetricsServiceRequest {
return createExportMetricsServiceRequest(metrics);
return createExportMetricsServiceRequest(metrics, { useLongBits: false });
}
}

View File

@ -52,7 +52,7 @@ class OTLPExporterNodeProxy extends OTLPExporterNodeBase<
}
convert(metrics: ResourceMetrics[]): IExportMetricsServiceRequest {
return createExportMetricsServiceRequest(metrics);
return createExportMetricsServiceRequest(metrics, { useLongBits: false });
}
getDefaultUrl(config: OTLPExporterNodeConfigBase): string {

View File

@ -34,7 +34,7 @@ import {
View,
} from '@opentelemetry/sdk-metrics';
import {
hrTimeToFixed64Nanos,
encodeAsString,
IExportMetricsServiceRequest,
IKeyValue,
IMetric,
@ -207,11 +207,6 @@ export function ensureWebResourceIsCorrect(resource: IResource) {
assert.strictEqual(resource.droppedAttributesCount, 0);
}
function hrTimeToFixed64(hrTime: HrTime) {
const { low, high } = hrTimeToFixed64Nanos(hrTime);
return { low, high };
}
export function ensureCounterIsCorrect(
metric: IMetric,
time: HrTime,
@ -228,8 +223,8 @@ export function ensureCounterIsCorrect(
assert.deepStrictEqual(dp.attributes, []);
assert.strictEqual(dp.asInt, 1);
assert.deepStrictEqual(dp.startTimeUnixNano, hrTimeToFixed64(startTime));
assert.deepStrictEqual(dp.timeUnixNano, hrTimeToFixed64(time));
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureDoubleCounterIsCorrect(
@ -273,8 +268,8 @@ export function ensureObservableGaugeIsCorrect(
assert.deepStrictEqual(dp.attributes, []);
assert.strictEqual(dp.asDouble, value);
assert.deepStrictEqual(dp.startTimeUnixNano, hrTimeToFixed64(startTime));
assert.deepStrictEqual(dp.timeUnixNano, hrTimeToFixed64(time));
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureHistogramIsCorrect(
@ -300,8 +295,8 @@ export function ensureHistogramIsCorrect(
assert.deepStrictEqual(dp.bucketCounts, bucketCounts);
assert.deepStrictEqual(dp.explicitBounds, explicitBounds);
assert.deepStrictEqual(dp.startTimeUnixNano, hrTimeToFixed64(startTime));
assert.deepStrictEqual(dp.timeUnixNano, hrTimeToFixed64(time));
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureExportMetricsServiceRequestIsSet(

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-metrics-otlp-proto",
"version": "0.44.0",
"version": "0.45.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",
"module": "build/esm/index.js",
@ -56,14 +56,14 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cpx": "1.5.0",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -75,13 +75,13 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.44.0",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/otlp-proto-exporter-base": "0.44.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/exporter-metrics-otlp-http": "0.45.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"@opentelemetry/otlp-proto-exporter-base": "0.45.1",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-metrics-otlp-proto",
"sideEffects": false

View File

@ -31,11 +31,10 @@ import {
View,
} from '@opentelemetry/sdk-metrics';
import {
hrTimeToFixed64Nanos,
encodeAsString,
IExportMetricsServiceRequest,
IKeyValue,
IMetric,
UnsignedLong,
} from '@opentelemetry/otlp-transformer';
import { Stream } from 'stream';
@ -147,14 +146,8 @@ export function ensureExportedCounterIsCorrect(
const [dp] = metric.sum.dataPoints;
assert.strictEqual(dp.asInt, '1');
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureExportedObservableGaugeIsCorrect(
@ -169,14 +162,8 @@ export function ensureExportedObservableGaugeIsCorrect(
const [dp] = metric.gauge.dataPoints;
assert.strictEqual(dp.asDouble, 6);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureExportedHistogramIsCorrect(
@ -204,14 +191,8 @@ export function ensureExportedHistogramIsCorrect(
assert.strictEqual(dp.max, 14);
assert.deepStrictEqual(dp.explicitBounds, explicitBounds);
assert.deepStrictEqual(dp.bucketCounts, bucketCounts);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.startTimeUnixNano as string),
hrTimeToFixed64Nanos(startTime)
);
assert.deepStrictEqual(
UnsignedLong.fromString(dp.timeUnixNano as string),
hrTimeToFixed64Nanos(time)
);
assert.deepStrictEqual(dp.startTimeUnixNano, encodeAsString(startTime));
assert.deepStrictEqual(dp.timeUnixNano, encodeAsString(time));
}
export function ensureExportMetricsServiceRequestIsSet(

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/exporter-prometheus",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry Exporter Prometheus provides a metrics endpoint for Prometheus",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -43,14 +43,14 @@
"access": "public"
},
"devDependencies": {
"@opentelemetry/api": "1.6.0",
"@opentelemetry/semantic-conventions": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/semantic-conventions": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -61,9 +61,9 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-fetch",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry fetch automatic instrumentation package.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -55,13 +55,13 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-zone": "1.17.1",
"@opentelemetry/propagator-b3": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-zone": "1.18.1",
"@opentelemetry/propagator-b3": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -73,7 +73,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -88,10 +88,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/sdk-trace-web": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/sdk-trace-web": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-fetch",
"sideEffects": false

View File

@ -132,7 +132,12 @@ export class FetchInstrumentation extends InstrumentationBase<
SemanticAttributes.HTTP_SCHEME,
parsedUrl.protocol.replace(':', '')
);
span.setAttribute(SemanticAttributes.HTTP_USER_AGENT, navigator.userAgent);
if (typeof navigator !== 'undefined') {
span.setAttribute(
SemanticAttributes.HTTP_USER_AGENT,
navigator.userAgent
);
}
}
/**

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-grpc",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry grpc automatic instrumentation package.",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -49,21 +49,21 @@
"@bufbuild/buf": "1.21.0-1",
"@grpc/grpc-js": "^1.7.1",
"@grpc/proto-loader": "^0.7.10",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-async-hooks": "1.17.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-async-hooks": "1.18.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@protobuf-ts/grpc-transport": "2.9.1",
"@protobuf-ts/runtime": "2.9.1",
"@protobuf-ts/runtime-rpc": "2.9.1",
"@types/mocha": "10.0.2",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/semver": "7.5.3",
"@types/sinon": "10.0.19",
"@types/semver": "7.5.4",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"semver": "7.5.4",
@ -75,8 +75,8 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-grpc",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-http",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry http/https automatic instrumentation package.",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -45,23 +45,23 @@
"access": "public"
},
"devDependencies": {
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-async-hooks": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-async-hooks": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/request-promise-native": "1.0.19",
"@types/semver": "7.5.3",
"@types/sinon": "10.0.19",
"@types/superagent": "4.1.19",
"@types/request-promise-native": "1.0.20",
"@types/semver": "7.5.4",
"@types/sinon": "10.0.20",
"@types/superagent": "4.1.20",
"axios": "1.5.1",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nock": "13.3.4",
"nock": "13.3.8",
"nyc": "15.1.0",
"request": "2.88.2",
"request-promise-native": "1.0.9",
@ -74,9 +74,9 @@
"@opentelemetry/api": "^1.3.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/semantic-conventions": "1.17.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/semantic-conventions": "1.18.1",
"semver": "^7.5.2"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation-xml-http-request",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry XMLHttpRequest automatic instrumentation package.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -55,13 +55,13 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-zone": "1.17.1",
"@opentelemetry/propagator-b3": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-zone": "1.18.1",
"@opentelemetry/propagator-b3": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -73,7 +73,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -88,10 +88,10 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/sdk-trace-web": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/sdk-trace-web": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-xml-http-request",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/instrumentation",
"version": "0.44.0",
"version": "0.45.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",
@ -82,12 +82,12 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/sdk-metrics": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/sdk-metrics": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/semver": "7.5.3",
"@types/sinon": "10.0.19",
"@types/semver": "7.5.4",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"babel-plugin-istanbul": "6.1.1",
@ -100,7 +100,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",

View File

@ -50,7 +50,7 @@ const jaegerExporter = new JaegerExporter();
const prometheusExporter = new PrometheusExporter({ startServer: true });
const sdk = new opentelemetry.NodeSDK({
// Optional - if omitted, the tracing SDK will not be initialized
// Optional - if omitted, the tracing SDK will be initialized from environment variables
traceExporter: jaegerExporter,
// Optional - If omitted, the metrics SDK will not be initialized
metricReader: prometheusExporter,

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-node",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry SDK for Node.js",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -44,34 +44,34 @@
"access": "public"
},
"dependencies": {
"@opentelemetry/api-logs": "0.44.0",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/exporter-trace-otlp-grpc": "0.44.0",
"@opentelemetry/exporter-trace-otlp-http": "0.44.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.44.0",
"@opentelemetry/exporter-zipkin": "1.17.1",
"@opentelemetry/instrumentation": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-logs": "0.44.0",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/sdk-trace-node": "1.17.1",
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/exporter-trace-otlp-grpc": "0.45.1",
"@opentelemetry/exporter-trace-otlp-http": "0.45.1",
"@opentelemetry/exporter-trace-otlp-proto": "0.45.1",
"@opentelemetry/exporter-zipkin": "1.18.1",
"@opentelemetry/instrumentation": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-logs": "0.45.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@opentelemetry/sdk-trace-node": "1.18.1",
"@opentelemetry/semantic-conventions": "1.18.1"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.3.0 <1.7.0"
"@opentelemetry/api": ">=1.3.0 <1.8.0"
},
"devDependencies": {
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-async-hooks": "1.17.1",
"@opentelemetry/exporter-jaeger": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-async-hooks": "1.18.1",
"@opentelemetry/exporter-jaeger": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/semver": "7.5.3",
"@types/sinon": "10.0.19",
"@types/semver": "7.5.4",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"semver": "7.5.4",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-exporter-base",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry OTLP Exporter base (for internal use only)",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -61,14 +61,14 @@
"access": "public"
},
"dependencies": {
"@opentelemetry/core": "1.17.1"
"@opentelemetry/core": "1.18.1"
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cross-var": "1.1.0",
@ -78,7 +78,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-grpc-exporter-base",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry OTLP-gRPC Exporter base (for internal use only)",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -49,17 +49,17 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/otlp-transformer": "0.44.0",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/otlp-transformer": "0.45.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cpx": "1.5.0",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"protobufjs-cli": "1.1.2",
@ -73,8 +73,8 @@
},
"dependencies": {
"@grpc/grpc-js": "^1.7.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"protobufjs": "^7.2.3"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-grpc-exporter-base",

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/otlp-proto-exporter-base",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenTelemetry OTLP-HTTP-protobuf Exporter base (for internal use only)",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -60,13 +60,13 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"protobufjs-cli": "1.1.2",
@ -79,8 +79,8 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/otlp-exporter-base": "0.44.0",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/otlp-exporter-base": "0.45.1",
"protobufjs": "^7.2.3"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-proto-exporter-base",

View File

@ -4,7 +4,7 @@
"publishConfig": {
"access": "public"
},
"version": "0.44.0",
"version": "0.45.1",
"description": "Transform OpenTelemetry SDK data into OTLP",
"module": "build/esm/index.js",
"esnext": "build/esnext/index.js",
@ -21,6 +21,7 @@
"tdd": "npm run test -- --watch-extensions ts --watch",
"test": "nyc ts-mocha -p tsconfig.json 'test/**/*.test.ts'",
"test:browser": "karma start --single-run",
"test:bench": "node test/performance/benchmark/index.js | tee .benchmark-results.txt",
"prewatch": "node ../../../scripts/version-update.js",
"watch": "tsc --build -w tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
"peer-api-check": "node ../../../scripts/peer-api-check.js",
@ -54,11 +55,11 @@
"README.md"
],
"peerDependencies": {
"@opentelemetry/api": ">=1.3.0 <1.7.0"
"@opentelemetry/api": ">=1.3.0 <1.8.0"
},
"devDependencies": {
"@opentelemetry/api": "1.6.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@types/mocha": "10.0.3",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
@ -69,7 +70,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"ts-loader": "8.4.0",
@ -78,12 +79,12 @@
"webpack": "4.46.0"
},
"dependencies": {
"@opentelemetry/api-logs": "0.44.0",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-logs": "0.44.0",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1"
"@opentelemetry/api-logs": "0.45.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-logs": "0.45.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/otlp-transformer",
"sideEffects": false

View File

@ -14,16 +14,72 @@
* limitations under the License.
*/
import type { IFixed64 } from './types';
import type { OtlpEncodingOptions, Fixed64, LongBits } from './types';
import { HrTime } from '@opentelemetry/api';
import { UnsignedLong } from './unsigned_long';
import { hexToBase64, hrTimeToNanoseconds } from '@opentelemetry/core';
export * from './unsigned_long';
const NANOSECONDS = BigInt(1_000_000_000);
const NANOSECONDS = UnsignedLong.fromU32(1_000_000_000);
export function hrTimeToFixed64Nanos(hrTime: HrTime): IFixed64 {
return UnsignedLong.fromU32(hrTime[0])
.multiply(NANOSECONDS)
.add(UnsignedLong.fromU32(hrTime[1]));
export function hrTimeToNanos(hrTime: HrTime): bigint {
return BigInt(hrTime[0]) * NANOSECONDS + BigInt(hrTime[1]);
}
export function toLongBits(value: bigint): LongBits {
const low = Number(BigInt.asUintN(32, value));
const high = Number(BigInt.asUintN(32, value >> BigInt(32)));
return { low, high };
}
export function encodeAsLongBits(hrTime: HrTime): LongBits {
const nanos = hrTimeToNanos(hrTime);
return toLongBits(nanos);
}
export function encodeAsString(hrTime: HrTime): string {
const nanos = hrTimeToNanos(hrTime);
return nanos.toString();
}
const encodeTimestamp =
typeof BigInt !== 'undefined' ? encodeAsString : hrTimeToNanoseconds;
export type HrTimeEncodeFunction = (hrTime: HrTime) => Fixed64;
export type SpanContextEncodeFunction = (spanContext: string) => string;
export type OptionalSpanContextEncodeFunction = (
spanContext: string | undefined
) => string | undefined;
export interface Encoder {
encodeHrTime: HrTimeEncodeFunction;
encodeSpanContext: SpanContextEncodeFunction;
encodeOptionalSpanContext: OptionalSpanContextEncodeFunction;
}
function identity<T>(value: T): T {
return value;
}
function optionalHexToBase64(str: string | undefined): string | undefined {
if (str === undefined) return undefined;
return hexToBase64(str);
}
const DEFAULT_ENCODER: Encoder = {
encodeHrTime: encodeAsLongBits,
encodeSpanContext: hexToBase64,
encodeOptionalSpanContext: optionalHexToBase64,
};
export function getOtlpEncoder(options?: OtlpEncodingOptions): Encoder {
if (options === undefined) {
return DEFAULT_ENCODER;
}
const useLongBits = options.useLongBits ?? true;
const useHex = options.useHex ?? false;
return {
encodeHrTime: useLongBits ? encodeAsLongBits : encodeTimestamp,
encodeSpanContext: useHex ? identity : hexToBase64,
encodeOptionalSpanContext: useHex ? identity : optionalHexToBase64,
};
}

View File

@ -74,7 +74,16 @@ export interface IKeyValueList {
values: IKeyValue[];
}
export interface IFixed64 {
export interface LongBits {
low: number;
high: number;
}
export type Fixed64 = LongBits | string | number;
export interface OtlpEncodingOptions {
/** Convert trace and span IDs to hex strings. */
useHex?: boolean;
/** Convert HrTime to 2 part 64 bit values. */
useLongBits?: boolean;
}

View File

@ -1,122 +0,0 @@
/*
* Copyright 2009 The Closure Library Authors
* Copyright 2020 Daniel Wirtz / The long.js Authors.
* Copyright The OpenTelemetry Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Original version by long.js: https://github.com/dcodeIO/long.js/
const TWO_PWR_32 = (1 << 16) * (1 << 16);
export class UnsignedLong {
low: number;
high: number;
constructor(low: number, high: number) {
this.low = low;
this.high = high;
}
static fromU32(value: number): UnsignedLong {
return new UnsignedLong(value % TWO_PWR_32 | 0, 0);
}
multiply(value: UnsignedLong): UnsignedLong {
const a48 = this.high >>> 16;
const a32 = this.high & 0xffff;
const a16 = this.low >>> 16;
const a00 = this.low & 0xffff;
const b48 = value.high >>> 16;
const b32 = value.high & 0xffff;
const b16 = value.low >>> 16;
const b00 = value.low & 0xffff;
let c48 = 0;
let c32 = 0;
let c16 = 0;
let c00 = 0;
c00 += a00 * b00;
c16 += c00 >>> 16;
c00 &= 0xffff;
c16 += a16 * b00;
c32 += c16 >>> 16;
c16 &= 0xffff;
c16 += a00 * b16;
c32 += c16 >>> 16;
c16 &= 0xffff;
c32 += a32 * b00;
c48 += c32 >>> 16;
c32 &= 0xffff;
c32 += a16 * b16;
c48 += c32 >>> 16;
c32 &= 0xffff;
c32 += a00 * b32;
c48 += c32 >>> 16;
c32 &= 0xffff;
c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
c48 &= 0xffff;
return new UnsignedLong((c16 << 16) | c00, (c48 << 16) | c32);
}
add(value: UnsignedLong): UnsignedLong {
const a48 = this.high >>> 16;
const a32 = this.high & 0xffff;
const a16 = this.low >>> 16;
const a00 = this.low & 0xffff;
const b48 = value.high >>> 16;
const b32 = value.high & 0xffff;
const b16 = value.low >>> 16;
const b00 = value.low & 0xffff;
let c48 = 0;
let c32 = 0;
let c16 = 0;
let c00 = 0;
c00 += a00 + b00;
c16 += c00 >>> 16;
c00 &= 0xffff;
c16 += a16 + b16;
c32 += c16 >>> 16;
c16 &= 0xffff;
c32 += a32 + b32;
c48 += c32 >>> 16;
c32 &= 0xffff;
c48 += a48 + b48;
c48 &= 0xffff;
return new UnsignedLong((c16 << 16) | c00, (c48 << 16) | c32);
}
static fromString(str: string): UnsignedLong {
let result = UnsignedLong.fromU32(0);
for (let i = 0; i < str.length; i += 8) {
const size = Math.min(8, str.length - i);
const value = parseInt(str.substring(i, i + size));
if (size < 8) {
const power = UnsignedLong.fromU32(Math.pow(10, size));
result = result.multiply(power).add(UnsignedLong.fromU32(value));
} else {
result = result.multiply(UnsignedLong.fromU32(100_000_000));
result = result.add(UnsignedLong.fromU32(value));
}
}
return result;
}
}

View File

@ -22,19 +22,19 @@ import {
IResourceLogs,
} from './types';
import { IResource } from '@opentelemetry/resources';
import { hrTimeToFixed64Nanos } from '../common';
import { Encoder, getOtlpEncoder } from '../common';
import { toAnyValue, toAttributes, toKeyValue } from '../common/internal';
import { hexToBase64 } from '@opentelemetry/core';
import { SeverityNumber } from '@opentelemetry/api-logs';
import { IKeyValue } from '../common/types';
import { OtlpEncodingOptions, IKeyValue } from '../common/types';
import { LogAttributes } from '@opentelemetry/api-logs';
export function createExportLogsServiceRequest(
logRecords: ReadableLogRecord[],
useHex?: boolean
options?: OtlpEncodingOptions
): IExportLogsServiceRequest {
const encoder = getOtlpEncoder(options);
return {
resourceLogs: logRecordsToResourceLogs(logRecords, useHex),
resourceLogs: logRecordsToResourceLogs(logRecords, encoder),
};
}
@ -71,7 +71,7 @@ function createResourceMap(
function logRecordsToResourceLogs(
logRecords: ReadableLogRecord[],
useHex?: boolean
encoder: Encoder
): IResourceLogs[] {
const resourceMap = createResourceMap(logRecords);
return Array.from(resourceMap, ([resource, ismMap]) => ({
@ -85,7 +85,7 @@ function logRecordsToResourceLogs(
} = scopeLogs[0];
return {
scope: { name, version },
logRecords: scopeLogs.map(log => toLogRecord(log, useHex)),
logRecords: scopeLogs.map(log => toLogRecord(log, encoder)),
schemaUrl,
};
}),
@ -93,22 +93,18 @@ function logRecordsToResourceLogs(
}));
}
function toLogRecord(log: ReadableLogRecord, useHex?: boolean): ILogRecord {
function toLogRecord(log: ReadableLogRecord, encoder: Encoder): ILogRecord {
return {
timeUnixNano: hrTimeToFixed64Nanos(log.hrTime),
observedTimeUnixNano: hrTimeToFixed64Nanos(log.hrTimeObserved),
timeUnixNano: encoder.encodeHrTime(log.hrTime),
observedTimeUnixNano: encoder.encodeHrTime(log.hrTimeObserved),
severityNumber: toSeverityNumber(log.severityNumber),
severityText: log.severityText,
body: toAnyValue(log.body),
attributes: toLogAttributes(log.attributes),
droppedAttributesCount: 0,
flags: log.spanContext?.traceFlags,
traceId: useHex
? log.spanContext?.traceId
: optionalHexToBase64(log.spanContext?.traceId),
spanId: useHex
? log.spanContext?.spanId
: optionalHexToBase64(log.spanContext?.spanId),
traceId: encoder.encodeOptionalSpanContext(log.spanContext?.traceId),
spanId: encoder.encodeOptionalSpanContext(log.spanContext?.spanId),
};
}
@ -118,11 +114,6 @@ function toSeverityNumber(
return severityNumber as number | undefined as ESeverityNumber | undefined;
}
function optionalHexToBase64(str: string | undefined): string | undefined {
if (str === undefined) return undefined;
return hexToBase64(str);
}
export function toLogAttributes(attributes: LogAttributes): IKeyValue[] {
return Object.keys(attributes).map(key => toKeyValue(key, attributes[key]));
}

View File

@ -15,8 +15,8 @@
*/
import type {
Fixed64,
IAnyValue,
IFixed64,
IInstrumentationScope,
IKeyValue,
} from '../common/types';
@ -68,10 +68,10 @@ export interface IScopeLogs {
/** Properties of a LogRecord. */
export interface ILogRecord {
/** LogRecord timeUnixNano */
timeUnixNano: IFixed64;
timeUnixNano: Fixed64;
/** LogRecord observedTimeUnixNano */
observedTimeUnixNano: IFixed64;
observedTimeUnixNano: Fixed64;
/** LogRecord severityNumber */
severityNumber?: ESeverityNumber;

View File

@ -15,12 +15,16 @@
*/
import type { ResourceMetrics } from '@opentelemetry/sdk-metrics';
import type { IExportMetricsServiceRequest } from './types';
import type { OtlpEncodingOptions } from '../common/types';
import { toResourceMetrics } from './internal';
export function createExportMetricsServiceRequest(
resourceMetrics: ResourceMetrics[]
resourceMetrics: ResourceMetrics[],
options?: OtlpEncodingOptions
): IExportMetricsServiceRequest {
return {
resourceMetrics: resourceMetrics.map(metrics => toResourceMetrics(metrics)),
resourceMetrics: resourceMetrics.map(metrics =>
toResourceMetrics(metrics, options)
),
};
}

View File

@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { OtlpEncodingOptions } from '../common/types';
import { ValueType } from '@opentelemetry/api';
import {
AggregationTemporality,
@ -24,7 +25,6 @@ import {
ResourceMetrics,
ScopeMetrics,
} from '@opentelemetry/sdk-metrics';
import { hrTimeToFixed64Nanos } from '../common';
import { toAttributes } from '../common/internal';
import {
EAggregationTemporality,
@ -35,34 +35,40 @@ import {
IResourceMetrics,
IScopeMetrics,
} from './types';
import { Encoder, getOtlpEncoder } from '../common';
export function toResourceMetrics(
resourceMetrics: ResourceMetrics
resourceMetrics: ResourceMetrics,
options?: OtlpEncodingOptions
): IResourceMetrics {
const encoder = getOtlpEncoder(options);
return {
resource: {
attributes: toAttributes(resourceMetrics.resource.attributes),
droppedAttributesCount: 0,
},
schemaUrl: undefined,
scopeMetrics: toScopeMetrics(resourceMetrics.scopeMetrics),
scopeMetrics: toScopeMetrics(resourceMetrics.scopeMetrics, encoder),
};
}
export function toScopeMetrics(scopeMetrics: ScopeMetrics[]): IScopeMetrics[] {
export function toScopeMetrics(
scopeMetrics: ScopeMetrics[],
encoder: Encoder
): IScopeMetrics[] {
return Array.from(
scopeMetrics.map(metrics => ({
scope: {
name: metrics.scope.name,
version: metrics.scope.version,
},
metrics: metrics.metrics.map(metricData => toMetric(metricData)),
metrics: metrics.metrics.map(metricData => toMetric(metricData, encoder)),
schemaUrl: metrics.scope.schemaUrl,
}))
);
}
export function toMetric(metricData: MetricData): IMetric {
export function toMetric(metricData: MetricData, encoder: Encoder): IMetric {
const out: IMetric = {
name: metricData.descriptor.name,
description: metricData.descriptor.description,
@ -78,24 +84,24 @@ export function toMetric(metricData: MetricData): IMetric {
out.sum = {
aggregationTemporality,
isMonotonic: metricData.isMonotonic,
dataPoints: toSingularDataPoints(metricData),
dataPoints: toSingularDataPoints(metricData, encoder),
};
break;
case DataPointType.GAUGE:
out.gauge = {
dataPoints: toSingularDataPoints(metricData),
dataPoints: toSingularDataPoints(metricData, encoder),
};
break;
case DataPointType.HISTOGRAM:
out.histogram = {
aggregationTemporality,
dataPoints: toHistogramDataPoints(metricData),
dataPoints: toHistogramDataPoints(metricData, encoder),
};
break;
case DataPointType.EXPONENTIAL_HISTOGRAM:
out.exponentialHistogram = {
aggregationTemporality,
dataPoints: toExponentialHistogramDataPoints(metricData),
dataPoints: toExponentialHistogramDataPoints(metricData, encoder),
};
break;
}
@ -108,12 +114,13 @@ function toSingularDataPoint(
| DataPoint<number>
| DataPoint<Histogram>
| DataPoint<ExponentialHistogram>,
valueType: ValueType
valueType: ValueType,
encoder: Encoder
) {
const out: INumberDataPoint = {
attributes: toAttributes(dataPoint.attributes),
startTimeUnixNano: hrTimeToFixed64Nanos(dataPoint.startTime),
timeUnixNano: hrTimeToFixed64Nanos(dataPoint.endTime),
startTimeUnixNano: encoder.encodeHrTime(dataPoint.startTime),
timeUnixNano: encoder.encodeHrTime(dataPoint.endTime),
};
switch (valueType) {
@ -128,13 +135,23 @@ function toSingularDataPoint(
return out;
}
function toSingularDataPoints(metricData: MetricData): INumberDataPoint[] {
function toSingularDataPoints(
metricData: MetricData,
encoder: Encoder
): INumberDataPoint[] {
return metricData.dataPoints.map(dataPoint => {
return toSingularDataPoint(dataPoint, metricData.descriptor.valueType);
return toSingularDataPoint(
dataPoint,
metricData.descriptor.valueType,
encoder
);
});
}
function toHistogramDataPoints(metricData: MetricData): IHistogramDataPoint[] {
function toHistogramDataPoints(
metricData: MetricData,
encoder: Encoder
): IHistogramDataPoint[] {
return metricData.dataPoints.map(dataPoint => {
const histogram = dataPoint.value as Histogram;
return {
@ -145,14 +162,15 @@ function toHistogramDataPoints(metricData: MetricData): IHistogramDataPoint[] {
sum: histogram.sum,
min: histogram.min,
max: histogram.max,
startTimeUnixNano: hrTimeToFixed64Nanos(dataPoint.startTime),
timeUnixNano: hrTimeToFixed64Nanos(dataPoint.endTime),
startTimeUnixNano: encoder.encodeHrTime(dataPoint.startTime),
timeUnixNano: encoder.encodeHrTime(dataPoint.endTime),
};
});
}
function toExponentialHistogramDataPoints(
metricData: MetricData
metricData: MetricData,
encoder: Encoder
): IExponentialHistogramDataPoint[] {
return metricData.dataPoints.map(dataPoint => {
const histogram = dataPoint.value as ExponentialHistogram;
@ -172,8 +190,8 @@ function toExponentialHistogramDataPoints(
},
scale: histogram.scale,
zeroCount: histogram.zeroCount,
startTimeUnixNano: hrTimeToFixed64Nanos(dataPoint.startTime),
timeUnixNano: hrTimeToFixed64Nanos(dataPoint.endTime),
startTimeUnixNano: encoder.encodeHrTime(dataPoint.startTime),
timeUnixNano: encoder.encodeHrTime(dataPoint.endTime),
};
});
}

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { IFixed64, IInstrumentationScope, IKeyValue } from '../common/types';
import { Fixed64, IInstrumentationScope, IKeyValue } from '../common/types';
import { IResource } from '../resource/types';
/** Properties of an ExportMetricsServiceRequest. */
@ -134,10 +134,10 @@ export interface INumberDataPoint {
attributes: IKeyValue[];
/** NumberDataPoint startTimeUnixNano */
startTimeUnixNano?: IFixed64 | string;
startTimeUnixNano?: Fixed64;
/** NumberDataPoint timeUnixNano */
timeUnixNano?: IFixed64 | string;
timeUnixNano?: Fixed64;
/** NumberDataPoint asDouble */
asDouble?: number | null;
@ -158,10 +158,10 @@ export interface IHistogramDataPoint {
attributes?: IKeyValue[];
/** HistogramDataPoint startTimeUnixNano */
startTimeUnixNano?: IFixed64 | string;
startTimeUnixNano?: Fixed64;
/** HistogramDataPoint timeUnixNano */
timeUnixNano?: IFixed64 | string;
timeUnixNano?: Fixed64;
/** HistogramDataPoint count */
count?: number;
@ -194,10 +194,10 @@ export interface IExponentialHistogramDataPoint {
attributes?: IKeyValue[];
/** ExponentialHistogramDataPoint startTimeUnixNano */
startTimeUnixNano?: IFixed64 | string;
startTimeUnixNano?: Fixed64;
/** ExponentialHistogramDataPoint timeUnixNano */
timeUnixNano?: IFixed64 | string;
timeUnixNano?: Fixed64;
/** ExponentialHistogramDataPoint count */
count?: number;

View File

@ -15,6 +15,7 @@
*/
import type { IResource } from '@opentelemetry/resources';
import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
import type { OtlpEncodingOptions } from '../common/types';
import { toAttributes } from '../common/internal';
import { sdkSpanToOtlpSpan } from './internal';
import {
@ -22,13 +23,15 @@ import {
IResourceSpans,
IScopeSpans,
} from './types';
import { Encoder, getOtlpEncoder } from '../common';
export function createExportTraceServiceRequest(
spans: ReadableSpan[],
useHex?: boolean
options?: OtlpEncodingOptions
): IExportTraceServiceRequest {
const encoder = getOtlpEncoder(options);
return {
resourceSpans: spanRecordsToResourceSpans(spans, useHex),
resourceSpans: spanRecordsToResourceSpans(spans, encoder),
};
}
@ -61,7 +64,7 @@ function createResourceMap(readableSpans: ReadableSpan[]) {
function spanRecordsToResourceSpans(
readableSpans: ReadableSpan[],
useHex?: boolean
encoder: Encoder
): IResourceSpans[] {
const resourceMap = createResourceMap(readableSpans);
const out: IResourceSpans[] = [];
@ -79,7 +82,7 @@ function spanRecordsToResourceSpans(
const { name, version, schemaUrl } =
scopeSpans[0].instrumentationLibrary;
const spans = scopeSpans.map(readableSpan =>
sdkSpanToOtlpSpan(readableSpan, useHex)
sdkSpanToOtlpSpan(readableSpan, encoder)
);
scopeResourceSpans.push({

View File

@ -15,64 +15,57 @@
*/
import type { Link } from '@opentelemetry/api';
import type { ReadableSpan, TimedEvent } from '@opentelemetry/sdk-trace-base';
import { hrTimeToFixed64Nanos } from '../common';
import type { Encoder } from '../common';
import { toAttributes } from '../common/internal';
import { EStatusCode, IEvent, ILink, ISpan } from './types';
import * as core from '@opentelemetry/core';
export function sdkSpanToOtlpSpan(span: ReadableSpan, useHex?: boolean): ISpan {
export function sdkSpanToOtlpSpan(span: ReadableSpan, encoder: Encoder): ISpan {
const ctx = span.spanContext();
const status = span.status;
const parentSpanId = useHex
? span.parentSpanId
: span.parentSpanId != null
? core.hexToBase64(span.parentSpanId)
: undefined;
return {
traceId: useHex ? ctx.traceId : core.hexToBase64(ctx.traceId),
spanId: useHex ? ctx.spanId : core.hexToBase64(ctx.spanId),
parentSpanId: parentSpanId,
traceId: encoder.encodeSpanContext(ctx.traceId),
spanId: encoder.encodeSpanContext(ctx.spanId),
parentSpanId: encoder.encodeOptionalSpanContext(span.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,
startTimeUnixNano: hrTimeToFixed64Nanos(span.startTime),
endTimeUnixNano: hrTimeToFixed64Nanos(span.endTime),
startTimeUnixNano: encoder.encodeHrTime(span.startTime),
endTimeUnixNano: encoder.encodeHrTime(span.endTime),
attributes: toAttributes(span.attributes),
droppedAttributesCount: span.droppedAttributesCount,
events: span.events.map(toOtlpSpanEvent),
events: span.events.map(event => toOtlpSpanEvent(event, encoder)),
droppedEventsCount: span.droppedEventsCount,
status: {
// API and proto enums share the same values
code: status.code as unknown as EStatusCode,
message: status.message,
},
links: span.links.map(link => toOtlpLink(link, useHex)),
links: span.links.map(link => toOtlpLink(link, encoder)),
droppedLinksCount: span.droppedLinksCount,
};
}
export function toOtlpLink(link: Link, useHex?: boolean): ILink {
export function toOtlpLink(link: Link, encoder: Encoder): ILink {
return {
attributes: link.attributes ? toAttributes(link.attributes) : [],
spanId: useHex
? link.context.spanId
: core.hexToBase64(link.context.spanId),
traceId: useHex
? link.context.traceId
: core.hexToBase64(link.context.traceId),
spanId: encoder.encodeSpanContext(link.context.spanId),
traceId: encoder.encodeSpanContext(link.context.traceId),
traceState: link.context.traceState?.serialize(),
droppedAttributesCount: link.droppedAttributesCount || 0,
};
}
export function toOtlpSpanEvent(timedEvent: TimedEvent): IEvent {
export function toOtlpSpanEvent(
timedEvent: TimedEvent,
encoder: Encoder
): IEvent {
return {
attributes: timedEvent.attributes
? toAttributes(timedEvent.attributes)
: [],
name: timedEvent.name,
timeUnixNano: hrTimeToFixed64Nanos(timedEvent.time),
timeUnixNano: encoder.encodeHrTime(timedEvent.time),
droppedAttributesCount: timedEvent.droppedAttributesCount || 0,
};
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
import { IFixed64, IInstrumentationScope, IKeyValue } from '../common/types';
import { Fixed64, IInstrumentationScope, IKeyValue } from '../common/types';
import { IResource } from '../resource/types';
/** Properties of an ExportTraceServiceRequest. */
@ -81,10 +81,10 @@ export interface ISpan {
kind: ESpanKind;
/** Span startTimeUnixNano */
startTimeUnixNano: IFixed64;
startTimeUnixNano: Fixed64;
/** Span endTimeUnixNano */
endTimeUnixNano: IFixed64;
endTimeUnixNano: Fixed64;
/** Span attributes */
attributes: IKeyValue[];
@ -166,7 +166,7 @@ export const enum EStatusCode {
/** Properties of an Event. */
export interface IEvent {
/** Event timeUnixNano */
timeUnixNano: IFixed64;
timeUnixNano: Fixed64;
/** Event name */
name: string;

View File

@ -14,9 +14,14 @@
* limitations under the License.
*/
import { hexToBase64 } from '@opentelemetry/core';
import { getOtlpEncoder } from '../src';
import { toAnyValue } from '../src/common/internal';
import * as assert from 'assert';
const traceId = 'abcdef01234567890000000000000000';
const spanId = '12341234abcdabcd';
describe('common', () => {
describe('toAnyValue', () => {
it('serializes an array', () => {
@ -63,4 +68,64 @@ describe('common', () => {
});
});
});
describe('otlp encoder', () => {
it('defaults to long timestamps and base64 encoding given no options', () => {
const encoder = getOtlpEncoder();
assert.deepStrictEqual(encoder.encodeHrTime([1697978649, 99870675]), {
low: 3352011219,
high: 395341461,
});
assert.deepStrictEqual(
encoder.encodeSpanContext(traceId),
hexToBase64(traceId)
);
assert.deepStrictEqual(
encoder.encodeOptionalSpanContext(spanId),
hexToBase64(spanId)
);
assert.deepStrictEqual(
encoder.encodeOptionalSpanContext(undefined),
undefined
);
});
it('defaults to long timestamps and base64 encoding given empty options', () => {
const encoder = getOtlpEncoder({});
assert.deepStrictEqual(encoder.encodeHrTime([1697978649, 99870675]), {
low: 3352011219,
high: 395341461,
});
assert.deepStrictEqual(
encoder.encodeSpanContext(traceId),
hexToBase64(traceId)
);
assert.deepStrictEqual(
encoder.encodeOptionalSpanContext(spanId),
hexToBase64(spanId)
);
assert.deepStrictEqual(
encoder.encodeOptionalSpanContext(undefined),
undefined
);
});
it('can encode HrTime as string', () => {
const encoder = getOtlpEncoder({ useLongBits: false });
assert.deepStrictEqual(
encoder.encodeHrTime([1697978649, 99870675]),
'1697978649099870675'
);
});
it('can encode span context as hex', () => {
const encoder = getOtlpEncoder({ useHex: true });
assert.deepStrictEqual(encoder.encodeSpanContext(traceId), traceId);
assert.deepStrictEqual(encoder.encodeOptionalSpanContext(spanId), spanId);
assert.deepStrictEqual(
encoder.encodeOptionalSpanContext(undefined),
undefined
);
});
});
});

View File

@ -21,7 +21,6 @@ import {
createExportLogsServiceRequest,
ESeverityNumber,
IExportLogsServiceRequest,
UnsignedLong,
} from '../src';
import { ReadableLogRecord } from '@opentelemetry/sdk-logs';
import { SeverityNumber } from '@opentelemetry/api-logs';
@ -50,8 +49,8 @@ function createExpectedLogJson(useHex: boolean): IExportLogsServiceRequest {
scope: { name: 'scope_name_1', version: '0.1.0' },
logRecords: [
{
timeUnixNano: new UnsignedLong(-162521437, 391214506),
observedTimeUnixNano: new UnsignedLong(584929536, 391976663),
timeUnixNano: { low: 4132445859, high: 391214506 },
observedTimeUnixNano: { low: 584929536, high: 391976663 },
severityNumber: ESeverityNumber.SEVERITY_NUMBER_ERROR,
severityText: 'error',
body: { stringValue: 'some_log_body' },
@ -147,19 +146,26 @@ describe('Logs', () => {
});
it('returns null on an empty list', () => {
assert.deepStrictEqual(createExportLogsServiceRequest([], true), {
resourceLogs: [],
});
assert.deepStrictEqual(
createExportLogsServiceRequest([], { useHex: true }),
{
resourceLogs: [],
}
);
});
it('serializes a log record with useHex = true', () => {
const exportRequest = createExportLogsServiceRequest([log_1_1_1], true);
const exportRequest = createExportLogsServiceRequest([log_1_1_1], {
useHex: true,
});
assert.ok(exportRequest);
assert.deepStrictEqual(exportRequest, createExpectedLogJson(true));
});
it('serializes a log record with useHex = false', () => {
const exportRequest = createExportLogsServiceRequest([log_1_1_1], false);
const exportRequest = createExportLogsServiceRequest([log_1_1_1], {
useHex: false,
});
assert.ok(exportRequest);
assert.deepStrictEqual(exportRequest, createExpectedLogJson(false));
});
@ -167,7 +173,7 @@ describe('Logs', () => {
it('aggregates multiple logs with same resource and same scope', () => {
const exportRequest = createExportLogsServiceRequest(
[log_1_1_1, log_1_1_2],
false
{ useHex: false }
);
assert.ok(exportRequest);
assert.strictEqual(exportRequest.resourceLogs?.length, 1);
@ -181,7 +187,7 @@ describe('Logs', () => {
it('aggregates multiple logs with same resource and different scopes', () => {
const exportRequest = createExportLogsServiceRequest(
[log_1_1_1, log_1_2_1],
false
{ useHex: false }
);
assert.ok(exportRequest);
assert.strictEqual(exportRequest.resourceLogs?.length, 1);
@ -191,7 +197,7 @@ describe('Logs', () => {
it('aggregates multiple logs with different resources', () => {
const exportRequest = createExportLogsServiceRequest(
[log_1_1_1, log_2_1_1],
false
{ useHex: false }
);
assert.ok(exportRequest);
assert.strictEqual(exportRequest.resourceLogs?.length, 2);

View File

@ -26,7 +26,7 @@ import * as assert from 'assert';
import { createExportMetricsServiceRequest } from '../src/metrics';
import { EAggregationTemporality } from '../src/metrics/types';
import { hrTime } from '@opentelemetry/core';
import { hrTimeToFixed64Nanos } from '../src/common';
import { encodeAsLongBits } from '../src';
const START_TIME = hrTime();
const END_TIME = hrTime();
@ -351,8 +351,8 @@ describe('Metrics', () => {
dataPoints: [
{
attributes: expectedAttributes,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
asInt: 10,
},
],
@ -394,8 +394,8 @@ describe('Metrics', () => {
dataPoints: [
{
attributes: expectedAttributes,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
asInt: 10,
},
],
@ -438,8 +438,8 @@ describe('Metrics', () => {
dataPoints: [
{
attributes: expectedAttributes,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
asInt: 10,
},
],
@ -482,8 +482,8 @@ describe('Metrics', () => {
dataPoints: [
{
attributes: expectedAttributes,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
asInt: 10,
},
],
@ -524,8 +524,8 @@ describe('Metrics', () => {
dataPoints: [
{
attributes: expectedAttributes,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
asDouble: 10.5,
},
],
@ -582,8 +582,8 @@ describe('Metrics', () => {
sum: 9,
min: 1,
max: 8,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
},
],
},
@ -636,8 +636,8 @@ describe('Metrics', () => {
sum: 9,
min: undefined,
max: undefined,
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
},
],
},
@ -702,8 +702,8 @@ describe('Metrics', () => {
bucketCounts: [1, 0, 0, 0, 1, 0, 1, 0],
},
negative: { offset: 0, bucketCounts: [0] },
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
},
],
},
@ -764,8 +764,8 @@ describe('Metrics', () => {
bucketCounts: [1, 0, 0, 0, 1, 0, 1, 0],
},
negative: { offset: 0, bucketCounts: [0] },
startTimeUnixNano: hrTimeToFixed64Nanos(START_TIME),
timeUnixNano: hrTimeToFixed64Nanos(END_TIME),
startTimeUnixNano: encodeAsLongBits(START_TIME),
timeUnixNano: encodeAsLongBits(END_TIME),
},
],
},

View File

@ -0,0 +1,61 @@
/*
* 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 Benchmark = require('benchmark');
const { createExportTraceServiceRequest } = require('../../../build/src');
const { BasicTracerProvider } = require('@opentelemetry/sdk-trace-base');
const tracerProvider = new BasicTracerProvider();
const tracer = tracerProvider.getTracer('test')
const suite = new Benchmark.Suite();
const span = createSpan();
const spans = [];
for (let i = 0; i < 100; i++) {
spans.push(createSpan());
}
suite.on('cycle', event => {
console.log(String(event.target));
});
suite.add('transform 1 span', function() {
createExportTraceServiceRequest([span]);
});
suite.add('transform 100 spans', function() {
createExportTraceServiceRequest(spans);
});
suite.run();
function createSpan() {
const span = tracer.startSpan('span');
span.setAttribute('aaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaa');
span.setAttribute('bbbbbbbbbbbbbbbbbbbb', 'bbbbbbbbbbbbbbbbbbbb');
span.setAttribute('cccccccccccccccccccc', 'cccccccccccccccccccc');
span.setAttribute('dddddddddddddddddddd', 'dddddddddddddddddddd');
span.setAttribute('eeeeeeeeeeeeeeeeeeee', 'eeeeeeeeeeeeeeeeeeee');
span.setAttribute('ffffffffffffffffffff', 'ffffffffffffffffffff');
span.setAttribute('gggggggggggggggggggg', 'gggggggggggggggggggg');
span.setAttribute('hhhhhhhhhhhhhhhhhhhh', 'hhhhhhhhhhhhhhhhhhhh');
span.setAttribute('iiiiiiiiiiiiiiiiiiii', 'iiiiiiiiiiiiiiiiiiii');
span.setAttribute('jjjjjjjjjjjjjjjjjjjj', 'jjjjjjjjjjjjjjjjjjjj');
span.end();
return span;
}

View File

@ -19,13 +19,26 @@ import { Resource } from '@opentelemetry/resources';
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
import * as assert from 'assert';
import {
OtlpEncodingOptions,
createExportTraceServiceRequest,
ESpanKind,
EStatusCode,
UnsignedLong,
} from '../src';
function createExpectedSpanJson(useHex: boolean) {
function createExpectedSpanJson(options: OtlpEncodingOptions) {
const useHex = options.useHex ?? false;
const useLongBits = options.useLongBits ?? true;
const startTime = useLongBits
? { low: 1155450124, high: 382008859 }
: '1640715557342725388';
const endTime = useLongBits
? { low: 2455450124, high: 382008859 }
: '1640715558642725388';
const eventTime = useLongBits
? { low: 2355450124, high: 382008859 }
: '1640715558542725388';
const traceId = useHex
? '00000000000000000000000000000001'
: hexToBase64('00000000000000000000000000000001');
@ -80,8 +93,8 @@ function createExpectedSpanJson(useHex: boolean) {
],
},
],
startTimeUnixNano: new UnsignedLong(1155450124, 382008859),
endTimeUnixNano: new UnsignedLong(-1839517172, 382008859),
startTimeUnixNano: startTime,
endTimeUnixNano: endTime,
events: [
{
droppedAttributesCount: 0,
@ -94,7 +107,7 @@ function createExpectedSpanJson(useHex: boolean) {
},
],
name: 'some event',
timeUnixNano: new UnsignedLong(-1939517172, 382008859),
timeUnixNano: eventTime,
},
],
attributes: [
@ -184,26 +197,48 @@ describe('Trace', () => {
});
it('returns null on an empty list', () => {
assert.deepStrictEqual(createExportTraceServiceRequest([], true), {
resourceSpans: [],
});
assert.deepStrictEqual(
createExportTraceServiceRequest([], { useHex: true }),
{
resourceSpans: [],
}
);
});
it('serializes a span with useHex = true', () => {
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.deepStrictEqual(exportRequest, createExpectedSpanJson(true));
assert.deepStrictEqual(
exportRequest,
createExpectedSpanJson({ useHex: true })
);
});
it('serializes a span with useHex = false', () => {
const exportRequest = createExportTraceServiceRequest([span], false);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: false,
});
assert.ok(exportRequest);
assert.deepStrictEqual(exportRequest, createExpectedSpanJson(false));
assert.deepStrictEqual(
exportRequest,
createExpectedSpanJson({ useHex: false })
);
});
it('serializes a span with string timestamps', () => {
const options: OtlpEncodingOptions = { useLongBits: false };
const exportRequest = createExportTraceServiceRequest([span], options);
assert.ok(exportRequest);
assert.deepStrictEqual(exportRequest, createExpectedSpanJson(options));
});
it('serializes a span without a parent with useHex = true', () => {
(span as any).parentSpanId = undefined;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].parentSpanId,
@ -213,7 +248,9 @@ describe('Trace', () => {
it('serializes a span without a parent with useHex = false', () => {
(span as any).parentSpanId = undefined;
const exportRequest = createExportTraceServiceRequest([span], false);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: false,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].parentSpanId,
@ -225,7 +262,9 @@ describe('Trace', () => {
it('error', () => {
span.status.code = SpanStatusCode.ERROR;
span.status.message = 'error message';
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
const spanStatus =
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].status;
@ -235,7 +274,9 @@ describe('Trace', () => {
it('unset', () => {
span.status.code = SpanStatusCode.UNSET;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].status.code,
@ -247,7 +288,9 @@ describe('Trace', () => {
describe('span kind', () => {
it('consumer', () => {
(span as any).kind = SpanKind.CONSUMER;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].kind,
@ -256,7 +299,9 @@ describe('Trace', () => {
});
it('internal', () => {
(span as any).kind = SpanKind.INTERNAL;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].kind,
@ -265,7 +310,9 @@ describe('Trace', () => {
});
it('producer', () => {
(span as any).kind = SpanKind.PRODUCER;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].kind,
@ -274,7 +321,9 @@ describe('Trace', () => {
});
it('server', () => {
(span as any).kind = SpanKind.SERVER;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].kind,
@ -283,7 +332,9 @@ describe('Trace', () => {
});
it('unspecified', () => {
(span as any).kind = undefined;
const exportRequest = createExportTraceServiceRequest([span], true);
const exportRequest = createExportTraceServiceRequest([span], {
useHex: true,
});
assert.ok(exportRequest);
assert.strictEqual(
exportRequest.resourceSpans?.[0].scopeSpans[0].spans?.[0].kind,

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/sdk-logs",
"version": "0.44.0",
"version": "0.45.1",
"publishConfig": {
"access": "public"
},
@ -68,16 +68,16 @@
],
"sideEffects": false,
"peerDependencies": {
"@opentelemetry/api": ">=1.4.0 <1.7.0",
"@opentelemetry/api": ">=1.4.0 <1.8.0",
"@opentelemetry/api-logs": ">=0.39.1"
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": ">=1.4.0 <1.7.0",
"@opentelemetry/api-logs": "0.44.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": ">=1.4.0 <1.8.0",
"@opentelemetry/api-logs": "0.45.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
"cross-var": "1.1.0",
@ -87,7 +87,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -99,7 +99,7 @@
"webpack-merge": "5.9.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/resources": "1.17.1"
"@opentelemetry/core": "1.18.1",
"@opentelemetry/resources": "1.18.1"
}
}

View File

@ -114,18 +114,18 @@ export class LogRecord implements ReadableLogRecord {
if (value === null) {
return this;
}
if (
typeof value === 'object' &&
!Array.isArray(value) &&
Object.keys(value).length > 0
) {
this.attributes[key] = value;
}
if (key.length === 0) {
api.diag.warn(`Invalid attribute key: ${key}`);
return this;
}
if (!isAttributeValue(value)) {
if (
!isAttributeValue(value) &&
!(
typeof value === 'object' &&
!Array.isArray(value) &&
Object.keys(value).length > 0
)
) {
api.diag.warn(`Invalid attribute value set for key: ${key}`);
return this;
}
@ -136,7 +136,11 @@ export class LogRecord implements ReadableLogRecord {
) {
return this;
}
this.attributes[key] = this._truncateToSize(value);
if (isAttributeValue(value)) {
this.attributes[key] = this._truncateToSize(value);
} else {
this.attributes[key] = value;
}
return this;
}

View File

@ -179,14 +179,36 @@ describe('LogRecord', () => {
describe('when "attributeCountLimit" option defined', () => {
const { logRecord } = setup({ attributeCountLimit: 100 });
for (let i = 0; i < 150; i++) {
logRecord.setAttribute(`foo${i}`, `bar${i}`);
let attributeValue;
switch (i % 3) {
case 0: {
attributeValue = `bar${i}`;
break;
}
case 1: {
attributeValue = [`bar${i}`];
break;
}
case 2: {
attributeValue = {
bar: `bar${i}`,
};
break;
}
default: {
attributeValue = `bar${i}`;
}
}
logRecord.setAttribute(`foo${i}`, attributeValue);
}
it('should remove / drop all remaining values after the number of values exceeds this limit', () => {
const { attributes } = logRecord;
assert.strictEqual(Object.keys(attributes).length, 100);
assert.strictEqual(attributes.foo0, 'bar0');
assert.strictEqual(attributes.foo99, 'bar99');
assert.deepStrictEqual(attributes.foo98, { bar: 'bar98' });
assert.strictEqual(attributes.foo147, undefined);
assert.strictEqual(attributes.foo148, undefined);
assert.strictEqual(attributes.foo149, undefined);
});
});

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/shim-opencensus",
"version": "0.44.0",
"version": "0.45.1",
"description": "OpenCensus to OpenTelemetry shim",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -49,15 +49,15 @@
},
"devDependencies": {
"@opencensus/core": "0.1.0",
"@opentelemetry/api": "1.6.0",
"@opentelemetry/context-async-hooks": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@types/mocha": "10.0.2",
"@opentelemetry/api": "1.7.0",
"@opentelemetry/context-async-hooks": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -69,9 +69,9 @@
"@opentelemetry/api": "^1.0.0"
},
"dependencies": {
"@opentelemetry/core": "1.17.1",
"@opentelemetry/resources": "1.17.1",
"@opentelemetry/sdk-metrics": "1.17.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/resources": "1.18.1",
"@opentelemetry/sdk-metrics": "1.18.1",
"require-in-the-middle": "^7.1.1",
"semver": "^7.5.2"
},

View File

@ -1,6 +1,6 @@
{
"name": "propagation-validation-server",
"version": "1.18.0",
"version": "1.19.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.17.1",
"@opentelemetry/core": "1.17.1",
"@opentelemetry/sdk-trace-base": "1.17.1",
"@opentelemetry/context-async-hooks": "1.18.1",
"@opentelemetry/core": "1.18.1",
"@opentelemetry/sdk-trace-base": "1.18.1",
"axios": "1.5.1",
"body-parser": "1.19.0",
"express": "4.17.3"

View File

@ -1,18 +1,5 @@
{
"version": "independent",
"npmClient": "npm",
"packages": [
"api",
"packages/*",
"experimental/packages/*",
"experimental/examples/*",
"experimental/backwards-compatibility/*",
"integration-tests/*",
"selenium-tests",
"examples/otlp-exporter-node",
"examples/opentelemetry-web",
"examples/http",
"examples/https",
"examples/esm-http-ts"
]
"useWorkspaces": true
}

View File

@ -0,0 +1,14 @@
# Maintaining npm workspaces dependencies
This documents the caveats on maintaining npm workspaces dependencies.
## Karma
Packages with executables are hoisted in workspaces. In this case, `karma` and
its plugins are not installed in the same `node_modules` folder, which leads to
a condition that `karma` can not find the plugins necessary to run the tests.
To alleviate this, karma and its plugins are listed as root dependencies as
well.
Relevant issue: [[RFC] Add nohoist option for workspaces](https://github.com/npm/rfcs/issues/287)

63585
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -8,15 +8,14 @@
"prewatch": "npm run precompile",
"watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
"clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json",
"postinstall": "npm run update-ts-configs && npm run bootstrap",
"postinstall": "npm run update-ts-configs",
"submodule": "git submodule sync --recursive && git submodule update --init --recursive",
"version:update": "lerna run version:update",
"version:update": "lerna run version",
"test": "lerna run test",
"test:browser": "lerna run test:browser",
"test:webworker": "lerna run test:webworker",
"test:backcompat": "lerna run test:backcompat",
"test:bench": "lerna run test:bench",
"bootstrap": "lerna bootstrap --hoist --nohoist='zone.js'",
"changelog": "lerna-changelog",
"codecov": "lerna run codecov",
"codecov:browser": "lerna run codecov:browser",
@ -73,8 +72,14 @@
"eslint-plugin-node": "11.1.0",
"eslint-plugin-prettier": "5.0.1",
"gh-pages": "6.0.0",
"lerna": "7.1.5",
"@lerna/legacy-package-management": "7.1.5",
"karma": "6.4.2",
"karma-chrome-launcher": "3.1.0",
"karma-coverage": "2.2.1",
"karma-mocha": "2.0.1",
"karma-mocha-webworker": "1.3.0",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "6.6.2",
"linkinator": "5.0.2",
"markdownlint-cli": "0.36.0",
"prettier": "3.0.3",
@ -96,5 +101,19 @@
"internal": ":house: (Internal)"
},
"cacheDir": ".changelog"
}
},
"workspaces": [
"api",
"packages/*",
"experimental/packages/*",
"experimental/examples/*",
"experimental/backwards-compatibility/*",
"integration-tests/*",
"selenium-tests",
"examples/otlp-exporter-node",
"examples/opentelemetry-web",
"examples/http",
"examples/https",
"examples/esm-http-ts"
]
}

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-async-hooks",
"version": "1.17.1",
"version": "1.18.1",
"description": "OpenTelemetry AsyncHooks-based Context Manager",
"main": "build/src/index.js",
"types": "build/src/index.d.ts",
@ -44,19 +44,19 @@
"access": "public"
},
"devDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": ">=1.0.0 <1.8.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"codecov": "3.8.3",
"cross-var": "1.1.0",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"ts-mocha": "10.0.0",
"typescript": "4.4.4"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.7.0"
"@opentelemetry/api": ">=1.0.0 <1.8.0"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-context-async-hooks",
"sideEffects": false

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-zone-peer-dep",
"version": "1.17.1",
"version": "1.18.1",
"description": "OpenTelemetry Context Zone with peer dependency for zone.js",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -54,10 +54,10 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": ">=1.0.0 <1.8.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"@types/zone.js": "0.5.12",
"babel-loader": "8.3.0",
@ -70,7 +70,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -82,7 +82,7 @@
"zone.js": "0.11.4"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.7.0",
"@opentelemetry/api": ">=1.0.0 <1.8.0",
"zone.js": "^0.10.2 || ^0.11.0"
},
"sideEffects": false,

View File

@ -14,6 +14,7 @@
* limitations under the License.
*/
/// <reference types="zone.js" />
import { Context, ContextManager, ROOT_CONTEXT } from '@opentelemetry/api';
import { TargetWithEvents } from './types';
import { isListenerObject } from './util';

View File

@ -5,9 +5,6 @@
"rootDir": "src",
"tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo"
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts"
],

View File

@ -5,9 +5,6 @@
"rootDir": "src",
"tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo"
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts"
],

View File

@ -4,9 +4,6 @@
"outDir": "build",
"rootDir": "."
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts",
"test/**/*.ts"

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/context-zone",
"version": "1.17.1",
"version": "1.18.1",
"description": "OpenTelemetry Context Zone",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -51,9 +51,9 @@
},
"devDependencies": {
"@babel/core": "7.22.20",
"@types/mocha": "10.0.2",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-loader": "8.3.0",
"codecov": "3.8.3",
@ -63,7 +63,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -75,7 +75,7 @@
"webpack-merge": "5.9.0"
},
"dependencies": {
"@opentelemetry/context-zone-peer-dep": "1.17.1",
"@opentelemetry/context-zone-peer-dep": "1.18.1",
"zone.js": "^0.11.0"
},
"sideEffects": true,

View File

@ -5,9 +5,6 @@
"rootDir": "src",
"tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo"
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts"
],

View File

@ -5,9 +5,6 @@
"rootDir": "src",
"tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo"
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts"
],

View File

@ -4,9 +4,6 @@
"outDir": "build",
"rootDir": "."
},
"files": [
"node_modules/zone.js/dist/zone.js.d.ts"
],
"include": [
"src/**/*.ts",
"test/**/*.ts"

View File

@ -1,6 +1,6 @@
{
"name": "@opentelemetry/core",
"version": "1.17.1",
"version": "1.18.1",
"description": "OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.",
"main": "build/src/index.js",
"module": "build/esm/index.js",
@ -64,10 +64,10 @@
"access": "public"
},
"devDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.7.0",
"@types/mocha": "10.0.2",
"@opentelemetry/api": ">=1.0.0 <1.8.0",
"@types/mocha": "10.0.3",
"@types/node": "18.6.5",
"@types/sinon": "10.0.19",
"@types/sinon": "10.0.20",
"@types/webpack-env": "1.16.3",
"babel-plugin-istanbul": "6.1.1",
"codecov": "3.8.3",
@ -78,7 +78,7 @@
"karma-mocha": "2.0.1",
"karma-spec-reporter": "0.0.36",
"karma-webpack": "4.0.2",
"lerna": "7.1.5",
"lerna": "6.6.2",
"mocha": "10.2.0",
"nyc": "15.1.0",
"sinon": "15.1.2",
@ -88,10 +88,10 @@
"webpack": "4.46.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.7.0"
"@opentelemetry/api": ">=1.0.0 <1.8.0"
},
"dependencies": {
"@opentelemetry/semantic-conventions": "1.17.1"
"@opentelemetry/semantic-conventions": "1.18.1"
},
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core",
"sideEffects": false

Some files were not shown because too many files have changed in this diff Show More