UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

79 lines (68 loc) 2.2 kB
'use strict' /** * Protobuf Loader for OpenTelemetry Logs, Traces, and Metrics * * This module loads protobuf definitions for OpenTelemetry logs, traces, and metrics. * * VERSION SUPPORT: * - OTLP Protocol: v1.7.0 * - Protobuf Definitions: v1.7.0 (vendored from opentelemetry-proto) * - Other versions are not supported * * Reference: * - https://github.com/open-telemetry/opentelemetry-proto (v1.7.0) */ const path = require('path') const protobuf = require('../../../../../vendor/dist/protobufjs') let _root = null let protoLogsService = null let protoSeverityNumber = null let protoTraceService = null let protoSpanKind = null let protoMetricsService = null let protoAggregationTemporality = null function getProtobufTypes () { if (_root) { return { protoLogsService, protoSeverityNumber, protoTraceService, protoSpanKind, protoMetricsService, protoAggregationTemporality, } } // Load the proto files const protoDir = __dirname const protoFiles = [ 'common.proto', 'resource.proto', 'logs.proto', 'logs_service.proto', 'trace.proto', 'trace_service.proto', 'metrics.proto', 'metrics_service.proto', ].map(file => path.join(protoDir, file)) _root = protobuf.loadSync(protoFiles) // Get the message types for logs protoLogsService = _root.lookupType('opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest') protoSeverityNumber = _root.lookupEnum('opentelemetry.proto.logs.v1.SeverityNumber') // Get the message types for traces protoTraceService = _root.lookupType('opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest') protoSpanKind = _root.lookupEnum('opentelemetry.proto.trace.v1.SpanKind') // Get the message types for metrics protoMetricsService = _root.lookupType('opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest') protoAggregationTemporality = _root.lookupEnum('opentelemetry.proto.metrics.v1.AggregationTemporality') return { protoLogsService, protoSeverityNumber, protoTraceService, protoSpanKind, protoMetricsService, protoAggregationTemporality, } } module.exports = { getProtobufTypes, }