UNPKG

@uphold/opentelemetry-instrumentation-connect-node

Version:

OpenTelemetry instrumentation for `@connectrpc/connect-node` RPC client and server

84 lines 2.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rpcKindToSpanKind = exports.errorCodeToString = exports.resolveRpcSystemName = exports.resolveRpcSystem = exports.isConnectError = void 0; const api_1 = require("@opentelemetry/api"); const isConnectError = (err) => { const connectErr = err; return (connectErr != null && typeof connectErr.message === 'string' && typeof connectErr.rawMessage === 'string' && Number.isInteger(connectErr.code) && connectErr.metadata instanceof Headers); }; exports.isConnectError = isConnectError; const resolveRpcSystem = (header) => { if (header.get('Content-Type')?.startsWith('application/grpc')) { return 'grpc'; } if (header.has('Connect-Protocol-Version')) { return 'connect_rpc'; } return undefined; }; exports.resolveRpcSystem = resolveRpcSystem; const resolveRpcSystemName = (header) => { const rpcSystem = (0, exports.resolveRpcSystem)(header); if (rpcSystem === 'connect_rpc') { return 'connectrpc'; } return rpcSystem; }; exports.resolveRpcSystemName = resolveRpcSystemName; const errorCodeToString = (code) => { switch (code) { case 0: return 'ok'; case 1: return 'canceled'; case 2: return 'unknown'; case 3: return 'invalid_argument'; case 4: return 'deadline_exceeded'; case 5: return 'not_found'; case 6: return 'already_exists'; case 7: return 'permission_denied'; case 8: return 'resource_exhausted'; case 9: return 'failed_precondition'; case 10: return 'aborted'; case 11: return 'out_of_range'; case 12: return 'unimplemented'; case 13: return 'internal'; case 14: return 'unavailable'; case 15: return 'data_loss'; case 16: return 'unauthenticated'; default: return 'unknown'; } }; exports.errorCodeToString = errorCodeToString; const rpcKindToSpanKind = (kind) => { switch (kind) { case 'client': return api_1.SpanKind.CLIENT; case 'server': return api_1.SpanKind.SERVER; default: return api_1.SpanKind.INTERNAL; } }; exports.rpcKindToSpanKind = rpcKindToSpanKind; //# sourceMappingURL=utils.js.map