Skip to content

Commit

Permalink
feat(exporter-logs-otlp-grpc): change OTLPLogsExporter to OTLPLogExpo…
Browse files Browse the repository at this point in the history
…rter
  • Loading branch information
fuaiyi committed May 18, 2023
1 parent d4a41bd commit 900a587
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 21 deletions.
6 changes: 3 additions & 3 deletions experimental/packages/exporter-logs-otlp-grpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,22 @@ To see documentation and sample code for the metric exporter, see the [exporter-

## Logs in Node - GRPC

The OTLPLogsExporter in Node expects the URL to only be the hostname. It will not work with `/v1/logs`. All
The OTLPLogExporter in Node expects the URL to only be the hostname. It will not work with `/v1/logs`. All
options that work with trace also work with logs.

```js
import {
LoggerProvider,
BatchLogRecordProcessor,
} from '@opentelemetry/sdk-logs';
import { OTLPLogsExporter } from '@opentelemetry/exporter-logs-otlp-grpc';
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-grpc';

const collectorOptions = {
// url is optional and can be omitted - default is http://localhost:4317
url: 'http://<collector-hostname>:<port>',
};

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

loggerProvider.addLogRecordProcessor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import {
/**
* OTLP Logs Exporter for Node
*/
export class OTLPLogsExporter
export class OTLPLogExporter
extends OTLPGRPCExporterNodeBase<ReadableLogRecord, IExportLogsServiceRequest>
implements LogRecordExporter
{
Expand Down
2 changes: 1 addition & 1 deletion experimental/packages/exporter-logs-otlp-grpc/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
* limitations under the License.
*/

export * from './OTLPLogsExporter';
export * from './OTLPLogExporter';
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import * as fs from 'fs';
import * as grpc from '@grpc/grpc-js';
import * as path from 'path';
import * as sinon from 'sinon';
import { OTLPLogsExporter } from '../src';
import { OTLPLogExporter } from '../src';

import {
ensureExportedLogRecordIsCorrect,
Expand Down Expand Up @@ -55,10 +55,10 @@ const metadata = new grpc.Metadata();
metadata.set('k', 'v');

const testCollectorExporter = (params: TestParams) =>
describe(`OTLPLogsExporter - node ${
describe(`OTLPLogExporter - node ${
params.useTLS ? 'with' : 'without'
} TLS, ${params.metadata ? 'with' : 'without'} metadata`, () => {
let collectorExporter: OTLPLogsExporter;
let collectorExporter: OTLPLogExporter;
let server: grpc.Server;
let exportedData: IResourceLogs | undefined;
let reqMetadata: grpc.Metadata | undefined;
Expand Down Expand Up @@ -122,7 +122,7 @@ const testCollectorExporter = (params: TestParams) =>
fs.readFileSync('./test/certs/client.crt')
)
: grpc.credentials.createInsecure();
collectorExporter = new OTLPLogsExporter({
collectorExporter = new OTLPLogExporter({
url: 'https://' + address,
credentials,
metadata: params.metadata,
Expand All @@ -140,7 +140,7 @@ const testCollectorExporter = (params: TestParams) =>
it('should warn about headers when using grpc', () => {
// Need to stub/spy on the underlying logger as the 'diag' instance is global
const spyLoggerWarn = sinon.stub(diag, 'warn');
collectorExporter = new OTLPLogsExporter({
collectorExporter = new OTLPLogExporter({
url: `http://${address}`,
headers: {
foo: 'bar',
Expand All @@ -151,7 +151,7 @@ const testCollectorExporter = (params: TestParams) =>
});
it('should warn about path in url', () => {
const spyLoggerWarn = sinon.stub(diag, 'warn');
collectorExporter = new OTLPLogsExporter({
collectorExporter = new OTLPLogExporter({
url: `http://${address}/v1/logs`,
});
const args = spyLoggerWarn.args[0];
Expand Down Expand Up @@ -198,7 +198,7 @@ const testCollectorExporter = (params: TestParams) =>
)
: grpc.credentials.createInsecure();

const collectorExporterWithTimeout = new OTLPLogsExporter({
const collectorExporterWithTimeout = new OTLPLogExporter({
url: 'grpcs://' + address,
credentials,
metadata: params.metadata,
Expand Down Expand Up @@ -229,7 +229,7 @@ const testCollectorExporter = (params: TestParams) =>
fs.readFileSync('./test/certs/client.crt')
)
: grpc.credentials.createInsecure();
collectorExporter = new OTLPLogsExporter({
collectorExporter = new OTLPLogExporter({
url: 'https://' + address,
credentials,
metadata: params.metadata,
Expand Down Expand Up @@ -272,7 +272,7 @@ const testCollectorExporter = (params: TestParams) =>
: grpc.credentials.createInsecure();

envSource.OTEL_EXPORTER_OTLP_COMPRESSION = 'gzip';
collectorExporter = new OTLPLogsExporter({
collectorExporter = new OTLPLogExporter({
url: 'https://' + address,
credentials,
metadata: params.metadata,
Expand All @@ -286,17 +286,17 @@ const testCollectorExporter = (params: TestParams) =>
});
});

describe('OTLPLogsExporter - node (getDefaultUrl)', () => {
describe('OTLPLogExporter - node (getDefaultUrl)', () => {
it('should default to localhost', done => {
const collectorExporter = new OTLPLogsExporter({});
const collectorExporter = new OTLPLogExporter({});
setTimeout(() => {
assert.strictEqual(collectorExporter['url'], 'localhost:4317');
done();
});
});
it('should keep the URL if included', done => {
const url = 'http://foo.bar.com';
const collectorExporter = new OTLPLogsExporter({ url });
const collectorExporter = new OTLPLogExporter({ url });
setTimeout(() => {
assert.strictEqual(collectorExporter['url'], 'foo.bar.com');
done();
Expand All @@ -308,21 +308,21 @@ describe('when configuring via environment', () => {
const envSource = process.env;
it('should use url defined in env', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar';
const collectorExporter = new OTLPLogsExporter();
const collectorExporter = new OTLPLogExporter();
assert.strictEqual(collectorExporter.url, 'foo.bar');
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = '';
});
it('should override global exporter url with signal url defined in env', () => {
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://foo.bar';
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = 'http://foo.logs';
const collectorExporter = new OTLPLogsExporter();
const collectorExporter = new OTLPLogExporter();
assert.strictEqual(collectorExporter.url, 'foo.logs');
envSource.OTEL_EXPORTER_OTLP_ENDPOINT = '';
envSource.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT = '';
});
it('should use headers defined via env', () => {
envSource.OTEL_EXPORTER_OTLP_HEADERS = 'foo=bar';
const collectorExporter = new OTLPLogsExporter();
const collectorExporter = new OTLPLogExporter();
assert.deepStrictEqual(collectorExporter.metadata?.get('foo'), ['bar']);
envSource.OTEL_EXPORTER_OTLP_HEADERS = '';
});
Expand All @@ -332,7 +332,7 @@ describe('when configuring via environment', () => {
metadata.set('goo', 'lol');
envSource.OTEL_EXPORTER_OTLP_HEADERS = 'foo=jar,bar=foo';
envSource.OTEL_EXPORTER_OTLP_LOGS_HEADERS = 'foo=boo';
const collectorExporter = new OTLPLogsExporter({ metadata });
const collectorExporter = new OTLPLogExporter({ metadata });
assert.deepStrictEqual(collectorExporter.metadata?.get('foo'), ['boo']);
assert.deepStrictEqual(collectorExporter.metadata?.get('bar'), ['foo']);
assert.deepStrictEqual(collectorExporter.metadata?.get('goo'), ['lol']);
Expand Down

0 comments on commit 900a587

Please sign in to comment.