applicationinsights
Version:
Microsoft Application Insights module for Node.js
1 lines • 8.56 kB
Source Map (JSON)
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\n\r\nimport { shutdownAzureMonitor as distroShutdownAzureMonitor, useAzureMonitor as distroUseAzureMonitor } from \"@azure/monitor-opentelemetry\";\r\nimport { ProxyTracerProvider, diag, metrics, trace } from \"@opentelemetry/api\";\r\nimport { logs } from \"@opentelemetry/api-logs\";\r\nimport { MeterProvider, PeriodicExportingMetricReader } from \"@opentelemetry/sdk-metrics\";\r\nimport { BatchLogRecordProcessor, LoggerProvider } from \"@opentelemetry/sdk-logs\";\r\nimport { BasicTracerProvider, BatchSpanProcessor, NodeTracerProvider } from \"@opentelemetry/sdk-trace-node\";\r\nimport { OTLPMetricExporter } from \"@opentelemetry/exporter-metrics-otlp-http\";\r\nimport { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\r\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\r\n\r\nimport { AutoCollectLogs } from \"./logs/autoCollectLogs\";\r\nimport { AutoCollectExceptions } from \"./logs/exceptions\";\r\nimport { AZURE_MONITOR_STATSBEAT_FEATURES, AzureMonitorOpenTelemetryOptions } from \"./types\";\r\nimport { ApplicationInsightsConfig } from \"./shared/configuration/config\";\r\nimport { LogApi } from \"./shim/logsApi\";\r\nimport { PerformanceCounterMetrics } from \"./metrics/performanceCounters\";\r\nimport { AzureMonitorSpanProcessor } from \"./traces/spanProcessor\";\r\nimport { StatsbeatFeature, StatsbeatInstrumentation } from \"./shim/types\";\r\n\r\nlet autoCollectLogs: AutoCollectLogs;\r\nlet exceptions: AutoCollectExceptions;\r\nlet perfCounters: PerformanceCounterMetrics;\r\n\r\n/**\r\n * Initialize Azure Monitor\r\n * @param options Configuration\r\n */\r\nexport function useAzureMonitor(options?: AzureMonitorOpenTelemetryOptions) {\r\n // Must set statsbeat features before they are read by the distro\r\n process.env[AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify({\r\n instrumentation: StatsbeatInstrumentation.NONE,\r\n feature: StatsbeatFeature.SHIM\r\n });\r\n distroUseAzureMonitor(options);\r\n const internalConfig = new ApplicationInsightsConfig(options);\r\n const logApi = new LogApi(logs.getLogger(\"ApplicationInsightsLogger\"));\r\n autoCollectLogs = new AutoCollectLogs();\r\n if (internalConfig.enableAutoCollectExceptions) {\r\n exceptions = new AutoCollectExceptions(logApi);\r\n }\r\n if (internalConfig.enableAutoCollectPerformance) {\r\n try {\r\n perfCounters = new PerformanceCounterMetrics(internalConfig);\r\n // Add SpanProcessor to calculate Request Metrics\r\n if (typeof (trace.getTracerProvider() as BasicTracerProvider).addSpanProcessor === \"function\") {\r\n (trace.getTracerProvider() as BasicTracerProvider).addSpanProcessor(new AzureMonitorSpanProcessor(perfCounters));\r\n }\r\n } catch (err) {\r\n diag.error(\"Failed to initialize PerformanceCounterMetrics: \", err);\r\n }\r\n }\r\n autoCollectLogs.enable(internalConfig.instrumentationOptions);\r\n _addOtlpExporters(internalConfig);\r\n}\r\n\r\n/**\r\n* Shutdown Azure Monitor\r\n*/\r\nexport async function shutdownAzureMonitor() {\r\n await distroShutdownAzureMonitor();\r\n autoCollectLogs.shutdown();\r\n exceptions?.shutdown();\r\n perfCounters?.shutdown();\r\n}\r\n\r\n/**\r\n *Try to send all queued telemetry if present.\r\n */\r\nexport async function flushAzureMonitor() {\r\n try {\r\n await (metrics.getMeterProvider() as MeterProvider).forceFlush();\r\n await (((trace.getTracerProvider() as ProxyTracerProvider).getDelegate()) as BasicTracerProvider).forceFlush();\r\n await (logs.getLoggerProvider() as LoggerProvider).forceFlush();\r\n } catch (err) {\r\n diag.error(\"Failed to flush telemetry\", err);\r\n }\r\n}\r\n\r\nfunction _addOtlpExporters(internalConfig: ApplicationInsightsConfig) {\r\n if (internalConfig.otlpMetricExporterConfig?.enabled) {\r\n const otlpMetricsExporter = new OTLPMetricExporter(internalConfig.otlpMetricExporterConfig);\r\n const otlpMetricReader = new PeriodicExportingMetricReader({\r\n exporter: otlpMetricsExporter,\r\n });\r\n try {\r\n (metrics.getMeterProvider() as MeterProvider).addMetricReader(otlpMetricReader);\r\n }\r\n catch (err) {\r\n diag.error(\"Failed to set OTLP Metric Exporter\", err);\r\n }\r\n }\r\n if (internalConfig.otlpLogExporterConfig?.enabled) {\r\n const otlpLogExporter = new OTLPLogExporter(internalConfig.otlpLogExporterConfig);\r\n const otlpLogProcessor = new BatchLogRecordProcessor(otlpLogExporter);\r\n try {\r\n (logs.getLoggerProvider() as LoggerProvider).addLogRecordProcessor(otlpLogProcessor);\r\n }\r\n catch (err) {\r\n diag.error(\"Failed to set OTLP Log Exporter\", err);\r\n }\r\n }\r\n if (internalConfig.otlpTraceExporterConfig?.enabled) {\r\n const otlpTraceExporter = new OTLPTraceExporter(internalConfig.otlpTraceExporterConfig);\r\n const otlpSpanProcessor = new BatchSpanProcessor(otlpTraceExporter);\r\n try {\r\n ((trace.getTracerProvider() as ProxyTracerProvider).getDelegate() as NodeTracerProvider).addSpanProcessor(otlpSpanProcessor);\r\n }\r\n catch (err) {\r\n diag.error(\"Failed to set OTLP Trace Exporter\", err);\r\n }\r\n }\r\n}\r\n"]}