@opentelemetry/instrumentation-grpc
Version:
OpenTelemetry instrumentation for `@grpc/grpc-js` rpc client and server for gRPC framework
49 lines • 2 kB
TypeScript
/// <reference types="node" />
import type { Span } from '@opentelemetry/api';
import type { EventEmitter } from 'events';
import type { CALL_SPAN_ENDED } from './serverUtils';
import type { requestCallback, ServerUnaryCall, ServerReadableStream, ServerWritableStream, ServerDuplexStream, Server, Metadata, makeGenericClientConstructor } from '@grpc/grpc-js';
export type metadataCaptureType = {
client: {
captureRequestMetadata: (span: Span, metadata: Metadata) => void;
captureResponseMetadata: (span: Span, metadata: Metadata) => void;
};
server: {
captureRequestMetadata: (span: Span, metadata: Metadata) => void;
captureResponseMetadata: (span: Span, metadata: Metadata) => void;
};
};
/**
* Server Unary callback type
*/
export type SendUnaryDataCallback<T> = requestCallback<T>;
/**
* Intersection type of all grpc server call types
*/
export type ServerCall<T, U> = ServerUnaryCall<T, U> | ServerReadableStream<T, U> | ServerWritableStream<T, U> | ServerDuplexStream<T, U>;
/**
* {@link ServerCall} ServerCall extended with misc. missing utility types
*/
export type ServerCallWithMeta<T, U> = ServerCall<T, U> & {
metadata: Metadata;
};
/**
* EventEmitter with span ended symbol indicator
*/
export type GrpcEmitter = EventEmitter & {
[CALL_SPAN_ENDED]?: boolean;
};
/**
* Grpc client callback function extended with missing utility types
*/
export type GrpcClientFunc = ((...args: unknown[]) => GrpcEmitter) & {
path: string;
requestStream: boolean;
responseStream: boolean;
};
export type ServerRegisterFunction = typeof Server.prototype.register;
export type ClientRequestFunction<ReturnType> = (...args: unknown[]) => ReturnType;
export type MakeClientConstructorFunction = typeof makeGenericClientConstructor;
export type { HandleCall } from '@grpc/grpc-js/build/src/server-call';
export type { PackageDefinition } from '@grpc/grpc-js/build/src/make-client';
//# sourceMappingURL=internal-types.d.ts.map