Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

version.ts

# Logs
logs
# Logs in root
/logs
*.log
npm-debug.log*
yarn-debug.log*
Expand Down
2 changes: 2 additions & 0 deletions api/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ All notable changes to this project will be documented in this file.

### :boom: Breaking Change

* feat(api): Integrate @opentelemetry/api-logs package into @opentelemetry/api as experimental [#4862](https://github.com/open-telemetry/opentelemetry-js/pull/4862) @hectorhdzg

### :rocket: (Enhancement)

* feat(api): improve isValidSpanId, isValidTraceId performance [#5714](https://github.com/open-telemetry/opentelemetry-js/pull/5714) @seemk
Expand Down
6 changes: 3 additions & 3 deletions api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
},
"exports": {
".": {
"types": "./build/src/index.d.ts",
"module": "./build/esm/index.js",
"esnext": "./build/esnext/index.js",
"types": "./build/src/index.d.ts",
"default": "./build/src/index.js"
},
"./experimental": {
"types": "./build/src/experimental/index.d.ts",
"module": "./build/esm/experimental/index.js",
"esnext": "./build/esnext/experimental/index.js",
"types": "./build/src/experimental/index.d.ts",
"default": "./build/src/experimental/index.js"
}
},
Expand All @@ -34,7 +34,7 @@
"lint:fix": "eslint . --ext .ts --fix",
"lint": "eslint . --ext .ts",
"test:browser": "karma start --single-run",
"test": "nyc mocha 'test/**/*.test.ts'",
"test": "nyc mocha test/**/*.test.ts",
"test:webworker": "karma start karma.worker.js --single-run",
"cycle-check": "dpdm --exit-code circular:1 src/index.ts",
"version": "node ../scripts/version-update.js",
Expand Down
19 changes: 19 additions & 0 deletions api/src/experimental/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,22 @@

export { wrapTracer, SugaredTracer } from './trace/SugaredTracer';
export type { SugaredSpanOptions } from './trace/SugaredOptions';

// Logs Experimental API
export type { Logger } from './logs/types/Logger';
export type { LoggerProvider } from './logs/types/LoggerProvider';
export { SeverityNumber } from './logs/types/LogRecord';
export type { LogAttributes, LogBody, LogRecord } from './logs/types/LogRecord';
export type { LoggerOptions } from './logs/types/LoggerOptions';
export type { AnyValue, AnyValueMap } from './logs/types/AnyValue';
export { NOOP_LOGGER, NoopLogger } from './logs/NoopLogger';
export {
NOOP_LOGGER_PROVIDER,
NoopLoggerProvider,
} from './logs/NoopLoggerProvider';
export { ProxyLogger } from './logs/ProxyLogger';
export { ProxyLoggerProvider } from './logs/ProxyLoggerProvider';

import { LogsAPI } from './logs/api/logs';
export { LogsAPI };
export const logs = LogsAPI.getInstance();
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,18 @@
* limitations under the License.
*/

import { DiagAPI } from '../../../api/diag';
import {
API_BACKWARDS_COMPATIBILITY_VERSION,
GLOBAL_LOGS_API_KEY,
_global,
makeGetter,
} from '../internal/global-utils';
import { LoggerProvider } from '../types/LoggerProvider';
import { NOOP_LOGGER_PROVIDER } from '../NoopLoggerProvider';
registerGlobal,
getGlobal,
unregisterGlobal,
} from '../../../internal/global-utils';
import { ProxyLoggerProvider } from '../ProxyLoggerProvider';
import { Logger } from '../types/Logger';
import { LoggerOptions } from '../types/LoggerOptions';
import { ProxyLoggerProvider } from '../ProxyLoggerProvider';
import { LoggerProvider } from '../types/LoggerProvider';

const API_NAME = 'logs';

export class LogsAPI {
private static _instance?: LogsAPI;
Expand All @@ -41,19 +42,16 @@ export class LogsAPI {
return this._instance;
}

public setGlobalLoggerProvider(provider: LoggerProvider): LoggerProvider {
if (_global[GLOBAL_LOGS_API_KEY]) {
return this.getLoggerProvider();
}

_global[GLOBAL_LOGS_API_KEY] = makeGetter<LoggerProvider>(
API_BACKWARDS_COMPATIBILITY_VERSION,
provider,
NOOP_LOGGER_PROVIDER
public setGlobalLoggerProvider(provider: LoggerProvider): boolean {
const success = registerGlobal(
API_NAME,
this._proxyLoggerProvider,
DiagAPI.instance()
);
this._proxyLoggerProvider.setDelegate(provider);

return provider;
if (success) {
this._proxyLoggerProvider.setDelegate(provider);
}
return success;
}

/**
Expand All @@ -62,10 +60,7 @@ export class LogsAPI {
* @returns LoggerProvider
*/
public getLoggerProvider(): LoggerProvider {
return (
_global[GLOBAL_LOGS_API_KEY]?.(API_BACKWARDS_COMPATIBILITY_VERSION) ??
this._proxyLoggerProvider
);
return getGlobal(API_NAME) || this._proxyLoggerProvider;
}

/**
Expand All @@ -83,7 +78,7 @@ export class LogsAPI {

/** Remove the global logger provider */
public disable(): void {
delete _global[GLOBAL_LOGS_API_KEY];
unregisterGlobal(API_NAME, DiagAPI.instance());
this._proxyLoggerProvider = new ProxyLoggerProvider();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
* limitations under the License.
*/

import { Context, TimeInput } from '@opentelemetry/api';
import { TimeInput } from '../../../common/Time';
import { Context } from '../../../context/types';
import { AnyValue, AnyValueMap } from './AnyValue';

export type LogBody = AnyValue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Attributes } from '@opentelemetry/api';

import { Attributes } from '../../../common/Attributes';

export interface LoggerOptions {
/**
* The schemaUrl of the tracer or instrumentation library
Expand Down
2 changes: 2 additions & 0 deletions api/src/internal/global-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { TextMapPropagator } from '../propagation/TextMapPropagator';
import type { TracerProvider } from '../trace/tracer_provider';
import { VERSION } from '../version';
import { isCompatible } from './semver';
import { LoggerProvider } from '../experimental';

const major = VERSION.split('.')[0];
const GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(
Expand Down Expand Up @@ -101,4 +102,5 @@ type OTelGlobalAPI = {
context?: ContextManager;
metrics?: MeterProvider;
propagation?: TextMapPropagator;
logs?: LoggerProvider;
};
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/

import * as assert from 'assert';
import { NoopLogger } from '../../src/NoopLogger';
import { NoopLoggerProvider } from '../../src/NoopLoggerProvider';
import { NoopLogger } from '../../../src/experimental/logs/NoopLogger';
import { NoopLoggerProvider } from '../../../src/experimental/logs/NoopLoggerProvider';

describe('NoopLoggerProvider', () => {
it('should not crash', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
*/

import * as assert from 'assert';
import { SeverityNumber } from '../../src';
import { NoopLogger } from '../../src/NoopLogger';
import { NoopLoggerProvider } from '../../src/NoopLoggerProvider';
import {
SeverityNumber,
NoopLogger,
NoopLoggerProvider,
} from '../../../src/experimental/';

describe('NoopLogger', () => {
it('constructor should not crash', () => {
const logger = new NoopLoggerProvider().getLogger('test-noop');
assert.ok(logger instanceof NoopLogger);
assert(logger instanceof NoopLogger);
});

it('calling emit should not crash', () => {
Expand Down
3 changes: 1 addition & 2 deletions doc/upgrade-to-2.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ The OpenTelemetry JS SIG is responsible for numerous packages, all published to
| @opentelemetry/sdk-trace-web | 2.0.0 |
| @opentelemetry/shim-opentracing | 2.0.0 |
| @opentelemetry/api-events | 0.200.0 |
| @opentelemetry/api-logs | 0.200.0 |
| @opentelemetry/exporter-logs-otlp-grpc | 0.200.0 |
| @opentelemetry/exporter-logs-otlp-http | 0.200.0 |
| @opentelemetry/exporter-logs-otlp-proto | 0.200.0 |
Expand Down Expand Up @@ -107,7 +106,7 @@ Important: Both of these changes ([email protected], dropping old TypeScript vers

## 💥 ES2022 compilation target

The **compilation target for transpiled TypeScript has been raised to ES2022** (from ES2017) for all packages (except `@opentelemetry/api`, `@opentelemetry/api-logs`, `@opentelemetry/api-events`, and `@opentelemetry/semantic-conventions`).
The **compilation target for transpiled TypeScript has been raised to ES2022** (from ES2017) for all packages (except `@opentelemetry/api`, `@opentelemetry/api-events`, and `@opentelemetry/semantic-conventions`).

For Browser usage, this drops support for any browser versions that do not support ES2022 features.
For Node.js usage, this already follows from the new minimum supported Node.js versions mentioned above.
Expand Down
1 change: 0 additions & 1 deletion e2e-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
},
"dependencies": {
"@opentelemetry/api": "^1.3.0",
"@opentelemetry/api-logs": "0.202.0",
"@opentelemetry/exporter-logs-otlp-proto": "0.202.0",
"@opentelemetry/exporter-metrics-otlp-proto": "0.202.0",
"@opentelemetry/exporter-trace-otlp-proto": "0.202.0",
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {
trace,
metrics,
} from '@opentelemetry/api';
import { logs } from '@opentelemetry/api-logs';
import { logs } from '@opentelemetry/api/experimental';

// Enable diagnostic logging (optional)
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO);
Expand Down
2 changes: 1 addition & 1 deletion experimental/examples/logs/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/

import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';
import { logs, SeverityNumber } from '@opentelemetry/api-logs';
import { logs, SeverityNumber } from '@opentelemetry/api/experimental';
import {
LoggerProvider,
ConsoleLogRecordExporter,
Expand Down
1 change: 0 additions & 1 deletion experimental/examples/logs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
},
"dependencies": {
"@opentelemetry/api": "^1.7.0",
"@opentelemetry/api-logs": "0.202.0",
"@opentelemetry/sdk-logs": "0.202.0"
},
"devDependencies": {
Expand Down
3 changes: 0 additions & 3 deletions experimental/examples/logs/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
{
"path": "../../../api"
},
{
"path": "../../../experimental/packages/api-logs"
},
{
"path": "../../../experimental/packages/sdk-logs"
}
Expand Down
1 change: 0 additions & 1 deletion experimental/packages/api-logs/.eslintignore

This file was deleted.

8 changes: 0 additions & 8 deletions experimental/packages/api-logs/.eslintrc.js

This file was deleted.

Loading
Loading