UNPKG

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

Version:
42 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoCloudLoggingLogsExporter = void 0; const cloudLoggingServiceBindingsProvider_1 = require("../../cf/cloudLoggingServiceBindingsProvider"); const multiLogExporter_1 = require("../multi/multiLogExporter"); const cloudLoggingCredentials_1 = require("../../cf/cloudLoggingCredentials"); const tls_1 = require("tls"); const grpc_js_1 = require("@grpc/grpc-js"); const exporter_logs_otlp_grpc_1 = require("@opentelemetry/exporter-logs-otlp-grpc"); class AutoCloudLoggingLogsExporter extends multiLogExporter_1.MultiLogRecordExporter { constructor(autoConfigExporters = true) { super("AutoCloudLoggingLogsExporter"); 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 AutoCloudLoggingLogsExporter 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 log exporter for service binding '${binding.getName()}' (${binding.getLabel()})`); return new exporter_logs_otlp_grpc_1.OTLPLogExporter({ url: credentials.getEndpoint(), credentials: grpc_js_1.credentials.createFromSecureContext(secureContext), }); } } exports.AutoCloudLoggingLogsExporter = AutoCloudLoggingLogsExporter; //# sourceMappingURL=autoCloudLoggingLogExporter.js.map