Skip to content
Merged
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
2 changes: 2 additions & 0 deletions experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2

### :boom: Breaking Changes

* feat(sdk-logs)!: Removed deprecated LoggerProvider#addLogRecordProcessor() [#5764](https://github.com/open-telemetry/opentelemetry-js/pull/5764) @svetlanabrennan

### :rocket: Features

### :bug: Bug Fixes
Expand Down
11 changes: 7 additions & 4 deletions experimental/examples/logs/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ import {
// Optional and only needed to see the internal diagnostic logging (during development)
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);

const loggerProvider = new LoggerProvider();
loggerProvider.addLogRecordProcessor(
new SimpleLogRecordProcessor(new ConsoleLogRecordExporter())
);
const loggerProvider = new LoggerProvider({
processors: [
new SimpleLogRecordProcessor(
new ConsoleLogRecordExporter()
)
],
});

logs.setGlobalLoggerProvider(loggerProvider);

Expand Down
8 changes: 3 additions & 5 deletions experimental/packages/exporter-logs-otlp-grpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,9 @@ const collectorOptions = {
};

const loggerExporter = new OTLPLogExporter(collectorOptions);
const loggerProvider = new LoggerProvider();

loggerProvider.addLogRecordProcessor(
new BatchLogRecordProcessor(loggerExporter)
);
const loggerProvider = new LoggerProvider({
processors: [new BatchRecordProcessor(loggerExporter)]
});

['SIGINT', 'SIGTERM'].forEach(signal => {
process.on(signal, () => loggerProvider.shutdown().catch(console.error));
Expand Down
12 changes: 6 additions & 6 deletions experimental/packages/exporter-logs-otlp-http/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ const collectorOptions = {
concurrencyLimit: 1, // an optional limit on pending requests
};
const logExporter = new OTLPLogExporter(collectorOptions);
const loggerProvider = new LoggerProvider();

loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
const loggerProvider = new LoggerProvider({
processors: [new BatchRecordProcessor(logExporter)]
});

const logger = loggerProvider.getLogger('default', '1.0.0');
// Emit a log
Expand All @@ -66,9 +66,9 @@ const collectorOptions = {
concurrencyLimit: 1, // an optional limit on pending requests
};
const logExporter = new OTLPLogExporter(collectorOptions);
const loggerProvider = new LoggerProvider();

loggerProvider.addLogRecordProcessor(new BatchLogRecordProcessor(logExporter));
const loggerProvider = new LoggerProvider({
processors: [new BatchRecordProcessor(logExporter)]
});

const logger = loggerProvider.getLogger('default', '1.0.0');
// Emit a log
Expand Down
6 changes: 4 additions & 2 deletions experimental/packages/exporter-logs-otlp-proto/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ const collectorOptions = {
}, //an optional object containing custom headers to be sent with each request will only work with http
};

const logProvider = new LoggerProvider({resource: resourceFromAttributes({'service.name': 'testApp'})});
const logExporter = new OTLPLogExporter(collectorOptions);
logProvider.addLogRecordProcessor(new SimpleLogRecordProcessor(exporter));
const logProvider = new LoggerProvider({
resource: resourceFromAttributes({'service.name': 'testApp'}),
processors: [new SimpleLogRecordProcessor(logExporter)]
});

const logger = logProvider.getLogger('test_log_instrumentation');

Expand Down
9 changes: 4 additions & 5 deletions experimental/packages/sdk-logs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,10 @@ const {
} = require('@opentelemetry/sdk-logs');

// To start a logger, you first need to initialize the Logger provider.
const loggerProvider = new LoggerProvider();
// Add a processor to export log record
loggerProvider.addLogRecordProcessor(
new SimpleLogRecordProcessor(new ConsoleLogRecordExporter())
);
// and add a processor to export log record
const loggerProvider = new LoggerProvider({
processors: [new SimpleLogRecordProcessor(new ConsoleLogRecordExporter())]
});

// To create a log record, you first need to get a Logger instance
const logger = loggerProvider.getLogger('default');
Expand Down
28 changes: 0 additions & 28 deletions experimental/packages/sdk-logs/src/LoggerProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ import type { LoggerProviderConfig } from './types';
import { Logger } from './Logger';
import { loadDefaultConfig, reconfigureLimits } from './config';
import { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';
import { LogRecordProcessor } from './LogRecordProcessor';
import { MultiLogRecordProcessor } from './MultiLogRecordProcessor';

export const DEFAULT_LOGGER_NAME = 'unknown';

Expand Down Expand Up @@ -75,32 +73,6 @@ export class LoggerProvider implements logsAPI.LoggerProvider {
return this._sharedState.loggers.get(key)!;
}

/**
* @deprecated add your processors in the constructors instead.
*
* Adds a new {@link LogRecordProcessor} to this logger.
* @param processor the new LogRecordProcessor to be added.
*/
public addLogRecordProcessor(processor: LogRecordProcessor) {
if (this._sharedState.registeredLogRecordProcessors.length === 0) {
// since we might have enabled by default a batchProcessor, we disable it
// before adding the new one
this._sharedState.activeProcessor
.shutdown()
.catch(err =>
diag.error(
'Error while trying to shutdown current log record processor',
err
)
);
}
this._sharedState.registeredLogRecordProcessors.push(processor);
this._sharedState.activeProcessor = new MultiLogRecordProcessor(
this._sharedState.registeredLogRecordProcessors,
this._sharedState.forceFlushTimeoutMillis
);
}

/**
* Notifies all registered LogRecordProcessor to flush any buffered data.
*
Expand Down
31 changes: 16 additions & 15 deletions experimental/packages/sdk-logs/test/common/LoggerProvider.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,22 @@ describe('LoggerProvider', () => {
assert.ok(processor instanceof NoopLogRecordProcessor);
});

it('should add logRecord processor', () => {
const logRecordProcessor = new NoopLogRecordProcessor();
const provider = new LoggerProvider({
processors: [logRecordProcessor],
});
const sharedState = provider['_sharedState'];
assert.ok(
sharedState.activeProcessor instanceof MultiLogRecordProcessor
);
assert.strictEqual(sharedState.activeProcessor.processors.length, 1);
assert.strictEqual(
sharedState.activeProcessor.processors[0],
logRecordProcessor
);
});

it('should have default resource if not pass', () => {
const provider = new LoggerProvider();
const { resource } = provider['_sharedState'];
Expand Down Expand Up @@ -201,21 +217,6 @@ describe('LoggerProvider', () => {
});
});

describe('addLogRecordProcessor', () => {
it('should add logRecord processor', () => {
const provider = new LoggerProvider();
const sharedState = provider['_sharedState'];
const logRecordProcessor = new NoopLogRecordProcessor();
provider.addLogRecordProcessor(logRecordProcessor);
assert.ok(sharedState.activeProcessor instanceof MultiLogRecordProcessor);
assert.strictEqual(sharedState.activeProcessor.processors.length, 1);
assert.strictEqual(
sharedState.activeProcessor.processors[0],
logRecordProcessor
);
});
});

describe('.forceFlush()', () => {
it('should call forceFlush on all registered log record processors', done => {
sinon.restore();
Expand Down