UNPKG

@sap/opentelemetry-exporter-for-sap-cloud-logging

Version:
42 lines 2.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoCloudLoggingMetricsExporter = void 0; const cloudLoggingServiceBindingsProvider_1 = require("../../cf/cloudLoggingServiceBindingsProvider"); const multiMetricExporter_1 = require("../multi/multiMetricExporter"); const cloudLoggingCredentials_1 = require("../../cf/cloudLoggingCredentials"); const tls_1 = require("tls"); const grpc_js_1 = require("@grpc/grpc-js"); const exporter_metrics_otlp_grpc_1 = require("@opentelemetry/exporter-metrics-otlp-grpc"); class AutoCloudLoggingMetricsExporter extends multiMetricExporter_1.MultiMetricExporter { constructor(autoConfigExporters = true) { super("AutoCloudLoggingMetricsExporter"); if (autoConfigExporters) { this.setupExporters(); } } setupExporters() { let bindingsProvider = new cloudLoggingServiceBindingsProvider_1.CloudLoggingServiceBindingsProvider(); let bindings = bindingsProvider.get(); let exporters = bindings.map(binding => { return this.createExporterForBinding(binding); }) .filter(exporter => exporter !== undefined); this.diagLogger.info(`Setup AutoCloudLoggingMetricsExporter with ${exporters.length} exporter(s)`); this.add(...exporters); } createExporterForBinding(binding) { let credentials = cloudLoggingCredentials_1.CloudLoggingCredentials.parse(binding.getCredentials()); if (!credentials.validate()) { return undefined; } let secureContext = (0, tls_1.createSecureContext)({ cert: credentials.getClientCert(), key: credentials.getClientKey() }); this.diagLogger.info(`Creating OTLP metrics exporter for service binding '${binding.getName()}' (${binding.getLabel()})`); return new exporter_metrics_otlp_grpc_1.OTLPMetricExporter({ url: credentials.getEndpoint(), credentials: grpc_js_1.credentials.createFromSecureContext(secureContext), }); } } exports.AutoCloudLoggingMetricsExporter = AutoCloudLoggingMetricsExporter; //# sourceMappingURL=autoCloudLoggingMetricExporter.js.map