From 8478ff30d9d9d54723b07966cd49eda4fe6d42f5 Mon Sep 17 00:00:00 2001 From: Svetlana Brennan <50715937+svetlanabrennan@users.noreply.github.com> Date: Mon, 2 Jun 2025 14:51:32 -0500 Subject: [PATCH 1/4] remove event api and sdk --- experimental/examples/events/README.md | 21 -- experimental/examples/events/index.ts | 55 ----- experimental/examples/events/package.json | 20 -- experimental/examples/events/tsconfig.json | 28 --- .../packages/api-events/.eslintignore | 1 - experimental/packages/api-events/.eslintrc.js | 8 - experimental/packages/api-events/LICENSE | 201 ------------------ experimental/packages/api-events/README.md | 60 ------ .../packages/api-events/karma.conf.js | 24 --- experimental/packages/api-events/package.json | 87 -------- .../api-events/src/NoopEventLogger.ts | 22 -- .../api-events/src/NoopEventLoggerProvider.ts | 32 --- .../packages/api-events/src/api/events.ts | 86 -------- experimental/packages/api-events/src/index.ts | 23 -- .../api-events/src/internal/global-utils.ts | 55 ----- .../src/platform/browser/globalThis.ts | 39 ---- .../api-events/src/platform/browser/index.ts | 17 -- .../packages/api-events/src/platform/index.ts | 17 -- .../src/platform/node/globalThis.ts | 19 -- .../api-events/src/platform/node/index.ts | 17 -- .../packages/api-events/src/types/Event.ts | 51 ----- .../api-events/src/types/EventLogger.ts | 26 --- .../src/types/EventLoggerOptions.ts | 30 --- .../src/types/EventLoggerProvider.ts | 38 ---- .../packages/api-events/test/api/api.test.ts | 71 ------- .../packages/api-events/test/index-webpack.ts | 20 -- .../api-events/test/internal/global.test.ts | 82 ------- .../noop-event-logger-provider.test.ts | 39 ---- .../noop-event-logger.test.ts | 33 --- .../packages/api-events/tsconfig.esm.json | 24 --- .../packages/api-events/tsconfig.esnext.json | 24 --- .../packages/api-events/tsconfig.json | 25 --- .../packages/sdk-events/.eslintignore | 1 - experimental/packages/sdk-events/.eslintrc.js | 7 - experimental/packages/sdk-events/.npmignore | 4 - experimental/packages/sdk-events/LICENSE | 201 ------------------ experimental/packages/sdk-events/README.md | 79 ------- .../packages/sdk-events/karma.conf.js | 26 --- experimental/packages/sdk-events/package.json | 98 --------- .../packages/sdk-events/src/EventLogger.ts | 45 ---- .../sdk-events/src/EventLoggerProvider.ts | 39 ---- experimental/packages/sdk-events/src/index.ts | 18 -- .../sdk-events/test/EventLogger.test.ts | 99 --------- .../test/EventLoggerProvider.test.ts | 53 ----- .../packages/sdk-events/test/index-webpack.ts | 20 -- .../sdk-events/test/index-webpack.worker.ts | 20 -- .../packages/sdk-events/test/utils.ts | 21 -- .../packages/sdk-events/tsconfig.esm.json | 25 --- .../packages/sdk-events/tsconfig.esnext.json | 25 --- .../packages/sdk-events/tsconfig.json | 25 --- experimental/packages/web-common/package.json | 1 - .../packages/web-common/tsconfig.esm.json | 3 - .../packages/web-common/tsconfig.esnext.json | 3 - .../packages/web-common/tsconfig.json | 3 - tsconfig.esm.json | 6 - tsconfig.esnext.json | 6 - tsconfig.json | 8 - 57 files changed, 2131 deletions(-) delete mode 100644 experimental/examples/events/README.md delete mode 100644 experimental/examples/events/index.ts delete mode 100644 experimental/examples/events/package.json delete mode 100644 experimental/examples/events/tsconfig.json delete mode 100644 experimental/packages/api-events/.eslintignore delete mode 100644 experimental/packages/api-events/.eslintrc.js delete mode 100644 experimental/packages/api-events/LICENSE delete mode 100644 experimental/packages/api-events/README.md delete mode 100644 experimental/packages/api-events/karma.conf.js delete mode 100644 experimental/packages/api-events/package.json delete mode 100644 experimental/packages/api-events/src/NoopEventLogger.ts delete mode 100644 experimental/packages/api-events/src/NoopEventLoggerProvider.ts delete mode 100644 experimental/packages/api-events/src/api/events.ts delete mode 100644 experimental/packages/api-events/src/index.ts delete mode 100644 experimental/packages/api-events/src/internal/global-utils.ts delete mode 100644 experimental/packages/api-events/src/platform/browser/globalThis.ts delete mode 100644 experimental/packages/api-events/src/platform/browser/index.ts delete mode 100644 experimental/packages/api-events/src/platform/index.ts delete mode 100644 experimental/packages/api-events/src/platform/node/globalThis.ts delete mode 100644 experimental/packages/api-events/src/platform/node/index.ts delete mode 100644 experimental/packages/api-events/src/types/Event.ts delete mode 100644 experimental/packages/api-events/src/types/EventLogger.ts delete mode 100644 experimental/packages/api-events/src/types/EventLoggerOptions.ts delete mode 100644 experimental/packages/api-events/src/types/EventLoggerProvider.ts delete mode 100644 experimental/packages/api-events/test/api/api.test.ts delete mode 100644 experimental/packages/api-events/test/index-webpack.ts delete mode 100644 experimental/packages/api-events/test/internal/global.test.ts delete mode 100644 experimental/packages/api-events/test/noop-implementations/noop-event-logger-provider.test.ts delete mode 100644 experimental/packages/api-events/test/noop-implementations/noop-event-logger.test.ts delete mode 100644 experimental/packages/api-events/tsconfig.esm.json delete mode 100644 experimental/packages/api-events/tsconfig.esnext.json delete mode 100644 experimental/packages/api-events/tsconfig.json delete mode 100644 experimental/packages/sdk-events/.eslintignore delete mode 100644 experimental/packages/sdk-events/.eslintrc.js delete mode 100644 experimental/packages/sdk-events/.npmignore delete mode 100644 experimental/packages/sdk-events/LICENSE delete mode 100644 experimental/packages/sdk-events/README.md delete mode 100644 experimental/packages/sdk-events/karma.conf.js delete mode 100644 experimental/packages/sdk-events/package.json delete mode 100644 experimental/packages/sdk-events/src/EventLogger.ts delete mode 100644 experimental/packages/sdk-events/src/EventLoggerProvider.ts delete mode 100644 experimental/packages/sdk-events/src/index.ts delete mode 100644 experimental/packages/sdk-events/test/EventLogger.test.ts delete mode 100644 experimental/packages/sdk-events/test/EventLoggerProvider.test.ts delete mode 100644 experimental/packages/sdk-events/test/index-webpack.ts delete mode 100644 experimental/packages/sdk-events/test/index-webpack.worker.ts delete mode 100644 experimental/packages/sdk-events/test/utils.ts delete mode 100644 experimental/packages/sdk-events/tsconfig.esm.json delete mode 100644 experimental/packages/sdk-events/tsconfig.esnext.json delete mode 100644 experimental/packages/sdk-events/tsconfig.json diff --git a/experimental/examples/events/README.md b/experimental/examples/events/README.md deleted file mode 100644 index 4d46172626d..00000000000 --- a/experimental/examples/events/README.md +++ /dev/null @@ -1,21 +0,0 @@ -## Installation - -```sh -# from this directory -npm install -``` - -## Run the Application - -```sh -npm start -``` - -## Useful links - -- For more information on OpenTelemetry, visit: -- For more information on OpenTelemetry logs, visit: - -## LICENSE - -Apache License 2.0 diff --git a/experimental/examples/events/index.ts b/experimental/examples/events/index.ts deleted file mode 100644 index 3a5eef4da28..00000000000 --- a/experimental/examples/events/index.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api'; -import { - LoggerProvider, - ConsoleLogRecordExporter, - SimpleLogRecordProcessor, -} from '@opentelemetry/sdk-logs'; -import { events } from '@opentelemetry/api-events'; -import { EventLoggerProvider } from '@opentelemetry/sdk-events'; - -// Optional and only needed to see the internal diagnostic logging (during development) -diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG); - -// configure global LoggerProvider -const loggerProvider = new LoggerProvider(); -loggerProvider.addLogRecordProcessor( - new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()) -); - -// uncomment to use OTLP exporter -// import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'; -// const logExporter = new OTLPLogExporter(); -// loggerProvider.addLogRecordProcessor(new SimpleLogRecordProcessor(logExporter)); - -// configure global EventLoggerProvider -const eventLoggerProvider = new EventLoggerProvider(loggerProvider); -events.setGlobalEventLoggerProvider(eventLoggerProvider); - -// emit a log record -const eventLogger = events.getEventLogger('example'); -eventLogger.emit({ - name: 'my-domain.my-event', - data: { - a: 1, - b: 'hello', - c: { - d: 123 - } - } -}); diff --git a/experimental/examples/events/package.json b/experimental/examples/events/package.json deleted file mode 100644 index 87c8cf075f2..00000000000 --- a/experimental/examples/events/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "events-example", - "version": "0.202.0", - "private": true, - "scripts": { - "start": "ts-node index.ts" - }, - "dependencies": { - "@opentelemetry/api": "^1.7.0", - "@opentelemetry/api-events": "0.202.0", - "@opentelemetry/api-logs": "0.202.0", - "@opentelemetry/exporter-logs-otlp-http": "0.202.0", - "@opentelemetry/sdk-events": "0.202.0", - "@opentelemetry/sdk-logs": "0.202.0" - }, - "devDependencies": { - "@types/node": "18.6.5", - "ts-node": "^10.9.1" - } -} diff --git a/experimental/examples/events/tsconfig.json b/experimental/examples/events/tsconfig.json deleted file mode 100644 index 62cb24e0552..00000000000 --- a/experimental/examples/events/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "compilerOptions": { - "outDir": "build", - "rootDir": "." - }, - "include": ["./index.ts"], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../../../experimental/packages/api-events" - }, - { - "path": "../../../experimental/packages/api-logs" - }, - { - "path": "../../../experimental/packages/sdk-events" - }, - { - "path": "../../../experimental/packages/sdk-logs" - }, - { - "path": "../../../experimental/packages/exporter-logs-otlp-http" - } - ] -} diff --git a/experimental/packages/api-events/.eslintignore b/experimental/packages/api-events/.eslintignore deleted file mode 100644 index 378eac25d31..00000000000 --- a/experimental/packages/api-events/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/experimental/packages/api-events/.eslintrc.js b/experimental/packages/api-events/.eslintrc.js deleted file mode 100644 index 5cb19b0298c..00000000000 --- a/experimental/packages/api-events/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - "env": { - "mocha": true, - "commonjs": true, - "shared-node-browser": true - }, - ...require('../../../eslint.base.js') -} diff --git a/experimental/packages/api-events/LICENSE b/experimental/packages/api-events/LICENSE deleted file mode 100644 index 261eeb9e9f8..00000000000 --- a/experimental/packages/api-events/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/experimental/packages/api-events/README.md b/experimental/packages/api-events/README.md deleted file mode 100644 index 66af35291c7..00000000000 --- a/experimental/packages/api-events/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# OpenTelemetry API for JavaScript - -[![NPM Published Version][npm-img]][npm-url] -[![Apache License][license-image]][license-image] - -This package provides everything needed to interact with the unstable OpenTelemetry Events API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser. - -## Beta Software - Use at your own risk - -The events API is considered alpha software and there is no guarantee of stability or long-term support. When the API is stabilized, it will be made available and supported long-term in the `@opentelemetry/api` package and this package will be deprecated. - -## Quick Start - -Purposefully left blank until SDK is available. - -## Version Compatibility - -Because the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same `node_modules` structure, the OpenTelemetry API takes advantage of a variable on the `global` object to store the global API. When an API method in the API package is called, it checks if this `global` API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API. - -## Advanced Use - -### API Methods - -If you are writing an instrumentation library, or prefer to call the API methods directly rather than using the `register` method on the Tracer/Meter/Logger Provider, OpenTelemetry provides direct access to the underlying API methods through the `@opentelemetry/api-events` package. API entry points are defined as global singleton objects `trace`, `metrics`, `logs`, `events`, `propagation`, and `context` which contain methods used to initialize SDK implementations and acquire resources from the API. - -- [Events API Documentation][events-api-docs] - -```javascript -const api = require("@opentelemetry/api-events"); - -/* A specific implementation of EventLoggerProvider comes from an SDK */ -const eventLoggerProvider = createEventLoggerProvider(); - -/* Initialize EventLoggerProvider */ -api.events.setGlobalEventLoggerProvider(eventLoggerProvider); -/* returns eventLoggerProvider (no-op if a working provider has not been initialized) */ -api.events.getEventLoggerProvider(); -/* returns an event logger from the registered global event logger provider (no-op if a working provider has not been initialized) */ -const eventLogger = api.events.getEventLogger(name, version); - -// logging an event in an instrumentation library -eventLogger.emit({ name: 'event-name' }); -``` - -## Useful links - -- For more information on OpenTelemetry, visit: -- For more about OpenTelemetry JavaScript: -- For help or feedback on this project, join us in [GitHub Discussions][discussions-url] - -## License - -Apache 2.0 - See [LICENSE][license-url] for more information. - -[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions -[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE -[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat -[npm-url]: https://www.npmjs.com/package/@opentelemetry/api-logs -[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fapi-logs.svg -[events-api-docs]: https://open-telemetry.github.io/opentelemetry-js/modules/_opentelemetry_api_events.html diff --git a/experimental/packages/api-events/karma.conf.js b/experimental/packages/api-events/karma.conf.js deleted file mode 100644 index 6174839d651..00000000000 --- a/experimental/packages/api-events/karma.conf.js +++ /dev/null @@ -1,24 +0,0 @@ -/*! - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const karmaWebpackConfig = require('../../../karma.webpack'); -const karmaBaseConfig = require('../../../karma.base'); - -module.exports = (config) => { - config.set(Object.assign({}, karmaBaseConfig, { - webpack: karmaWebpackConfig - })) -}; diff --git a/experimental/packages/api-events/package.json b/experimental/packages/api-events/package.json deleted file mode 100644 index 24839ab1775..00000000000 --- a/experimental/packages/api-events/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "@opentelemetry/api-events", - "version": "0.202.0", - "description": "Public events 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", - "scripts": { - "build": "npm run compile", - "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "compile": "tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "lint": "eslint . --ext .ts", - "lint:fix": "eslint . --ext .ts --fix", - "prepublishOnly": "npm run compile", - "precompile": "cross-var lerna run version --scope $npm_package_name --include-dependencies", - "prewatch": "node ../../../scripts/version-update.js", - "test": "nyc mocha test/**/*.test.ts", - "test:browser": "karma start --single-run", - "version": "node ../../../scripts/version-update.js", - "watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "align-api-deps": "node ../../../scripts/align-api-deps.js" - }, - "keywords": [ - "opentelemetry", - "nodejs", - "browser", - "profiling", - "events", - "stats", - "monitoring" - ], - "author": "OpenTelemetry Authors", - "license": "Apache-2.0", - "engines": { - "node": ">=8.0.0" - }, - "files": [ - "build/esm/**/*.js", - "build/esm/**/*.js.map", - "build/esm/**/*.d.ts", - "build/esnext/**/*.js", - "build/esnext/**/*.js.map", - "build/esnext/**/*.d.ts", - "build/src/**/*.js", - "build/src/**/*.js.map", - "build/src/**/*.d.ts", - "doc", - "LICENSE", - "README.md" - ], - "publishConfig": { - "access": "public" - }, - "dependencies": { - "@opentelemetry/api": "^1.3.0", - "@opentelemetry/api-logs": "0.202.0" - }, - "devDependencies": { - "@types/mocha": "10.0.10", - "@types/node": "^8.10.66", - "@types/webpack-env": "1.16.3", - "babel-plugin-istanbul": "7.0.0", - "cross-var": "1.1.0", - "karma": "6.4.4", - "karma-chrome-launcher": "3.1.0", - "karma-coverage": "2.2.1", - "karma-mocha": "2.0.1", - "karma-spec-reporter": "0.0.36", - "karma-webpack": "5.0.1", - "lerna": "6.6.2", - "mocha": "11.1.0", - "nyc": "17.1.0", - "ts-loader": "9.5.2", - "typescript": "5.0.4", - "webpack": "5.99.9" - }, - "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/api-events", - "sideEffects": false -} diff --git a/experimental/packages/api-events/src/NoopEventLogger.ts b/experimental/packages/api-events/src/NoopEventLogger.ts deleted file mode 100644 index 4ee4d7e23a7..00000000000 --- a/experimental/packages/api-events/src/NoopEventLogger.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { EventLogger } from './types/EventLogger'; -import { Event } from './types/Event'; - -export class NoopEventLogger implements EventLogger { - emit(_event: Event): void {} -} diff --git a/experimental/packages/api-events/src/NoopEventLoggerProvider.ts b/experimental/packages/api-events/src/NoopEventLoggerProvider.ts deleted file mode 100644 index 4fa5630b67d..00000000000 --- a/experimental/packages/api-events/src/NoopEventLoggerProvider.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { EventLoggerProvider } from './types/EventLoggerProvider'; -import { EventLogger } from './types/EventLogger'; -import { EventLoggerOptions } from './types/EventLoggerOptions'; -import { NoopEventLogger } from './NoopEventLogger'; - -export class NoopEventLoggerProvider implements EventLoggerProvider { - getEventLogger( - _name: string, - _version?: string | undefined, - _options?: EventLoggerOptions | undefined - ): EventLogger { - return new NoopEventLogger(); - } -} - -export const NOOP_EVENT_LOGGER_PROVIDER = new NoopEventLoggerProvider(); diff --git a/experimental/packages/api-events/src/api/events.ts b/experimental/packages/api-events/src/api/events.ts deleted file mode 100644 index c5a631c8fd4..00000000000 --- a/experimental/packages/api-events/src/api/events.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - API_BACKWARDS_COMPATIBILITY_VERSION, - GLOBAL_EVENTS_API_KEY, - _global, - makeGetter, -} from '../internal/global-utils'; -import { EventLoggerProvider } from '../types/EventLoggerProvider'; -import { NOOP_EVENT_LOGGER_PROVIDER } from '../NoopEventLoggerProvider'; -import { EventLogger } from '../types/EventLogger'; -import { EventLoggerOptions } from '../types/EventLoggerOptions'; - -export class EventsAPI { - private static _instance?: EventsAPI; - - private constructor() {} - - public static getInstance(): EventsAPI { - if (!this._instance) { - this._instance = new EventsAPI(); - } - - return this._instance; - } - - public setGlobalEventLoggerProvider( - provider: EventLoggerProvider - ): EventLoggerProvider { - if (_global[GLOBAL_EVENTS_API_KEY]) { - return this.getEventLoggerProvider(); - } - - _global[GLOBAL_EVENTS_API_KEY] = makeGetter( - API_BACKWARDS_COMPATIBILITY_VERSION, - provider, - NOOP_EVENT_LOGGER_PROVIDER - ); - - return provider; - } - - /** - * Returns the global event logger provider. - * - * @returns EventLoggerProvider - */ - public getEventLoggerProvider(): EventLoggerProvider { - return ( - _global[GLOBAL_EVENTS_API_KEY]?.(API_BACKWARDS_COMPATIBILITY_VERSION) ?? - NOOP_EVENT_LOGGER_PROVIDER - ); - } - - /** - * Returns a event logger from the global event logger provider. - * - * @returns EventLogger - */ - public getEventLogger( - name: string, - version?: string, - options?: EventLoggerOptions - ): EventLogger { - return this.getEventLoggerProvider().getEventLogger(name, version, options); - } - - /** Remove the global event logger provider */ - public disable(): void { - delete _global[GLOBAL_EVENTS_API_KEY]; - } -} diff --git a/experimental/packages/api-events/src/index.ts b/experimental/packages/api-events/src/index.ts deleted file mode 100644 index 3b4045dee7e..00000000000 --- a/experimental/packages/api-events/src/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export type { EventLogger } from './types/EventLogger'; -export type { EventLoggerProvider } from './types/EventLoggerProvider'; -export type { Event } from './types/Event'; -export type { EventLoggerOptions } from './types/EventLoggerOptions'; - -import { EventsAPI } from './api/events'; -export const events = EventsAPI.getInstance(); diff --git a/experimental/packages/api-events/src/internal/global-utils.ts b/experimental/packages/api-events/src/internal/global-utils.ts deleted file mode 100644 index 171cb0e1c7d..00000000000 --- a/experimental/packages/api-events/src/internal/global-utils.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { EventLoggerProvider } from '../types/EventLoggerProvider'; -import { _globalThis } from '../platform'; - -export const GLOBAL_EVENTS_API_KEY = Symbol.for( - 'io.opentelemetry.js.api.events' -); - -type Get = (version: number) => T; -type OtelGlobal = Partial<{ - [GLOBAL_EVENTS_API_KEY]: Get; -}>; - -export const _global = _globalThis as OtelGlobal; - -/** - * Make a function which accepts a version integer and returns the instance of an API if the version - * is compatible, or a fallback version (usually NOOP) if it is not. - * - * @param requiredVersion Backwards compatibility version which is required to return the instance - * @param instance Instance which should be returned if the required version is compatible - * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible - */ -export function makeGetter( - requiredVersion: number, - instance: T, - fallback: T -): Get { - return (version: number): T => - version === requiredVersion ? instance : fallback; -} - -/** - * A number which should be incremented each time a backwards incompatible - * change is made to the API. This number is used when an API package - * attempts to access the global API to ensure it is getting a compatible - * version. If the global API is not compatible with the API package - * attempting to get it, a NOOP API implementation will be returned. - */ -export const API_BACKWARDS_COMPATIBILITY_VERSION = 1; diff --git a/experimental/packages/api-events/src/platform/browser/globalThis.ts b/experimental/packages/api-events/src/platform/browser/globalThis.ts deleted file mode 100644 index 95373449d6e..00000000000 --- a/experimental/packages/api-events/src/platform/browser/globalThis.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - */ - -// Updates to this file should also be replicated to @opentelemetry/api and -// @opentelemetry/core too. - -/** - * - globalThis (New standard) - * - self (Will return the current window instance for supported browsers) - * - window (fallback for older browser implementations) - * - global (NodeJS implementation) - * - (When all else fails) - */ - -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef -export const _globalThis: typeof globalThis = - typeof globalThis === 'object' - ? globalThis - : typeof self === 'object' - ? self - : typeof window === 'object' - ? window - : typeof global === 'object' - ? (global as unknown as typeof globalThis) - : ({} as typeof globalThis); diff --git a/experimental/packages/api-events/src/platform/browser/index.ts b/experimental/packages/api-events/src/platform/browser/index.ts deleted file mode 100644 index e4d18640b48..00000000000 --- a/experimental/packages/api-events/src/platform/browser/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { _globalThis } from './globalThis'; diff --git a/experimental/packages/api-events/src/platform/index.ts b/experimental/packages/api-events/src/platform/index.ts deleted file mode 100644 index a6deb70b173..00000000000 --- a/experimental/packages/api-events/src/platform/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { _globalThis } from './node'; diff --git a/experimental/packages/api-events/src/platform/node/globalThis.ts b/experimental/packages/api-events/src/platform/node/globalThis.ts deleted file mode 100644 index 36e97e27326..00000000000 --- a/experimental/packages/api-events/src/platform/node/globalThis.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * 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. - */ - -/** only globals that common to node and browsers are allowed */ -// eslint-disable-next-line node/no-unsupported-features/es-builtins -export const _globalThis = typeof globalThis === 'object' ? globalThis : global; diff --git a/experimental/packages/api-events/src/platform/node/index.ts b/experimental/packages/api-events/src/platform/node/index.ts deleted file mode 100644 index e4d18640b48..00000000000 --- a/experimental/packages/api-events/src/platform/node/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { _globalThis } from './globalThis'; diff --git a/experimental/packages/api-events/src/types/Event.ts b/experimental/packages/api-events/src/types/Event.ts deleted file mode 100644 index 572dd3b08c0..00000000000 --- a/experimental/packages/api-events/src/types/Event.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Attributes, Context, TimeInput } from '@opentelemetry/api'; -import { AnyValue, SeverityNumber } from '@opentelemetry/api-logs'; - -export interface Event { - /** - * The time when the event occurred as UNIX Epoch time in nanoseconds. - */ - timestamp?: TimeInput; - - /** - * The name of the event. - */ - name: string; - - /** - * Data that describes the event. - * Intended to be used by instrumentation libraries. - */ - data?: AnyValue; - - /** - * Additional attributes that describe the event. - */ - attributes?: Attributes; - - /** - * Numerical value of the severity. - */ - severityNumber?: SeverityNumber; - - /** - * The Context associated with the Event. - */ - context?: Context; -} diff --git a/experimental/packages/api-events/src/types/EventLogger.ts b/experimental/packages/api-events/src/types/EventLogger.ts deleted file mode 100644 index 9a465b9c481..00000000000 --- a/experimental/packages/api-events/src/types/EventLogger.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Event } from './Event'; - -export interface EventLogger { - /** - * Emit an event. This method should only be used by instrumentations emitting events. - * - * @param event - */ - emit(event: Event): void; -} diff --git a/experimental/packages/api-events/src/types/EventLoggerOptions.ts b/experimental/packages/api-events/src/types/EventLoggerOptions.ts deleted file mode 100644 index 93aa29780a4..00000000000 --- a/experimental/packages/api-events/src/types/EventLoggerOptions.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Attributes } from '@opentelemetry/api'; - -export interface EventLoggerOptions { - /** - * The schemaUrl of the tracer or instrumentation library - * @default '' - */ - schemaUrl?: string; - - /** - * The instrumentation scope attributes to associate with emitted telemetry - */ - scopeAttributes?: Attributes; -} diff --git a/experimental/packages/api-events/src/types/EventLoggerProvider.ts b/experimental/packages/api-events/src/types/EventLoggerProvider.ts deleted file mode 100644 index 69eebe9202e..00000000000 --- a/experimental/packages/api-events/src/types/EventLoggerProvider.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { EventLogger } from './EventLogger'; -import { EventLoggerOptions } from './EventLoggerOptions'; - -/** - * A registry for creating named {@link EventLogger}s. - */ -export interface EventLoggerProvider { - /** - * Returns an EventLogger, creating one if one with the given name, version, and - * schemaUrl pair is not already created. - * - * @param name The name of the event logger or instrumentation library. - * @param version The version of the event logger or instrumentation library. - * @param options The options of the event logger or instrumentation library. - * @returns EventLogger An event logger with the given name and version. - */ - getEventLogger( - name: string, - version?: string, - options?: EventLoggerOptions - ): EventLogger; -} diff --git a/experimental/packages/api-events/test/api/api.test.ts b/experimental/packages/api-events/test/api/api.test.ts deleted file mode 100644 index 4fb0509397c..00000000000 --- a/experimental/packages/api-events/test/api/api.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import { EventLogger, events } from '../../src'; -import { NoopEventLogger } from '../../src/NoopEventLogger'; -import { NoopEventLoggerProvider } from '../../src/NoopEventLoggerProvider'; - -describe('API', () => { - const dummyEventLogger = new NoopEventLogger(); - - it('should expose a event logger provider via getEventLoggerProvider', () => { - const provider = events.getEventLoggerProvider(); - assert.ok(provider); - assert.strictEqual(typeof provider, 'object'); - }); - - describe('GlobalEventLoggerProvider', () => { - beforeEach(() => { - events.disable(); - }); - - it('should use the global event logger provider', () => { - events.setGlobalEventLoggerProvider(new TestEventLoggerProvider()); - const eventLogger = events - .getEventLoggerProvider() - .getEventLogger('name'); - assert.deepStrictEqual(eventLogger, dummyEventLogger); - }); - - it('should not allow overriding global provider if already set', () => { - const provider1 = new TestEventLoggerProvider(); - const provider2 = new TestEventLoggerProvider(); - events.setGlobalEventLoggerProvider(provider1); - assert.equal(events.getEventLoggerProvider(), provider1); - events.setGlobalEventLoggerProvider(provider2); - assert.equal(events.getEventLoggerProvider(), provider1); - }); - }); - - describe('getEventLogger', () => { - beforeEach(() => { - events.disable(); - }); - - it('should return a event logger instance from global provider', () => { - events.setGlobalEventLoggerProvider(new TestEventLoggerProvider()); - const eventLogger = events.getEventLogger('myEventLogger'); - assert.deepStrictEqual(eventLogger, dummyEventLogger); - }); - }); - - class TestEventLoggerProvider extends NoopEventLoggerProvider { - override getEventLogger(): EventLogger { - return dummyEventLogger; - } - } -}); diff --git a/experimental/packages/api-events/test/index-webpack.ts b/experimental/packages/api-events/test/index-webpack.ts deleted file mode 100644 index 061a48ccfa7..00000000000 --- a/experimental/packages/api-events/test/index-webpack.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const testsContext = require.context('.', true, /test$/); -testsContext.keys().forEach(testsContext); - -const srcContext = require.context('.', true, /src$/); -srcContext.keys().forEach(srcContext); diff --git a/experimental/packages/api-events/test/internal/global.test.ts b/experimental/packages/api-events/test/internal/global.test.ts deleted file mode 100644 index cdf71b556cb..00000000000 --- a/experimental/packages/api-events/test/internal/global.test.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import { - _global, - GLOBAL_EVENTS_API_KEY, -} from '../../src/internal/global-utils'; -import { NoopEventLoggerProvider } from '../../src/NoopEventLoggerProvider'; - -const api1 = require('../../src') as typeof import('../../src'); - -// clear cache and load a second instance of the api -for (const key of Object.keys(require.cache)) { - delete require.cache[key]; -} -const api2 = require('../../src') as typeof import('../../src'); - -describe('Global Utils', () => { - // prove they are separate instances - assert.notStrictEqual(api1, api2); - // that return separate noop instances to start - assert.notStrictEqual( - api1.events.getEventLoggerProvider(), - api2.events.getEventLoggerProvider() - ); - - beforeEach(() => { - api1.events.disable(); - api2.events.disable(); - }); - - it('should change the global event logger provider', () => { - const original = api1.events.getEventLoggerProvider(); - const newEventLoggerProvider = new NoopEventLoggerProvider(); - api1.events.setGlobalEventLoggerProvider(newEventLoggerProvider); - assert.notStrictEqual(api1.events.getEventLoggerProvider(), original); - assert.strictEqual( - api1.events.getEventLoggerProvider(), - newEventLoggerProvider - ); - }); - - it('should load an instance from one which was set in the other', () => { - api1.events.setGlobalEventLoggerProvider(new NoopEventLoggerProvider()); - assert.strictEqual( - api1.events.getEventLoggerProvider(), - api2.events.getEventLoggerProvider() - ); - }); - - it('should disable both if one is disabled', () => { - const original = api1.events.getEventLoggerProvider(); - - api1.events.setGlobalEventLoggerProvider(new NoopEventLoggerProvider()); - - assert.notStrictEqual(original, api1.events.getEventLoggerProvider()); - api2.events.disable(); - assert.strictEqual(original, api1.events.getEventLoggerProvider()); - }); - - it('should return the module NoOp implementation if the version is a mismatch', () => { - const original = api1.events.getEventLoggerProvider(); - api1.events.setGlobalEventLoggerProvider(new NoopEventLoggerProvider()); - const afterSet = _global[GLOBAL_EVENTS_API_KEY]!(-1); - - assert.strictEqual(original, afterSet); - }); -}); diff --git a/experimental/packages/api-events/test/noop-implementations/noop-event-logger-provider.test.ts b/experimental/packages/api-events/test/noop-implementations/noop-event-logger-provider.test.ts deleted file mode 100644 index 995eb473a34..00000000000 --- a/experimental/packages/api-events/test/noop-implementations/noop-event-logger-provider.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import { NoopEventLogger } from '../../src/NoopEventLogger'; -import { NoopEventLoggerProvider } from '../../src/NoopEventLoggerProvider'; - -describe('NoopLoggerProvider', () => { - it('should not crash', () => { - const eventLoggerProvider = new NoopEventLoggerProvider(); - - assert.ok( - eventLoggerProvider.getEventLogger('logger-name') instanceof - NoopEventLogger - ); - assert.ok( - eventLoggerProvider.getEventLogger('logger-name', 'v1') instanceof - NoopEventLogger - ); - assert.ok( - eventLoggerProvider.getEventLogger('logger-name', 'v1', { - schemaUrl: 'https://opentelemetry.io/schemas/1.7.0', - }) instanceof NoopEventLogger - ); - }); -}); diff --git a/experimental/packages/api-events/test/noop-implementations/noop-event-logger.test.ts b/experimental/packages/api-events/test/noop-implementations/noop-event-logger.test.ts deleted file mode 100644 index 6f76179f4ff..00000000000 --- a/experimental/packages/api-events/test/noop-implementations/noop-event-logger.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import { NoopEventLogger } from '../../src/NoopEventLogger'; -import { NoopEventLoggerProvider } from '../../src/NoopEventLoggerProvider'; - -describe('NoopEventLogger', () => { - it('constructor should not crash', () => { - const logger = new NoopEventLoggerProvider().getEventLogger('test-noop'); - assert.ok(logger instanceof NoopEventLogger); - }); - - it('calling emit should not crash', () => { - const logger = new NoopEventLoggerProvider().getEventLogger('test-noop'); - logger.emit({ - name: 'event name', - }); - }); -}); diff --git a/experimental/packages/api-events/tsconfig.esm.json b/experimental/packages/api-events/tsconfig.esm.json deleted file mode 100644 index a4090892510..00000000000 --- a/experimental/packages/api-events/tsconfig.esm.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "extends": "../../../tsconfig.base.esm.json", - "compilerOptions": { - "lib": [ - "es2017", - "dom" - ], - "outDir": "build/esm", - "rootDir": "src", - "target": "es2017", - "tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo" - }, - "include": [ - "src/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-logs" - } - ] -} diff --git a/experimental/packages/api-events/tsconfig.esnext.json b/experimental/packages/api-events/tsconfig.esnext.json deleted file mode 100644 index af0196b6795..00000000000 --- a/experimental/packages/api-events/tsconfig.esnext.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "extends": "../../../tsconfig.base.esnext.json", - "compilerOptions": { - "lib": [ - "es2017", - "dom" - ], - "outDir": "build/esnext", - "rootDir": "src", - "target": "es2017", - "tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo" - }, - "include": [ - "src/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-logs" - } - ] -} diff --git a/experimental/packages/api-events/tsconfig.json b/experimental/packages/api-events/tsconfig.json deleted file mode 100644 index 4000b1ae451..00000000000 --- a/experimental/packages/api-events/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "compilerOptions": { - "lib": [ - "es2017", - "dom" - ], - "outDir": "build", - "rootDir": ".", - "target": "es2017" - }, - "files": [], - "include": [ - "src/**/*.ts", - "test/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-logs" - } - ] -} diff --git a/experimental/packages/sdk-events/.eslintignore b/experimental/packages/sdk-events/.eslintignore deleted file mode 100644 index 378eac25d31..00000000000 --- a/experimental/packages/sdk-events/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/experimental/packages/sdk-events/.eslintrc.js b/experimental/packages/sdk-events/.eslintrc.js deleted file mode 100644 index fc24af194b2..00000000000 --- a/experimental/packages/sdk-events/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - env: { - mocha: true, - node: true, - }, - ...require('../../../eslint.base.js'), -}; diff --git a/experimental/packages/sdk-events/.npmignore b/experimental/packages/sdk-events/.npmignore deleted file mode 100644 index 9505ba9450f..00000000000 --- a/experimental/packages/sdk-events/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -/bin -/coverage -/doc -/test diff --git a/experimental/packages/sdk-events/LICENSE b/experimental/packages/sdk-events/LICENSE deleted file mode 100644 index 261eeb9e9f8..00000000000 --- a/experimental/packages/sdk-events/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/experimental/packages/sdk-events/README.md b/experimental/packages/sdk-events/README.md deleted file mode 100644 index f9f698742e3..00000000000 --- a/experimental/packages/sdk-events/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# OpenTelemetry Events SDK - -[![NPM Published Version][npm-img]][npm-url] -[![Apache License][license-image]][license-image] - -**Note: This is an experimental package under active development. New releases may include breaking changes.** - -This package provides an experimental Events SDK implementation. The Events SDK is implemented on top of the Logs SDK. - -## Installation - -```bash -npm install --save @opentelemetry/api-logs -npm install --save @opentelemetry/api-events -npm install --save @opentelemetry/sdk-events -``` - -## Usage - -Here is an example of configuring and using the Events SDK: - -```js -const { logs } = require('@opentelemetry/api-logs'); -const { events } = require('@opentelemetry/api-events'); -const { EventLoggerProvider } = require('@opentelemetry/sdk-events'); -const { - LoggerProvider, - SimpleLogRecordProcessor, - ConsoleLogRecordExporter, -} = require('@opentelemetry/sdk-logs'); - -// The Events SDK has a dependency on the Logs SDK. -// Any processing of events (e.g. export) is done through the Logs SDK. -const loggerProvider = new LoggerProvider(); -loggerProvider.addLogRecordProcessor( - new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()) -); - -// Register a global EventLoggerProvider. -// This would be used by instrumentations, similar to how the global TracerProvider, -// LoggerProvider and MeterProvider work. -const eventLoggerProvider = new EventLoggerProvider(loggerProvider); -events.setGlobalEventLoggerProvider(eventLoggerProvider); - -// Get an EventLogger from the global EventLoggerProvider -const eventLogger = events.getEventLogger('default'); - -// Emit an event -eventLogger.emit({ - name: 'my-domain.my-event', - data: { - field1: 'abc', - field2: 123 - } -}); - -// Shutdown is done directly on the LoggerProvider -loggerProvider.shutdown(); -``` - -## Example - -See [examples/events](https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/examples/events) - -## Useful links - -- For more information on OpenTelemetry, visit: -- For more about OpenTelemetry JavaScript: -- For help or feedback on this project, join us in [GitHub Discussions][discussions-url] - -## License - -Apache 2.0 - See [LICENSE][license-url] for more information. - -[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions -[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE -[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat -[npm-url]: https://www.npmjs.com/package/@opentelemetry/sdk-logs -[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fsdk%2Dlogs.svg diff --git a/experimental/packages/sdk-events/karma.conf.js b/experimental/packages/sdk-events/karma.conf.js deleted file mode 100644 index d1c8fbaac18..00000000000 --- a/experimental/packages/sdk-events/karma.conf.js +++ /dev/null @@ -1,26 +0,0 @@ -/*! - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const karmaWebpackConfig = require('../../../karma.webpack'); -const karmaBaseConfig = require('../../../karma.base'); - -module.exports = config => { - config.set( - Object.assign({}, karmaBaseConfig, { - webpack: karmaWebpackConfig, - }) - ); -}; diff --git a/experimental/packages/sdk-events/package.json b/experimental/packages/sdk-events/package.json deleted file mode 100644 index 56ca4d19072..00000000000 --- a/experimental/packages/sdk-events/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "@opentelemetry/sdk-events", - "version": "0.202.0", - "publishConfig": { - "access": "public" - }, - "description": "OpenTelemetry events SDK", - "author": "OpenTelemetry Authors", - "homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/sdk-events", - "license": "Apache-2.0", - "main": "build/src/index.js", - "module": "build/esm/index.js", - "esnext": "build/esnext/index.js", - "types": "build/src/index.d.ts", - "repository": { - "type": "git", - "url": "git+https://github.com/open-telemetry/opentelemetry-js.git" - }, - "bugs": { - "url": "https://github.com/open-telemetry/opentelemetry-js/issues" - }, - "engines": { - "node": "^18.19.0 || >=20.6.0" - }, - "scripts": { - "clean": "tsc --build --clean tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "compile": "tsc --build tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "lint": "eslint . --ext .ts", - "lint:fix": "eslint . --ext .ts --fix", - "peer-api-check": "node ../../../scripts/peer-api-check.js", - "prepublishOnly": "npm run compile", - "precompile": "cross-var lerna run version --scope $npm_package_name --include-dependencies", - "prewatch": "npm run precompile", - "tdd": "npm run test -- --watch-extensions ts --watch", - "tdd:browser": "karma start", - "test": "nyc mocha test/**/*.test.ts", - "test:browser": "karma start --single-run", - "version": "node ../../../scripts/version-update.js", - "watch": "tsc --build --watch tsconfig.json tsconfig.esm.json tsconfig.esnext.json", - "align-api-deps": "node ../../../scripts/align-api-deps.js" - }, - "keywords": [ - "opentelemetry", - "nodejs", - "browser", - "events", - "stats", - "profiling" - ], - "files": [ - "build/esm/**/*.js", - "build/esm/**/*.js.map", - "build/esm/**/*.d.ts", - "build/esnext/**/*.js", - "build/esnext/**/*.js.map", - "build/esnext/**/*.d.ts", - "build/src/**/*.js", - "build/src/**/*.js.map", - "build/src/**/*.d.ts", - "doc", - "LICENSE", - "README.md" - ], - "sideEffects": false, - "peerDependencies": { - "@opentelemetry/api": ">=1.4.0 <1.10.0" - }, - "devDependencies": { - "@babel/core": "7.27.1", - "@opentelemetry/api": "1.9.0", - "@types/mocha": "10.0.10", - "@types/node": "18.6.5", - "@types/sinon": "17.0.4", - "@types/webpack-env": "1.16.3", - "babel-loader": "10.0.0", - "babel-plugin-istanbul": "7.0.0", - "cross-var": "1.1.0", - "karma": "6.4.4", - "karma-chrome-launcher": "3.1.0", - "karma-coverage": "2.2.1", - "karma-mocha": "2.0.1", - "karma-spec-reporter": "0.0.36", - "karma-webpack": "5.0.1", - "lerna": "6.6.2", - "mocha": "11.1.0", - "nyc": "17.1.0", - "sinon": "15.1.2", - "ts-loader": "9.5.2", - "typescript": "5.0.4", - "webpack": "5.99.9", - "webpack-cli": "6.0.1" - }, - "dependencies": { - "@opentelemetry/api-events": "0.202.0", - "@opentelemetry/api-logs": "0.202.0", - "@opentelemetry/sdk-logs": "0.202.0" - } -} diff --git a/experimental/packages/sdk-events/src/EventLogger.ts b/experimental/packages/sdk-events/src/EventLogger.ts deleted file mode 100644 index f647bca7eb4..00000000000 --- a/experimental/packages/sdk-events/src/EventLogger.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { context } from '@opentelemetry/api'; -import { Event } from '@opentelemetry/api-events'; -import * as api from '@opentelemetry/api-events'; -import { Logger, LogRecord, SeverityNumber } from '@opentelemetry/api-logs'; - -export class EventLogger implements api.EventLogger { - private _logger: Logger; - - constructor(logger: Logger) { - this._logger = logger; - } - - emit(event: Event) { - const attributes = event.attributes || {}; - attributes['event.name'] = event.name; - - const logRecord: LogRecord = { - attributes: attributes, - context: event.context || context.active(), - severityNumber: event.severityNumber || SeverityNumber.INFO, - timestamp: event.timestamp || Date.now(), - }; - - if (event.data) { - logRecord.body = event.data; - } - - this._logger.emit(logRecord); - } -} diff --git a/experimental/packages/sdk-events/src/EventLoggerProvider.ts b/experimental/packages/sdk-events/src/EventLoggerProvider.ts deleted file mode 100644 index 6ea5ff32a04..00000000000 --- a/experimental/packages/sdk-events/src/EventLoggerProvider.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import * as api from '@opentelemetry/api-events'; -import { EventLogger } from './EventLogger'; -import { LoggerProvider } from '@opentelemetry/sdk-logs'; - -export class EventLoggerProvider implements api.EventLoggerProvider { - private _loggerProvider: LoggerProvider; - - constructor(loggerProvider: LoggerProvider) { - this._loggerProvider = loggerProvider; - } - - getEventLogger( - name: string, - version?: string, - options?: api.EventLoggerOptions - ): api.EventLogger { - const logger = this._loggerProvider.getLogger(name, version, options); - return new EventLogger(logger); - } - - public forceFlush(): Promise { - return this._loggerProvider.forceFlush(); - } -} diff --git a/experimental/packages/sdk-events/src/index.ts b/experimental/packages/sdk-events/src/index.ts deleted file mode 100644 index 40609994e5f..00000000000 --- a/experimental/packages/sdk-events/src/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { EventLogger } from './EventLogger'; -export { EventLoggerProvider } from './EventLoggerProvider'; diff --git a/experimental/packages/sdk-events/test/EventLogger.test.ts b/experimental/packages/sdk-events/test/EventLogger.test.ts deleted file mode 100644 index 3e97e82cfbd..00000000000 --- a/experimental/packages/sdk-events/test/EventLogger.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import * as sinon from 'sinon'; -import { EventLogger } from '../src'; -import { TestLogger } from './utils'; -import { SeverityNumber } from '@opentelemetry/api-logs'; - -describe('EventLogger', () => { - describe('constructor', () => { - it('should create an instance', () => { - const eventLogger = new EventLogger(new TestLogger()); - assert.ok(eventLogger instanceof EventLogger); - }); - }); - - describe('emit', () => { - it('should emit a logRecord instance', () => { - const logger = new TestLogger(); - const eventLogger = new EventLogger(logger); - const now = Date.now(); - - const spy = sinon.spy(logger, 'emit'); - eventLogger.emit({ - name: 'event name', - data: { - a: 1, - b: 2, - }, - attributes: { - c: 3, - d: 4, - }, - severityNumber: SeverityNumber.ERROR, - timestamp: now, - }); - - assert.ok( - spy.calledWith( - sinon.match({ - attributes: { - 'event.name': 'event name', - c: 3, - d: 4, - }, - body: { - a: 1, - b: 2, - }, - severityNumber: SeverityNumber.ERROR, - timestamp: now, - }) - ) - ); - }); - - it('should set defaults', () => { - const logger = new TestLogger(); - const eventLogger = new EventLogger(logger); - - const spy = sinon.spy(logger, 'emit'); - eventLogger.emit({ - name: 'event name', - }); - - assert.ok( - spy.calledWith( - sinon.match({ - severityNumber: SeverityNumber.INFO, - }) - ), - 'severityNumber should be set to INFO' - ); - - assert.ok( - spy.calledWith( - sinon.match((value: any) => { - return value.timestamp !== undefined; - }) - ), - 'timestamp should not be empty' - ); - }); - }); -}); diff --git a/experimental/packages/sdk-events/test/EventLoggerProvider.test.ts b/experimental/packages/sdk-events/test/EventLoggerProvider.test.ts deleted file mode 100644 index 6d1e03d356a..00000000000 --- a/experimental/packages/sdk-events/test/EventLoggerProvider.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as assert from 'assert'; -import { EventLogger, EventLoggerProvider } from '../src'; -import { LoggerProvider } from '@opentelemetry/sdk-logs'; -import * as sinon from 'sinon'; - -describe('EventLoggerProvider', () => { - describe('getLogger', () => { - it('returns an instance of EventLogger', () => { - const provider = new EventLoggerProvider(new LoggerProvider()); - const logger = provider.getEventLogger('logger name'); - assert.ok(logger instanceof EventLogger); - }); - - it('uses logger from provided LoggerProvider', () => { - const loggerProvider = new LoggerProvider(); - const spy = sinon.spy(loggerProvider, 'getLogger'); - - const provider = new EventLoggerProvider(loggerProvider); - - const eventLogger = provider.getEventLogger('logger name'); - assert.ok(eventLogger instanceof EventLogger); - spy.calledOnceWithExactly('logger name'); - }); - }); - - describe('forceFlush', () => { - it('calls forceFlush on loggerProvider', () => { - const loggerProvider = new LoggerProvider(); - const spy = sinon.spy(loggerProvider, 'forceFlush'); - - const provider = new EventLoggerProvider(loggerProvider); - - provider.forceFlush(); - spy.calledOnceWithExactly(); - }); - }); -}); diff --git a/experimental/packages/sdk-events/test/index-webpack.ts b/experimental/packages/sdk-events/test/index-webpack.ts deleted file mode 100644 index 802d6c4053e..00000000000 --- a/experimental/packages/sdk-events/test/index-webpack.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -{ - const testsContext = require.context('./', true, /test$/); - testsContext.keys().forEach(testsContext); -} diff --git a/experimental/packages/sdk-events/test/index-webpack.worker.ts b/experimental/packages/sdk-events/test/index-webpack.worker.ts deleted file mode 100644 index 802d6c4053e..00000000000 --- a/experimental/packages/sdk-events/test/index-webpack.worker.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -{ - const testsContext = require.context('./', true, /test$/); - testsContext.keys().forEach(testsContext); -} diff --git a/experimental/packages/sdk-events/test/utils.ts b/experimental/packages/sdk-events/test/utils.ts deleted file mode 100644 index 62f1006db78..00000000000 --- a/experimental/packages/sdk-events/test/utils.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { LogRecord, Logger } from '@opentelemetry/api-logs'; - -export class TestLogger implements Logger { - emit(logRecord: LogRecord): void {} -} diff --git a/experimental/packages/sdk-events/tsconfig.esm.json b/experimental/packages/sdk-events/tsconfig.esm.json deleted file mode 100644 index 0d8521d4d5a..00000000000 --- a/experimental/packages/sdk-events/tsconfig.esm.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../../tsconfig.base.esm.json", - "compilerOptions": { - "outDir": "build/esm", - "rootDir": "src", - "tsBuildInfoFile": "build/esm/tsconfig.esm.tsbuildinfo" - }, - "include": [ - "src/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-events" - }, - { - "path": "../api-logs" - }, - { - "path": "../sdk-logs" - } - ] -} diff --git a/experimental/packages/sdk-events/tsconfig.esnext.json b/experimental/packages/sdk-events/tsconfig.esnext.json deleted file mode 100644 index 5c21e6f73f9..00000000000 --- a/experimental/packages/sdk-events/tsconfig.esnext.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../../tsconfig.base.esnext.json", - "compilerOptions": { - "outDir": "build/esnext", - "rootDir": "src", - "tsBuildInfoFile": "build/esnext/tsconfig.esnext.tsbuildinfo" - }, - "include": [ - "src/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-events" - }, - { - "path": "../api-logs" - }, - { - "path": "../sdk-logs" - } - ] -} diff --git a/experimental/packages/sdk-events/tsconfig.json b/experimental/packages/sdk-events/tsconfig.json deleted file mode 100644 index d3fbf1ff645..00000000000 --- a/experimental/packages/sdk-events/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "compilerOptions": { - "outDir": "build", - "rootDir": "." - }, - "include": [ - "src/**/*.ts", - "test/**/*.ts" - ], - "references": [ - { - "path": "../../../api" - }, - { - "path": "../api-events" - }, - { - "path": "../api-logs" - }, - { - "path": "../sdk-logs" - } - ] -} diff --git a/experimental/packages/web-common/package.json b/experimental/packages/web-common/package.json index 098a1db2d43..b7a335c2804 100644 --- a/experimental/packages/web-common/package.json +++ b/experimental/packages/web-common/package.json @@ -73,7 +73,6 @@ "devDependencies": { "@babel/core": "7.27.1", "@opentelemetry/api": "1.9.0", - "@opentelemetry/api-events": "0.202.0", "@opentelemetry/api-logs": "0.202.0", "@types/mocha": "10.0.10", "@types/node": "18.6.5", diff --git a/experimental/packages/web-common/tsconfig.esm.json b/experimental/packages/web-common/tsconfig.esm.json index ec46f6c3f73..15f94413441 100644 --- a/experimental/packages/web-common/tsconfig.esm.json +++ b/experimental/packages/web-common/tsconfig.esm.json @@ -18,9 +18,6 @@ { "path": "../../../semantic-conventions" }, - { - "path": "../api-events" - }, { "path": "../api-logs" }, diff --git a/experimental/packages/web-common/tsconfig.esnext.json b/experimental/packages/web-common/tsconfig.esnext.json index 409a9fcb9b6..54dee03ec7a 100644 --- a/experimental/packages/web-common/tsconfig.esnext.json +++ b/experimental/packages/web-common/tsconfig.esnext.json @@ -18,9 +18,6 @@ { "path": "../../../semantic-conventions" }, - { - "path": "../api-events" - }, { "path": "../api-logs" }, diff --git a/experimental/packages/web-common/tsconfig.json b/experimental/packages/web-common/tsconfig.json index b2afc54f191..b23ef40578d 100644 --- a/experimental/packages/web-common/tsconfig.json +++ b/experimental/packages/web-common/tsconfig.json @@ -18,9 +18,6 @@ { "path": "../../../semantic-conventions" }, - { - "path": "../api-events" - }, { "path": "../api-logs" }, diff --git a/tsconfig.esm.json b/tsconfig.esm.json index 1a99e986fd2..2bb983f4064 100644 --- a/tsconfig.esm.json +++ b/tsconfig.esm.json @@ -5,9 +5,6 @@ { "path": "api/tsconfig.esm.json" }, - { - "path": "experimental/packages/api-events/tsconfig.esm.json" - }, { "path": "experimental/packages/api-logs/tsconfig.esm.json" }, @@ -47,9 +44,6 @@ { "path": "experimental/packages/otlp-transformer/tsconfig.esm.json" }, - { - "path": "experimental/packages/sdk-events/tsconfig.esm.json" - }, { "path": "experimental/packages/sdk-logs/tsconfig.esm.json" }, diff --git a/tsconfig.esnext.json b/tsconfig.esnext.json index 1ed2cfadb57..ac540a88b2d 100644 --- a/tsconfig.esnext.json +++ b/tsconfig.esnext.json @@ -5,9 +5,6 @@ { "path": "api/tsconfig.esnext.json" }, - { - "path": "experimental/packages/api-events/tsconfig.esnext.json" - }, { "path": "experimental/packages/api-logs/tsconfig.esnext.json" }, @@ -47,9 +44,6 @@ { "path": "experimental/packages/otlp-transformer/tsconfig.esnext.json" }, - { - "path": "experimental/packages/sdk-events/tsconfig.esnext.json" - }, { "path": "experimental/packages/sdk-logs/tsconfig.esnext.json" }, diff --git a/tsconfig.json b/tsconfig.json index 20d0a5a10df..902f28f45f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,6 @@ "entryPointStrategy": "packages", "entryPoints": [ "api", - "experimental/packages/api-events", "experimental/packages/api-logs", "experimental/packages/exporter-logs-otlp-grpc", "experimental/packages/exporter-logs-otlp-http", @@ -28,7 +27,6 @@ "experimental/packages/otlp-grpc-exporter-base", "experimental/packages/otlp-transformer", "experimental/packages/sampler-jaeger-remote", - "experimental/packages/sdk-events", "experimental/packages/sdk-logs", "experimental/packages/shim-opencensus", "experimental/packages/web-common", @@ -62,9 +60,6 @@ { "path": "api" }, - { - "path": "experimental/packages/api-events" - }, { "path": "experimental/packages/api-logs" }, @@ -131,9 +126,6 @@ { "path": "experimental/packages/sampler-jaeger-remote" }, - { - "path": "experimental/packages/sdk-events" - }, { "path": "experimental/packages/sdk-logs" }, From c6b8b84e79402ee3239c6cf953118ec808057e5b Mon Sep 17 00:00:00 2001 From: Svetlana Brennan <50715937+svetlanabrennan@users.noreply.github.com> Date: Mon, 2 Jun 2025 15:56:56 -0500 Subject: [PATCH 2/4] add changelog --- experimental/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index f08070e8292..773bff38202 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -15,6 +15,7 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2 ### :books: Documentation ### :house: Internal +* refactor: refactor: Removed `api-events` and `sdk-events` [#5737](https://github.com/open-telemetry/opentelemetry-js/pull/5737) @svetlanabrennan ## 0.202.0 From 3d760fdfd14a61f0b455334f2dae84c46cd623d9 Mon Sep 17 00:00:00 2001 From: Svetlana Brennan <50715937+svetlanabrennan@users.noreply.github.com> Date: Mon, 2 Jun 2025 15:59:05 -0500 Subject: [PATCH 3/4] fix typo --- experimental/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 773bff38202..88a4048ac4d 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -15,7 +15,7 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2 ### :books: Documentation ### :house: Internal -* refactor: refactor: Removed `api-events` and `sdk-events` [#5737](https://github.com/open-telemetry/opentelemetry-js/pull/5737) @svetlanabrennan +* refactor: Removed `api-events` and `sdk-events` [#5737](https://github.com/open-telemetry/opentelemetry-js/pull/5737) @svetlanabrennan ## 0.202.0 From 474915d96afb56558343098e0e37f0f425ebf023 Mon Sep 17 00:00:00 2001 From: Svetlana Brennan <50715937+svetlanabrennan@users.noreply.github.com> Date: Mon, 2 Jun 2025 16:12:15 -0500 Subject: [PATCH 4/4] fix lint --- experimental/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 88a4048ac4d..5f0836a72e3 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -15,6 +15,7 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2 ### :books: Documentation ### :house: Internal + * refactor: Removed `api-events` and `sdk-events` [#5737](https://github.com/open-telemetry/opentelemetry-js/pull/5737) @svetlanabrennan ## 0.202.0