Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
3a7418b
Initial commit for Jaeger Remote Sampler
legalimpurity Mar 14, 2024
8c6d1ef
Implementation for Jaeger remote sampling done
legalimpurity Mar 17, 2024
bed98fa
adding more coverage
legalimpurity Mar 22, 2024
73799a1
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Mar 25, 2024
318c261
more coverage wip
legalimpurity Mar 26, 2024
fd18fb3
more coverage wip
legalimpurity Mar 26, 2024
4536d9e
full coverage
legalimpurity Mar 27, 2024
48aefc4
reverted remove of tsconfig.tsbuildinfo
legalimpurity Mar 27, 2024
caeaa83
reverted remove of tsconfig.tsbuildinfo
legalimpurity Mar 27, 2024
b000047
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Mar 27, 2024
c3c2601
lint fix
legalimpurity Mar 27, 2024
53ae858
Merge branch 'feature/implement_jaeger_remote_sampler' of github.com:…
legalimpurity Mar 27, 2024
1075653
updated readme
legalimpurity Mar 27, 2024
c87718a
added package-lock.json
legalimpurity Mar 27, 2024
829a590
downgrading lerna to run with node 14
legalimpurity Mar 27, 2024
bbf5493
downgrading lerna to run with node 14
legalimpurity Mar 27, 2024
c44df07
fixed imports
legalimpurity Mar 28, 2024
46fb577
Merge remote-tracking branch 'origin/main' into feature/implement_jae…
legalimpurity Mar 28, 2024
3ba3cb4
lint fix
legalimpurity Mar 28, 2024
2db38f4
updating package-lock.json
legalimpurity Mar 29, 2024
a6198b7
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Mar 29, 2024
5814861
updating package-lock.json
legalimpurity Mar 30, 2024
97c70e8
merge main
legalimpurity Mar 30, 2024
d6b1765
merge main
legalimpurity Mar 30, 2024
3ec6c6e
updating package-lock.json
legalimpurity Mar 30, 2024
7f476b3
added changelog
legalimpurity Apr 1, 2024
180ad48
typo fix
legalimpurity Apr 3, 2024
c62dde6
merging main
legalimpurity Apr 3, 2024
9754732
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Apr 4, 2024
17503ed
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Apr 5, 2024
139c941
readding changelog, was accidentally removed from main merge
legalimpurity Apr 10, 2024
d0e844d
feat(sdk-trace-base): log resource attributes in ConsoleSpanExporter …
pichlermarc Apr 10, 2024
7cb4798
feat(sdk-node): remove deprecated methods from NodeSDK (#4609)
pichlermarc Apr 10, 2024
ef08524
test(expoerter-*-grpc): use RegExp to match Deadline Exceeded error (…
pichlermarc Apr 10, 2024
6f1e606
doc(instr-fetch): mention instr-undici for Node.js fetch() (#4624)
trentm Apr 11, 2024
72133b8
chore(instrumentation): remove accidental devDep on api-logs (#4627)
trentm Apr 11, 2024
f44b392
fix(otlp-grpc-exporter-base): avoid TypeError on exporter shutdown (#…
pichlermarc Apr 11, 2024
5ba514f
Merge remote-tracking branch 'origin/main' into feature/implement_jae…
legalimpurity Apr 26, 2024
413a8a1
addressing review comments
legalimpurity Apr 26, 2024
b553fbe
Merge branch 'open-telemetry:main' into feature/implement_jaeger_remo…
legalimpurity Apr 29, 2024
ced61c5
Merge remote-tracking branch 'origin/main' into feature/implement_jae…
legalimpurity Jul 4, 2024
206e85f
merge complete
legalimpurity Jul 4, 2024
a79c254
removed mocha and fixed tests
legalimpurity Jul 5, 2024
e416019
added readme and updated package.json version
legalimpurity Jul 5, 2024
d3d31c2
making functiosn private
legalimpurity Jul 7, 2024
a3df68a
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Jul 7, 2024
ef9f50d
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Jul 10, 2024
14dee0d
Merging main
legalimpurity Aug 13, 2024
7d7b2c4
fixes
legalimpurity Aug 13, 2024
00827f4
Merge remote-tracking branch 'origin/main' into feature/implement_jae…
legalimpurity Aug 13, 2024
5567ef5
fixes
legalimpurity Aug 13, 2024
e6fa10a
fixes
legalimpurity Aug 14, 2024
04af8f4
Merge remote-tracking branch 'origin/main' into feature/implement_jae…
legalimpurity Aug 14, 2024
1ebfabf
review fix
legalimpurity Aug 14, 2024
48b7669
updated documentation
legalimpurity Aug 16, 2024
daefc43
Merge branch 'open-telemetry:main' into feature/implement_jaeger_remo…
legalimpurity Aug 16, 2024
2440793
Merge branch 'open-telemetry:main' into feature/implement_jaeger_remo…
legalimpurity Aug 22, 2024
9a6c885
Update experimental/CHANGELOG.md
legalimpurity Aug 22, 2024
79f62dd
Update experimental/packages/sampler-jaeger-remote/src/types.ts
legalimpurity Aug 22, 2024
bdd17b2
Update experimental/packages/sampler-jaeger-remote/package.json
legalimpurity Aug 22, 2024
47c19f1
updating package-lock.json
legalimpurity Aug 22, 2024
0f29fe4
Merge branch 'main' into feature/implement_jaeger_remote_sampler
legalimpurity Aug 23, 2024
0d78761
lint fix
legalimpurity Aug 23, 2024
58de0d4
fixing readme lint issues
legalimpurity Aug 23, 2024
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
Prev Previous commit
Next Next commit
fix(otlp-grpc-exporter-base): avoid TypeError on exporter shutdown (#…
…4612)

* fix(otlp-grpc-exporter-base): avoid TypeError on exporter shutdown

* chore: update changelog

* fix: use gRPC Client type over any

* fixup! fix: use gRPC Client type over any

* fix: use ts-lint/ts-ignore
  • Loading branch information
pichlermarc authored and legalimpurity committed Apr 26, 2024
commit f44b3924e07d27e4f1666856c6ba89999c006eab
2 changes: 2 additions & 0 deletions experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ All notable changes to experimental packages in this project will be documented

### :bug: (Bug Fix)

* fix(otlp-grpc-exporter-base): avoid TypeError on exporter shutdown [#4612](https://github.com/open-telemetry/opentelemetry-js/pull/4612)

### :books: (Refine Doc)

### :house: (Internal)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@

// NOTE: do not change these type imports to actual imports. Doing so WILL break `@opentelemetry/instrumentation-http`,
// as they'd be imported before the http/https modules can be wrapped.
import type { Metadata, ServiceError, ChannelCredentials } from '@grpc/grpc-js';
import type {
Metadata,
ServiceError,
ChannelCredentials,
Client,
} from '@grpc/grpc-js';
import { ExportResponse } from './export-response';
import { IExporterTransport } from './exporter-transport';

Expand Down Expand Up @@ -85,13 +90,13 @@ export interface GrpcExporterTransportParameters {
}

export class GrpcExporterTransport implements IExporterTransport {
private _client?: any;
private _client?: Client;
private _metadata?: Metadata;

constructor(private _parameters: GrpcExporterTransportParameters) {}

shutdown() {
this._client?.shutdown();
this._client?.close();
}

send(data: Uint8Array): Promise<ExportResponse> {
Expand Down Expand Up @@ -150,6 +155,8 @@ export class GrpcExporterTransport implements IExporterTransport {
});
}

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore The gRPC client constructor is created on runtime, so we don't have any types for the resulting client.
this._client.export(
buffer,
this._metadata,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,37 +136,49 @@ describe('GrpcExporterTransport', function () {
});
});
describe('shutdown', function () {
let shutdownHandle: () => void | undefined;
const serverTestContext: ServerTestContext = {
requests: [],
serverResponseProvider: () => {
return { error: null, buffer: Buffer.from([]) };
},
};

beforeEach(async function () {
shutdownHandle = await startServer(serverTestContext);
});

afterEach(function () {
shutdownHandle();

// clear context
serverTestContext.requests = [];
serverTestContext.serverResponseProvider = () => {
return { error: null, buffer: Buffer.from([]) };
};

sinon.restore();
});

it('before send() does not error', function () {
const transport = new GrpcExporterTransport(simpleClientConfig);
transport.shutdown();

// no assertions, just checking that it does not throw any errors.
});

it('calls client shutdown if client is defined', function () {
// arrange
const transport = new GrpcExporterTransport({
metadata: createEmptyMetadata,
timeoutMillis: 100,
grpcPath: 'path',
grpcName: 'name',
credentials: createInsecureCredentials,
compression: 'gzip',
address: 'localhost:1234',
});
const shutdownStub = sinon.stub();
transport['_client'] = {
shutdown: shutdownStub,
};
it('calls _client.close() if client is defined', async function () {
const transport = new GrpcExporterTransport(simpleClientConfig);
// send something so that client is defined
await transport.send(Buffer.from([1, 2, 3]));
assert.ok(transport['_client'], '_client is not defined after send()');
const closeSpy = sinon.spy(transport['_client'], 'close');

// act
transport.shutdown();

// assert
sinon.assert.calledOnce(shutdownStub);
sinon.assert.calledOnce(closeSpy);
});
});
describe('send', function () {
Expand Down