UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

67 lines (57 loc) 1.77 kB
'use strict' /** * Protobuf Loader for OpenTelemetry Logs and Metrics * * This module loads protobuf definitions for OpenTelemetry logs 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 protobuf = require('../../../../../vendor/dist/protobufjs') const path = require('path') let _root = null let protoLogsService = null let protoSeverityNumber = null let protoMetricsService = null let protoAggregationTemporality = null function getProtobufTypes () { if (_root) { return { protoLogsService, protoSeverityNumber, protoMetricsService, protoAggregationTemporality } } // Load the proto files const protoDir = __dirname const protoFiles = [ 'common.proto', 'resource.proto', 'logs.proto', 'logs_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 metrics protoMetricsService = _root.lookupType('opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest') protoAggregationTemporality = _root.lookupEnum('opentelemetry.proto.metrics.v1.AggregationTemporality') return { protoLogsService, protoSeverityNumber, protoMetricsService, protoAggregationTemporality } } module.exports = { getProtobufTypes, }