@azure/monitor-opentelemetry 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +44 -47
- package/dist-esm/src/browserSdkLoader/browserSdkLoader.js +5 -5
- package/dist-esm/src/browserSdkLoader/browserSdkLoader.js.map +1 -1
- package/dist-esm/src/browserSdkLoader/browserSdkLoaderHelper.js +5 -5
- package/dist-esm/src/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
- package/dist-esm/src/index.js +1 -1
- package/dist-esm/src/index.js.map +1 -1
- package/dist-esm/src/logs/batchLogRecordProcessor.js +1 -7
- package/dist-esm/src/logs/batchLogRecordProcessor.js.map +1 -1
- package/dist-esm/src/logs/handler.js +1 -1
- package/dist-esm/src/logs/handler.js.map +1 -1
- package/dist-esm/src/logs/index.js +1 -1
- package/dist-esm/src/logs/index.js.map +1 -1
- package/dist-esm/src/logs/logRecordProcessor.js +1 -1
- package/dist-esm/src/logs/logRecordProcessor.js.map +1 -1
- package/dist-esm/src/metrics/handler.js +1 -1
- package/dist-esm/src/metrics/handler.js.map +1 -1
- package/dist-esm/src/metrics/index.js +1 -1
- package/dist-esm/src/metrics/index.js.map +1 -1
- package/dist-esm/src/metrics/quickpulse/export/exporter.js +2 -1
- package/dist-esm/src/metrics/quickpulse/export/exporter.js.map +1 -1
- package/dist-esm/src/metrics/quickpulse/export/sender.js +1 -1
- package/dist-esm/src/metrics/quickpulse/export/sender.js.map +1 -1
- package/dist-esm/src/metrics/quickpulse/liveMetrics.js +4 -2
- package/dist-esm/src/metrics/quickpulse/liveMetrics.js.map +1 -1
- package/dist-esm/src/metrics/quickpulse/types.js +1 -1
- package/dist-esm/src/metrics/quickpulse/types.js.map +1 -1
- package/dist-esm/src/metrics/quickpulse/utils.js +1 -1
- package/dist-esm/src/metrics/quickpulse/utils.js.map +1 -1
- package/dist-esm/src/metrics/standardMetrics.js +1 -1
- package/dist-esm/src/metrics/standardMetrics.js.map +1 -1
- package/dist-esm/src/metrics/types.js +1 -1
- package/dist-esm/src/metrics/types.js.map +1 -1
- package/dist-esm/src/metrics/utils.js +1 -1
- package/dist-esm/src/metrics/utils.js.map +1 -1
- package/dist-esm/src/shared/config.js +2 -2
- package/dist-esm/src/shared/config.js.map +1 -1
- package/dist-esm/src/shared/index.js +1 -1
- package/dist-esm/src/shared/index.js.map +1 -1
- package/dist-esm/src/shared/jsonConfig.js +1 -1
- package/dist-esm/src/shared/jsonConfig.js.map +1 -1
- package/dist-esm/src/shared/logging/diagFileConsoleLogger.js +1 -1
- package/dist-esm/src/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist-esm/src/shared/logging/index.js +1 -1
- package/dist-esm/src/shared/logging/index.js.map +1 -1
- package/dist-esm/src/shared/logging/logger.js +1 -1
- package/dist-esm/src/shared/logging/logger.js.map +1 -1
- package/dist-esm/src/traces/azureFnHook.js +1 -1
- package/dist-esm/src/traces/azureFnHook.js.map +1 -1
- package/dist-esm/src/traces/handler.js +1 -1
- package/dist-esm/src/traces/handler.js.map +1 -1
- package/dist-esm/src/traces/index.js +1 -1
- package/dist-esm/src/traces/index.js.map +1 -1
- package/dist-esm/src/traces/sampler.js +1 -1
- package/dist-esm/src/traces/sampler.js.map +1 -1
- package/dist-esm/src/traces/spanProcessor.js +1 -1
- package/dist-esm/src/traces/spanProcessor.js.map +1 -1
- package/dist-esm/src/types.js +3 -3
- package/dist-esm/src/types.js.map +1 -1
- package/dist-esm/src/utils/common.js.map +1 -1
- package/dist-esm/src/utils/connectionStringParser.js +1 -1
- package/dist-esm/src/utils/connectionStringParser.js.map +1 -1
- package/dist-esm/src/utils/fileSystem.js +1 -1
- package/dist-esm/src/utils/fileSystem.js.map +1 -1
- package/dist-esm/src/utils/index.js +1 -1
- package/dist-esm/src/utils/index.js.map +1 -1
- package/dist-esm/src/utils/logUtils.js +1 -1
- package/dist-esm/src/utils/logUtils.js.map +1 -1
- package/dist-esm/src/utils/opentelemetryInstrumentationPatcher.js +3 -3
- package/dist-esm/src/utils/opentelemetryInstrumentationPatcher.js.map +1 -1
- package/dist-esm/src/utils/statsbeat.js +1 -1
- package/dist-esm/src/utils/statsbeat.js.map +1 -1
- package/dist-esm/src/utils/types.js +1 -1
- package/dist-esm/src/utils/types.js.map +1 -1
- package/package.json +25 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/metrics/quickpulse/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport * as os from \"os\";\nimport { ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport { LogRecord } from \"@opentelemetry/sdk-logs\";\nimport {\n DocumentIngress,\n Exception,\n KeyValuePairString,\n KnownDocumentType,\n MetricPoint,\n MonitoringDataPoint,\n RemoteDependency,\n /* eslint-disable-next-line @typescript-eslint/no-redeclare */\n Request,\n Trace,\n} from \"../../generated\";\nimport { Attributes, SpanKind } from \"@opentelemetry/api\";\nimport {\n SEMATTRS_EXCEPTION_MESSAGE,\n SEMATTRS_EXCEPTION_TYPE,\n SEMATTRS_HTTP_HOST,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_SCHEME,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_HTTP_TARGET,\n SEMATTRS_HTTP_URL,\n SEMATTRS_NET_PEER_IP,\n SEMATTRS_NET_PEER_NAME,\n SEMATTRS_NET_PEER_PORT,\n SEMATTRS_RPC_GRPC_STATUS_CODE,\n SEMRESATTRS_K8S_CRONJOB_NAME,\n SEMRESATTRS_K8S_DAEMONSET_NAME,\n SEMRESATTRS_K8S_DEPLOYMENT_NAME,\n SEMRESATTRS_K8S_JOB_NAME,\n SEMRESATTRS_K8S_POD_NAME,\n SEMRESATTRS_K8S_REPLICASET_NAME,\n SEMRESATTRS_K8S_STATEFULSET_NAME,\n SEMRESATTRS_SERVICE_INSTANCE_ID,\n SEMRESATTRS_SERVICE_NAME,\n SEMRESATTRS_SERVICE_NAMESPACE,\n SEMRESATTRS_TELEMETRY_SDK_VERSION,\n} from \"@opentelemetry/semantic-conventions\";\nimport { SDK_INFO, hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport { DataPointType, Histogram, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport {\n AZURE_MONITOR_AUTO_ATTACH,\n AZURE_MONITOR_OPENTELEMETRY_VERSION,\n AZURE_MONITOR_PREFIX,\n AttachTypePrefix,\n} from \"../../types\";\nimport { Resource } from \"@opentelemetry/resources\";\nimport { QuickPulseMetricNames, QuickPulseOpenTelemetryMetricNames } from \"./types\";\nimport { getOsPrefix } from \"../../utils/common\";\nimport { getResourceProvider } from \"../../utils/common\";\nimport { LogAttributes } from \"@opentelemetry/api-logs\";\n\n/** Get the internal SDK version */\nexport function getSdkVersion(): string {\n const { nodeVersion } = process.versions;\n const opentelemetryVersion = SDK_INFO[SEMRESATTRS_TELEMETRY_SDK_VERSION];\n const version = `ext${AZURE_MONITOR_OPENTELEMETRY_VERSION}`;\n const internalSdkVersion = `${process.env[AZURE_MONITOR_PREFIX] ?? \"\"}node${nodeVersion}:otel${opentelemetryVersion}:${version}`;\n return internalSdkVersion;\n}\n\n// eslint-disable-next-line tsdoc/syntax\n/** Set the version prefix to a string in the format \"{ResourceProvider}{OS}m_ */\nexport function setSdkPrefix(): void {\n if (!process.env[AZURE_MONITOR_PREFIX]) {\n const prefixAttachType: string =\n process.env[AZURE_MONITOR_AUTO_ATTACH] === \"true\"\n ? AttachTypePrefix.INTEGRATED_AUTO\n : AttachTypePrefix.MANUAL;\n process.env[AZURE_MONITOR_PREFIX] =\n `${getResourceProvider()}${getOsPrefix()}${prefixAttachType}_`;\n }\n}\n\nexport function getCloudRole(resource: Resource): string {\n let cloudRole = \"\";\n // Service attributes\n const serviceName = resource.attributes[SEMRESATTRS_SERVICE_NAME];\n const serviceNamespace = resource.attributes[SEMRESATTRS_SERVICE_NAMESPACE];\n if (serviceName) {\n // Custom Service name provided by customer is highest precedence\n if (!String(serviceName).startsWith(\"unknown_service\")) {\n if (serviceNamespace) {\n return `${serviceNamespace}.${serviceName}`;\n } else {\n return String(serviceName);\n }\n } else {\n // Service attributes will be only used if K8S attributes are not present\n if (serviceNamespace) {\n cloudRole = `${serviceNamespace}.${serviceName}`;\n } else {\n cloudRole = String(serviceName);\n }\n }\n }\n // Kubernetes attributes should take precedence\n const kubernetesDeploymentName = resource.attributes[SEMRESATTRS_K8S_DEPLOYMENT_NAME];\n if (kubernetesDeploymentName) {\n return String(kubernetesDeploymentName);\n }\n const kuberneteReplicasetName = resource.attributes[SEMRESATTRS_K8S_REPLICASET_NAME];\n if (kuberneteReplicasetName) {\n return String(kuberneteReplicasetName);\n }\n const kubernetesStatefulSetName = resource.attributes[SEMRESATTRS_K8S_STATEFULSET_NAME];\n if (kubernetesStatefulSetName) {\n return String(kubernetesStatefulSetName);\n }\n const kubernetesJobName = resource.attributes[SEMRESATTRS_K8S_JOB_NAME];\n if (kubernetesJobName) {\n return String(kubernetesJobName);\n }\n const kubernetesCronjobName = resource.attributes[SEMRESATTRS_K8S_CRONJOB_NAME];\n if (kubernetesCronjobName) {\n return String(kubernetesCronjobName);\n }\n const kubernetesDaemonsetName = resource.attributes[SEMRESATTRS_K8S_DAEMONSET_NAME];\n if (kubernetesDaemonsetName) {\n return String(kubernetesDaemonsetName);\n }\n return cloudRole;\n}\n\nexport function getCloudRoleInstance(resource: Resource): string {\n // Kubernetes attributes should take precedence\n const kubernetesPodName = resource.attributes[SEMRESATTRS_K8S_POD_NAME];\n if (kubernetesPodName) {\n return String(kubernetesPodName);\n }\n // Service attributes\n const serviceInstanceId = resource.attributes[SEMRESATTRS_SERVICE_INSTANCE_ID];\n if (serviceInstanceId) {\n return String(serviceInstanceId);\n }\n // Default\n return os && os.hostname();\n}\n\nexport function resourceMetricsToQuickpulseDataPoint(\n metrics: ResourceMetrics,\n baseMonitoringDataPoint: MonitoringDataPoint,\n documents: DocumentIngress[],\n): MonitoringDataPoint[] {\n const metricPoints: MetricPoint[] = [];\n metrics.scopeMetrics.forEach((scopeMetric) => {\n scopeMetric.metrics.forEach((metric) => {\n metric.dataPoints.forEach((dataPoint) => {\n const metricPoint: MetricPoint = {\n weight: 4,\n name: \"\",\n value: 0,\n };\n\n // Update name to expected value in Quickpulse, needed because those names are invalid in OTel\n switch (metric.descriptor.name) {\n case QuickPulseOpenTelemetryMetricNames.COMMITTED_BYTES:\n metricPoint.name = QuickPulseMetricNames.COMMITTED_BYTES;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_DURATION:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_DURATION;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_FAILURE_RATE:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_FAILURE_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_RATE:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.EXCEPTION_RATE:\n metricPoint.name = QuickPulseMetricNames.EXCEPTION_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.PROCESSOR_TIME:\n metricPoint.name = QuickPulseMetricNames.PROCESSOR_TIME;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_DURATION:\n metricPoint.name = QuickPulseMetricNames.REQUEST_DURATION;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_FAILURE_RATE:\n metricPoint.name = QuickPulseMetricNames.REQUEST_FAILURE_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_RATE:\n metricPoint.name = QuickPulseMetricNames.REQUEST_RATE;\n break;\n default:\n metricPoint.name = metric.descriptor.name;\n }\n\n if (\n metric.dataPointType === DataPointType.SUM ||\n metric.dataPointType === DataPointType.GAUGE\n ) {\n metricPoint.value = dataPoint.value as number;\n } else {\n metricPoint.value = (dataPoint.value as Histogram).sum || 0;\n }\n metricPoints.push(metricPoint);\n });\n });\n });\n const quickpulseDataPoint: MonitoringDataPoint = {\n ...baseMonitoringDataPoint,\n timestamp: new Date(),\n metrics: metricPoints,\n documents: documents,\n };\n return [quickpulseDataPoint];\n}\n\nfunction getIso8601Duration(milliseconds: number): string {\n const seconds = milliseconds / 1000;\n return `PT${seconds}S`;\n}\n\nexport function getSpanDocument(span: ReadableSpan): Request | RemoteDependency {\n let document: Request | RemoteDependency = {\n documentType: KnownDocumentType.Request,\n };\n const httpMethod = span.attributes[SEMATTRS_HTTP_METHOD];\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n let url = \"\";\n let code = \"\";\n if (span.kind === SpanKind.SERVER || span.kind === SpanKind.CONSUMER) {\n if (httpMethod) {\n url = getUrl(span.attributes);\n const httpStatusCode = span.attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (httpStatusCode) {\n code = String(httpStatusCode);\n }\n } else if (grpcStatusCode) {\n code = String(grpcStatusCode);\n }\n\n document = {\n documentType: KnownDocumentType.Request,\n name: span.name,\n url: url,\n responseCode: code,\n duration: getIso8601Duration(hrTimeToMilliseconds(span.duration)),\n };\n } else {\n url = getUrl(span.attributes);\n const httpStatusCode = span.attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (httpStatusCode) {\n code = String(httpStatusCode);\n }\n\n document = {\n documentType: KnownDocumentType.RemoteDependency,\n name: span.name,\n commandName: url,\n resultCode: code,\n duration: getIso8601Duration(hrTimeToMilliseconds(span.duration)),\n };\n }\n document.properties = createPropertiesFromAttributes(span.attributes);\n return document;\n}\n\nexport function getLogDocument(logRecord: LogRecord): Trace | Exception {\n let document: Trace | Exception = {\n documentType: KnownDocumentType.Exception,\n };\n const exceptionType = String(logRecord.attributes[SEMATTRS_EXCEPTION_TYPE]);\n if (exceptionType) {\n const exceptionMessage = String(logRecord.attributes[SEMATTRS_EXCEPTION_MESSAGE]);\n document = {\n documentType: KnownDocumentType.Exception,\n exceptionType: exceptionType,\n exceptionMessage: exceptionMessage,\n };\n } else {\n document = {\n documentType: KnownDocumentType.Trace,\n message: String(logRecord.body),\n };\n }\n document.properties = createPropertiesFromAttributes(logRecord.attributes);\n return document;\n}\n\nfunction createPropertiesFromAttributes(\n attributes?: Attributes | LogAttributes,\n): KeyValuePairString[] {\n const properties: KeyValuePairString[] = [];\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n !(\n key.startsWith(\"_MS.\") ||\n key === SEMATTRS_NET_PEER_IP ||\n key === SEMATTRS_NET_PEER_NAME ||\n key === SEMATTRS_HTTP_METHOD ||\n key === SEMATTRS_HTTP_URL ||\n key === SEMATTRS_HTTP_STATUS_CODE ||\n key === SEMATTRS_HTTP_HOST ||\n key === SEMATTRS_HTTP_URL ||\n key === SEMATTRS_EXCEPTION_TYPE ||\n key === SEMATTRS_EXCEPTION_MESSAGE\n )\n ) {\n properties.push({ key: key, value: String(attributes[key]) });\n }\n }\n }\n return properties;\n}\n\nfunction getUrl(attributes: Attributes): string {\n if (!attributes) {\n return \"\";\n }\n const httpMethod = attributes[SEMATTRS_HTTP_METHOD];\n if (httpMethod) {\n const httpUrl = attributes[SEMATTRS_HTTP_URL];\n if (httpUrl) {\n return String(httpUrl);\n } else {\n const httpScheme = attributes[SEMATTRS_HTTP_SCHEME];\n const httpTarget = attributes[SEMATTRS_HTTP_TARGET];\n if (httpScheme && httpTarget) {\n const httpHost = attributes[SEMATTRS_HTTP_HOST];\n if (httpHost) {\n return `${httpScheme}://${httpHost}${httpTarget}`;\n } else {\n const netPeerPort = attributes[SEMATTRS_NET_PEER_PORT];\n if (netPeerPort) {\n const netPeerName = attributes[SEMATTRS_NET_PEER_NAME];\n if (netPeerName) {\n return `${httpScheme}://${netPeerName}:${netPeerPort}${httpTarget}`;\n } else {\n const netPeerIp = attributes[SEMATTRS_NET_PEER_IP];\n if (netPeerIp) {\n return `${httpScheme}://${netPeerIp}:${netPeerPort}${httpTarget}`;\n }\n }\n }\n }\n }\n }\n }\n return \"\";\n}\n\n/**\n * UTC time the request was made. Expressed as the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight on January 1, 0001. This is used for clock skew calculations, so the value can never be stale (cached).\n *\n * @example\n * 8/5/2020 10:15:00 PM UTC =\\> 637322625000000000\n * 8/5/2020 10:15:01 PM UTC =\\> 637322625010000000\n */\nexport function getTransmissionTime(): number {\n return (Date.now() + 62135596800000) * 10000;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/metrics/quickpulse/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport * as os from \"os\";\nimport { ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport { LogRecord } from \"@opentelemetry/sdk-logs\";\nimport {\n DocumentIngress,\n Exception,\n KeyValuePairString,\n KnownDocumentType,\n MetricPoint,\n MonitoringDataPoint,\n RemoteDependency,\n /* eslint-disable-next-line @typescript-eslint/no-redeclare */\n Request,\n Trace,\n} from \"../../generated\";\nimport { Attributes, SpanKind } from \"@opentelemetry/api\";\nimport {\n SEMATTRS_EXCEPTION_MESSAGE,\n SEMATTRS_EXCEPTION_TYPE,\n SEMATTRS_HTTP_HOST,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_SCHEME,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_HTTP_TARGET,\n SEMATTRS_HTTP_URL,\n SEMATTRS_NET_PEER_IP,\n SEMATTRS_NET_PEER_NAME,\n SEMATTRS_NET_PEER_PORT,\n SEMATTRS_RPC_GRPC_STATUS_CODE,\n SEMRESATTRS_K8S_CRONJOB_NAME,\n SEMRESATTRS_K8S_DAEMONSET_NAME,\n SEMRESATTRS_K8S_DEPLOYMENT_NAME,\n SEMRESATTRS_K8S_JOB_NAME,\n SEMRESATTRS_K8S_POD_NAME,\n SEMRESATTRS_K8S_REPLICASET_NAME,\n SEMRESATTRS_K8S_STATEFULSET_NAME,\n SEMRESATTRS_SERVICE_INSTANCE_ID,\n SEMRESATTRS_SERVICE_NAME,\n SEMRESATTRS_SERVICE_NAMESPACE,\n SEMRESATTRS_TELEMETRY_SDK_VERSION,\n} from \"@opentelemetry/semantic-conventions\";\nimport { SDK_INFO, hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport { DataPointType, Histogram, ResourceMetrics } from \"@opentelemetry/sdk-metrics\";\nimport {\n AZURE_MONITOR_AUTO_ATTACH,\n AZURE_MONITOR_OPENTELEMETRY_VERSION,\n AZURE_MONITOR_PREFIX,\n AttachTypePrefix,\n} from \"../../types\";\nimport { Resource } from \"@opentelemetry/resources\";\nimport { QuickPulseMetricNames, QuickPulseOpenTelemetryMetricNames } from \"./types\";\nimport { getOsPrefix } from \"../../utils/common\";\nimport { getResourceProvider } from \"../../utils/common\";\nimport { LogAttributes } from \"@opentelemetry/api-logs\";\n\n/** Get the internal SDK version */\nexport function getSdkVersion(): string {\n const { nodeVersion } = process.versions;\n const opentelemetryVersion = SDK_INFO[SEMRESATTRS_TELEMETRY_SDK_VERSION];\n const version = `ext${AZURE_MONITOR_OPENTELEMETRY_VERSION}`;\n const internalSdkVersion = `${process.env[AZURE_MONITOR_PREFIX] ?? \"\"}node${nodeVersion}:otel${opentelemetryVersion}:${version}`;\n return internalSdkVersion;\n}\n\n// eslint-disable-next-line tsdoc/syntax\n/** Set the version prefix to a string in the format \"{ResourceProvider}{OS}m_ */\nexport function setSdkPrefix(): void {\n if (!process.env[AZURE_MONITOR_PREFIX]) {\n const prefixAttachType: string =\n process.env[AZURE_MONITOR_AUTO_ATTACH] === \"true\"\n ? AttachTypePrefix.INTEGRATED_AUTO\n : AttachTypePrefix.MANUAL;\n process.env[AZURE_MONITOR_PREFIX] =\n `${getResourceProvider()}${getOsPrefix()}${prefixAttachType}_`;\n }\n}\n\nexport function getCloudRole(resource: Resource): string {\n let cloudRole = \"\";\n // Service attributes\n const serviceName = resource.attributes[SEMRESATTRS_SERVICE_NAME];\n const serviceNamespace = resource.attributes[SEMRESATTRS_SERVICE_NAMESPACE];\n if (serviceName) {\n // Custom Service name provided by customer is highest precedence\n if (!String(serviceName).startsWith(\"unknown_service\")) {\n if (serviceNamespace) {\n return `${serviceNamespace}.${serviceName}`;\n } else {\n return String(serviceName);\n }\n } else {\n // Service attributes will be only used if K8S attributes are not present\n if (serviceNamespace) {\n cloudRole = `${serviceNamespace}.${serviceName}`;\n } else {\n cloudRole = String(serviceName);\n }\n }\n }\n // Kubernetes attributes should take precedence\n const kubernetesDeploymentName = resource.attributes[SEMRESATTRS_K8S_DEPLOYMENT_NAME];\n if (kubernetesDeploymentName) {\n return String(kubernetesDeploymentName);\n }\n const kuberneteReplicasetName = resource.attributes[SEMRESATTRS_K8S_REPLICASET_NAME];\n if (kuberneteReplicasetName) {\n return String(kuberneteReplicasetName);\n }\n const kubernetesStatefulSetName = resource.attributes[SEMRESATTRS_K8S_STATEFULSET_NAME];\n if (kubernetesStatefulSetName) {\n return String(kubernetesStatefulSetName);\n }\n const kubernetesJobName = resource.attributes[SEMRESATTRS_K8S_JOB_NAME];\n if (kubernetesJobName) {\n return String(kubernetesJobName);\n }\n const kubernetesCronjobName = resource.attributes[SEMRESATTRS_K8S_CRONJOB_NAME];\n if (kubernetesCronjobName) {\n return String(kubernetesCronjobName);\n }\n const kubernetesDaemonsetName = resource.attributes[SEMRESATTRS_K8S_DAEMONSET_NAME];\n if (kubernetesDaemonsetName) {\n return String(kubernetesDaemonsetName);\n }\n return cloudRole;\n}\n\nexport function getCloudRoleInstance(resource: Resource): string {\n // Kubernetes attributes should take precedence\n const kubernetesPodName = resource.attributes[SEMRESATTRS_K8S_POD_NAME];\n if (kubernetesPodName) {\n return String(kubernetesPodName);\n }\n // Service attributes\n const serviceInstanceId = resource.attributes[SEMRESATTRS_SERVICE_INSTANCE_ID];\n if (serviceInstanceId) {\n return String(serviceInstanceId);\n }\n // Default\n return os && os.hostname();\n}\n\nexport function resourceMetricsToQuickpulseDataPoint(\n metrics: ResourceMetrics,\n baseMonitoringDataPoint: MonitoringDataPoint,\n documents: DocumentIngress[],\n): MonitoringDataPoint[] {\n const metricPoints: MetricPoint[] = [];\n metrics.scopeMetrics.forEach((scopeMetric) => {\n scopeMetric.metrics.forEach((metric) => {\n metric.dataPoints.forEach((dataPoint) => {\n const metricPoint: MetricPoint = {\n weight: 4,\n name: \"\",\n value: 0,\n };\n\n // Update name to expected value in Quickpulse, needed because those names are invalid in OTel\n switch (metric.descriptor.name) {\n case QuickPulseOpenTelemetryMetricNames.COMMITTED_BYTES:\n metricPoint.name = QuickPulseMetricNames.COMMITTED_BYTES;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_DURATION:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_DURATION;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_FAILURE_RATE:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_FAILURE_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.DEPENDENCY_RATE:\n metricPoint.name = QuickPulseMetricNames.DEPENDENCY_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.EXCEPTION_RATE:\n metricPoint.name = QuickPulseMetricNames.EXCEPTION_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.PROCESSOR_TIME:\n metricPoint.name = QuickPulseMetricNames.PROCESSOR_TIME;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_DURATION:\n metricPoint.name = QuickPulseMetricNames.REQUEST_DURATION;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_FAILURE_RATE:\n metricPoint.name = QuickPulseMetricNames.REQUEST_FAILURE_RATE;\n break;\n case QuickPulseOpenTelemetryMetricNames.REQUEST_RATE:\n metricPoint.name = QuickPulseMetricNames.REQUEST_RATE;\n break;\n default:\n metricPoint.name = metric.descriptor.name;\n }\n\n if (\n metric.dataPointType === DataPointType.SUM ||\n metric.dataPointType === DataPointType.GAUGE\n ) {\n metricPoint.value = dataPoint.value as number;\n } else {\n metricPoint.value = (dataPoint.value as Histogram).sum || 0;\n }\n metricPoints.push(metricPoint);\n });\n });\n });\n const quickpulseDataPoint: MonitoringDataPoint = {\n ...baseMonitoringDataPoint,\n timestamp: new Date(),\n metrics: metricPoints,\n documents: documents,\n };\n return [quickpulseDataPoint];\n}\n\nfunction getIso8601Duration(milliseconds: number): string {\n const seconds = milliseconds / 1000;\n return `PT${seconds}S`;\n}\n\nexport function getSpanDocument(span: ReadableSpan): Request | RemoteDependency {\n let document: Request | RemoteDependency = {\n documentType: KnownDocumentType.Request,\n };\n const httpMethod = span.attributes[SEMATTRS_HTTP_METHOD];\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n let url = \"\";\n let code = \"\";\n if (span.kind === SpanKind.SERVER || span.kind === SpanKind.CONSUMER) {\n if (httpMethod) {\n url = getUrl(span.attributes);\n const httpStatusCode = span.attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (httpStatusCode) {\n code = String(httpStatusCode);\n }\n } else if (grpcStatusCode) {\n code = String(grpcStatusCode);\n }\n\n document = {\n documentType: KnownDocumentType.Request,\n name: span.name,\n url: url,\n responseCode: code,\n duration: getIso8601Duration(hrTimeToMilliseconds(span.duration)),\n };\n } else {\n url = getUrl(span.attributes);\n const httpStatusCode = span.attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (httpStatusCode) {\n code = String(httpStatusCode);\n }\n\n document = {\n documentType: KnownDocumentType.RemoteDependency,\n name: span.name,\n commandName: url,\n resultCode: code,\n duration: getIso8601Duration(hrTimeToMilliseconds(span.duration)),\n };\n }\n document.properties = createPropertiesFromAttributes(span.attributes);\n return document;\n}\n\nexport function getLogDocument(logRecord: LogRecord): Trace | Exception {\n let document: Trace | Exception = {\n documentType: KnownDocumentType.Exception,\n };\n const exceptionType = String(logRecord.attributes[SEMATTRS_EXCEPTION_TYPE]);\n if (exceptionType) {\n const exceptionMessage = String(logRecord.attributes[SEMATTRS_EXCEPTION_MESSAGE]);\n document = {\n documentType: KnownDocumentType.Exception,\n exceptionType: exceptionType,\n exceptionMessage: exceptionMessage,\n };\n } else {\n document = {\n documentType: KnownDocumentType.Trace,\n message: String(logRecord.body),\n };\n }\n document.properties = createPropertiesFromAttributes(logRecord.attributes);\n return document;\n}\n\nfunction createPropertiesFromAttributes(\n attributes?: Attributes | LogAttributes,\n): KeyValuePairString[] {\n const properties: KeyValuePairString[] = [];\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n !(\n key.startsWith(\"_MS.\") ||\n key === SEMATTRS_NET_PEER_IP ||\n key === SEMATTRS_NET_PEER_NAME ||\n key === SEMATTRS_HTTP_METHOD ||\n key === SEMATTRS_HTTP_URL ||\n key === SEMATTRS_HTTP_STATUS_CODE ||\n key === SEMATTRS_HTTP_HOST ||\n key === SEMATTRS_HTTP_URL ||\n key === SEMATTRS_EXCEPTION_TYPE ||\n key === SEMATTRS_EXCEPTION_MESSAGE\n )\n ) {\n properties.push({ key: key, value: String(attributes[key]) });\n }\n }\n }\n return properties;\n}\n\nfunction getUrl(attributes: Attributes): string {\n if (!attributes) {\n return \"\";\n }\n const httpMethod = attributes[SEMATTRS_HTTP_METHOD];\n if (httpMethod) {\n const httpUrl = attributes[SEMATTRS_HTTP_URL];\n if (httpUrl) {\n return String(httpUrl);\n } else {\n const httpScheme = attributes[SEMATTRS_HTTP_SCHEME];\n const httpTarget = attributes[SEMATTRS_HTTP_TARGET];\n if (httpScheme && httpTarget) {\n const httpHost = attributes[SEMATTRS_HTTP_HOST];\n if (httpHost) {\n return `${httpScheme}://${httpHost}${httpTarget}`;\n } else {\n const netPeerPort = attributes[SEMATTRS_NET_PEER_PORT];\n if (netPeerPort) {\n const netPeerName = attributes[SEMATTRS_NET_PEER_NAME];\n if (netPeerName) {\n return `${httpScheme}://${netPeerName}:${netPeerPort}${httpTarget}`;\n } else {\n const netPeerIp = attributes[SEMATTRS_NET_PEER_IP];\n if (netPeerIp) {\n return `${httpScheme}://${netPeerIp}:${netPeerPort}${httpTarget}`;\n }\n }\n }\n }\n }\n }\n }\n return \"\";\n}\n\n/**\n * UTC time the request was made. Expressed as the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight on January 1, 0001. This is used for clock skew calculations, so the value can never be stale (cached).\n *\n * @example\n * 8/5/2020 10:15:00 PM UTC =\\> 637322625000000000\n * 8/5/2020 10:15:01 PM UTC =\\> 637322625010000000\n */\nexport function getTransmissionTime(): number {\n return (Date.now() + 62135596800000) * 10000;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
3
|
import { MeterProvider, PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics";
|
|
4
4
|
import { AzureMonitorMetricExporter } from "@azure/monitor-opentelemetry-exporter";
|
|
5
5
|
import { SpanKind, ValueType } from "@opentelemetry/api";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardMetrics.js","sourceRoot":"","sources":["../../../src/metrics/standardMetrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"standardMetrics.js","sourceRoot":"","sources":["../../../src/metrics/standardMetrics.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,aAAa,EAEb,6BAA6B,GAE9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAA6B,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,eAAe;IAY1B;;;;OAIG;IACH,YAAY,MAAsB,EAAE,OAAwC;QAfpE,wBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;QAgBhD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC/F,MAAM,mBAAmB,GAAyC;YAChE,QAAQ,EAAE,IAAI,CAAC,cAAqB;YACpC,oBAAoB,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,KAAI,IAAI,CAAC,mBAAmB;SAC9E,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,mBAAmB,GAAyB;YAChD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAC/E,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAClE,iBAAiB,CAAC,gBAAgB,EAClC;YACE,SAAS,EAAE,SAAS,CAAC,MAAM;SAC5B,CACF,CAAC;QACF,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAClE,iBAAiB,CAAC,qBAAqB,EACvC;YACE,SAAS,EAAE,SAAS,CAAC,MAAM;SAC5B,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YACtF,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,EAAE;YAC9E,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,IAAU;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC;gBACjB,iCAAiC,EAAE,kCAAkC;aACtE,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC;gBACjB,iCAAiC,EAAE,8BAA8B;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,IAAkB;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAiB,EAAE,EAAE;gBACxC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC/B,KAAK,CAAC,UAAU,CAAC,iCAAiC,CAAC,GAAG,gCAAgC,CAAC;oBACvF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,UAAU,CAAC,iCAAiC,CAAC,GAAG,4BAA4B,CAAC;oBACnF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,SAAoB;QACnC,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,YAAY,CAAC,iCAAiC,EAAE,gCAAgC,CAAC,CAAC;YAC5F,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,YAAY,CAAC,iCAAiC,EAAE,4BAA4B,CAAC,CAAC;YACxF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n MeterProvider,\n MeterProviderOptions,\n PeriodicExportingMetricReader,\n PeriodicExportingMetricReaderOptions,\n} from \"@opentelemetry/sdk-metrics\";\nimport { InternalConfig } from \"../shared/config\";\nimport { AzureMonitorMetricExporter } from \"@azure/monitor-opentelemetry-exporter\";\nimport { Counter, Histogram, Meter, SpanKind, ValueType } from \"@opentelemetry/api\";\nimport { ReadableSpan, Span, TimedEvent } from \"@opentelemetry/sdk-trace-base\";\nimport { LogRecord } from \"@opentelemetry/sdk-logs\";\nimport {\n getDependencyDimensions,\n getExceptionDimensions,\n getRequestDimensions,\n getTraceDimensions,\n isExceptionTelemetry,\n isSyntheticLoad,\n isTraceTelemetry,\n} from \"./utils\";\nimport { StandardMetricIds } from \"./types\";\n\n/**\n * Azure Monitor Standard Metrics\n * @internal\n */\nexport class StandardMetrics {\n private _config: InternalConfig;\n private _collectionInterval = 60000; // 60 seconds\n private _meterProvider: MeterProvider;\n private _azureExporter: AzureMonitorMetricExporter;\n private _metricReader: PeriodicExportingMetricReader;\n private _meter: Meter;\n private _incomingRequestDurationHistogram: Histogram;\n private _outgoingRequestDurationHistogram: Histogram;\n private _exceptionsCounter: Counter;\n private _tracesCounter: Counter;\n\n /**\n * Initializes a new instance of the StandardMetrics class.\n * @param config - Distro configuration.\n * @param options - Standard Metrics options.\n */\n constructor(config: InternalConfig, options?: { collectionInterval: number }) {\n this._config = config;\n this._azureExporter = new AzureMonitorMetricExporter(this._config.azureMonitorExporterOptions);\n const metricReaderOptions: PeriodicExportingMetricReaderOptions = {\n exporter: this._azureExporter as any,\n exportIntervalMillis: options?.collectionInterval || this._collectionInterval,\n };\n this._metricReader = new PeriodicExportingMetricReader(metricReaderOptions);\n const meterProviderConfig: MeterProviderOptions = {\n resource: this._config.resource,\n readers: [this._metricReader],\n };\n this._meterProvider = new MeterProvider(meterProviderConfig);\n this._meter = this._meterProvider.getMeter(\"AzureMonitorStandardMetricsMeter\");\n this._incomingRequestDurationHistogram = this._meter.createHistogram(\n StandardMetricIds.REQUEST_DURATION,\n {\n valueType: ValueType.DOUBLE,\n },\n );\n this._outgoingRequestDurationHistogram = this._meter.createHistogram(\n StandardMetricIds.DEPENDENCIES_DURATION,\n {\n valueType: ValueType.DOUBLE,\n },\n );\n\n this._exceptionsCounter = this._meter.createCounter(StandardMetricIds.EXCEPTIONS_COUNT, {\n valueType: ValueType.INT,\n });\n this._tracesCounter = this._meter.createCounter(StandardMetricIds.TRACES_COUNT, {\n valueType: ValueType.INT,\n });\n }\n\n /**\n * Shutdown Meter Provider it will return no-op Meters after being called.\n */\n public shutdown(): void {\n this._meterProvider.shutdown();\n }\n\n /**\n * Force flush Meter Provider.\n */\n public async flush(): Promise<void> {\n await this._meterProvider.forceFlush();\n }\n\n /**\n *Get OpenTelemetry MeterProvider\n */\n public getMeterProvider(): MeterProvider {\n return this._meterProvider;\n }\n\n /**\n * Add extra attributes to Span so Ingestion doesn't aggregate the data again\n * @internal\n */\n public markSpanAsProcessed(span: Span): void {\n if (span.kind === SpanKind.CLIENT) {\n span.setAttributes({\n \"_MS.ProcessedByMetricExtractors\": \"(Name:'Dependencies', Ver:'1.1')\",\n });\n } else if (span.kind === SpanKind.SERVER) {\n span.setAttributes({\n \"_MS.ProcessedByMetricExtractors\": \"(Name:'Requests', Ver:'1.1')\",\n });\n }\n }\n\n /**\n * Record Span metrics\n * @internal\n */\n public recordSpan(span: ReadableSpan): void {\n const durationMs = span.duration[0];\n if (span.kind === SpanKind.SERVER) {\n this._incomingRequestDurationHistogram.record(durationMs, getRequestDimensions(span));\n } else {\n this._outgoingRequestDurationHistogram.record(durationMs, getDependencyDimensions(span));\n }\n if (span.events) {\n span.events.forEach((event: TimedEvent) => {\n event.attributes = event.attributes || {};\n if (event.name === \"exception\") {\n event.attributes[\"_MS.ProcessedByMetricExtractors\"] = \"(Name:'Exceptions', Ver:'1.1')\";\n this._exceptionsCounter.add(1, getExceptionDimensions(span.resource));\n } else {\n event.attributes[\"_MS.ProcessedByMetricExtractors\"] = \"(Name:'Traces', Ver:'1.1')\";\n this._tracesCounter.add(1, getTraceDimensions(span.resource));\n }\n });\n }\n }\n\n /**\n * Record LogRecord metrics, add attribute so data is not aggregated again in ingestion\n * @internal\n */\n public recordLog(logRecord: LogRecord): void {\n if (isSyntheticLoad(logRecord)) {\n logRecord.setAttribute(\"operation/synthetic\", \"True\");\n }\n if (isExceptionTelemetry(logRecord)) {\n logRecord.setAttribute(\"_MS.ProcessedByMetricExtractors\", \"(Name:'Exceptions', Ver:'1.1')\");\n this._exceptionsCounter.add(1, getExceptionDimensions(logRecord.resource));\n } else if (isTraceTelemetry(logRecord)) {\n logRecord.setAttribute(\"_MS.ProcessedByMetricExtractors\", \"(Name:'Traces', Ver:'1.1')\");\n this._tracesCounter.add(1, getTraceDimensions(logRecord.resource));\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,0CAA0C,CAAC;AAuBnG,MAAM,CAAN,IAAY,6BAOX;AAPD,WAAY,6BAA6B;IACvC,gEAA+B,CAAA;IAC/B,oEAAmC,CAAA;IACnC,kEAAiC,CAAA;IACjC,8DAA6B,CAAA;IAC7B,8DAA6B,CAAA;IAC7B,4EAA2C,CAAA;AAC7C,CAAC,EAPW,6BAA6B,KAA7B,6BAA6B,QAOxC;AAgBD,MAAM,CAAC,MAAM,2BAA2B,GAAiD;IACvF,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IACzC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,kBAAkB,EAAE,qBAAqB;IACzC,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,qBAAqB;CACvC,CAAC;AAEF,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,oEAA+C,CAAA;IAC/C,0DAAqC,CAAA;IACrC,kDAA6B,CAAA;AAC/B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,0CAA0C,CAAC;AAuBnG,MAAM,CAAN,IAAY,6BAOX;AAPD,WAAY,6BAA6B;IACvC,gEAA+B,CAAA;IAC/B,oEAAmC,CAAA;IACnC,kEAAiC,CAAA;IACjC,8DAA6B,CAAA;IAC7B,8DAA6B,CAAA;IAC7B,4EAA2C,CAAA;AAC7C,CAAC,EAPW,6BAA6B,KAA7B,6BAA6B,QAOxC;AAgBD,MAAM,CAAC,MAAM,2BAA2B,GAAiD;IACvF,iBAAiB,EAAE,oBAAoB;IACvC,aAAa,EAAE,gBAAgB;IAC/B,kBAAkB,EAAE,qBAAqB;IACzC,cAAc,EAAE,iBAAiB;IACjC,iBAAiB,EAAE,oBAAoB;IACvC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,uBAAuB;IAC7C,kBAAkB,EAAE,qBAAqB;IACzC,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,qBAAqB;CACvC,CAAC;AAEF,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,2DAAsC,CAAA;IACtC,oEAA+C,CAAA;IAC/C,0DAAqC,CAAA;IACrC,kDAA6B,CAAA;AAC/B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Disable Standard Metrics environment variable name.\n */\nexport const APPLICATION_INSIGHTS_NO_STANDARD_METRICS = \"APPLICATION_INSIGHTS_NO_STANDARD_METRICS\";\n\nexport interface StandardMetricBaseDimensions {\n metricId?: string;\n cloudRoleInstance?: string;\n cloudRoleName?: string;\n IsAutocollected?: string;\n}\n\nexport interface MetricRequestDimensions extends StandardMetricBaseDimensions {\n requestSuccess?: string;\n requestResultCode?: string;\n operationSynthetic?: string;\n}\n\nexport interface MetricDependencyDimensions extends StandardMetricBaseDimensions {\n dependencyType?: string;\n dependencyTarget?: string;\n dependencySuccess?: string;\n dependencyResultCode?: string;\n operationSynthetic?: string;\n}\n\nexport enum PerformanceCounterMetricNames {\n PRIVATE_BYTES = \"Private_Bytes\",\n AVAILABLE_BYTES = \"Available_Bytes\",\n PROCESSOR_TIME = \"Processor_Time\",\n PROCESS_TIME = \"Process_Time\",\n REQUEST_RATE = \"Request_Rate\",\n REQUEST_DURATION = \"Request_Execution_Time\",\n}\n\nexport type MetricDimensionTypeKeys =\n | \"cloudRoleInstance\"\n | \"cloudRoleName\"\n | \"requestSuccess\"\n | \"requestResultCode\"\n | \"dependencyType\"\n | \"dependencyTarget\"\n | \"dependencySuccess\"\n | \"dependencyResultCode\"\n | \"traceSeverityLevel\"\n | \"operationSynthetic\"\n | \"metricId\"\n | \"IsAutocollected\";\n\nexport const StandardMetricPropertyNames: { [key in MetricDimensionTypeKeys]: string } = {\n cloudRoleInstance: \"cloud/roleInstance\",\n cloudRoleName: \"cloud/roleName\",\n operationSynthetic: \"operation/synthetic\",\n requestSuccess: \"Request.Success\",\n requestResultCode: \"request/resultCode\",\n dependencyType: \"Dependency.Type\",\n dependencyTarget: \"dependency/target\",\n dependencySuccess: \"Dependency.Success\",\n dependencyResultCode: \"dependency/resultCode\",\n traceSeverityLevel: \"trace/severityLevel\",\n metricId: \"_MS.MetricId\",\n IsAutocollected: \"_MS.IsAutocollected\",\n};\n\nexport enum StandardMetricIds {\n REQUEST_DURATION = \"requests/duration\",\n DEPENDENCIES_DURATION = \"dependencies/duration\",\n EXCEPTIONS_COUNT = \"exceptions/count\",\n TRACES_COUNT = \"traces/count\",\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
3
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
4
4
|
import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_NAMESPACE, SEMRESATTRS_SERVICE_INSTANCE_ID, SEMATTRS_PEER_SERVICE, SEMATTRS_NET_PEER_NAME, SEMATTRS_NET_HOST_PORT, SEMATTRS_EXCEPTION_MESSAGE, SEMATTRS_EXCEPTION_TYPE, SEMATTRS_HTTP_USER_AGENT, SEMATTRS_HTTP_STATUS_CODE, } from "@opentelemetry/semantic-conventions";
|
|
5
5
|
import { StandardMetricIds, StandardMetricPropertyNames, } from "./types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/metrics/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/metrics/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Attributes, SpanStatusCode } from \"@opentelemetry/api\";\nimport { ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport {\n SEMRESATTRS_SERVICE_NAME,\n SEMRESATTRS_SERVICE_NAMESPACE,\n SEMRESATTRS_SERVICE_INSTANCE_ID,\n SEMATTRS_PEER_SERVICE,\n SEMATTRS_NET_PEER_NAME,\n SEMATTRS_NET_HOST_PORT,\n SEMATTRS_EXCEPTION_MESSAGE,\n SEMATTRS_EXCEPTION_TYPE,\n SEMATTRS_HTTP_USER_AGENT,\n SEMATTRS_HTTP_STATUS_CODE,\n} from \"@opentelemetry/semantic-conventions\";\nimport {\n MetricDependencyDimensions,\n MetricDimensionTypeKeys,\n MetricRequestDimensions,\n StandardMetricBaseDimensions,\n StandardMetricIds,\n StandardMetricPropertyNames,\n} from \"./types\";\nimport { LogRecord } from \"@opentelemetry/sdk-logs\";\nimport { Resource } from \"@opentelemetry/resources\";\n\nexport function getRequestDimensions(span: ReadableSpan): Attributes {\n const dimensions: MetricRequestDimensions = getBaseDimensions(span.resource);\n dimensions.metricId = StandardMetricIds.REQUEST_DURATION;\n const statusCode = String(span.attributes[SEMATTRS_HTTP_STATUS_CODE]);\n dimensions.requestResultCode = statusCode;\n // OTel treats 4xx request responses as UNSET SpanStatusCode, but we should count them as failed\n dimensions.requestSuccess =\n span.status.code !== SpanStatusCode.ERROR && (Number(statusCode) || 0) < 400 ? \"True\" : \"False\";\n if (isSyntheticLoad(span)) {\n dimensions.operationSynthetic = \"True\";\n }\n return convertDimensions(dimensions);\n}\n\nexport function getDependencyDimensions(span: ReadableSpan): Attributes {\n const dimensions: MetricDependencyDimensions = getBaseDimensions(span.resource);\n dimensions.metricId = StandardMetricIds.DEPENDENCIES_DURATION;\n const statusCode = String(span.attributes[SEMATTRS_HTTP_STATUS_CODE]);\n dimensions.dependencyTarget = getDependencyTarget(span.attributes);\n dimensions.dependencyResultCode = statusCode;\n dimensions.dependencyType = \"http\";\n dimensions.dependencySuccess = span.status.code !== SpanStatusCode.ERROR ? \"True\" : \"False\";\n if (isSyntheticLoad(span)) {\n dimensions.operationSynthetic = \"True\";\n }\n return convertDimensions(dimensions);\n}\n\nexport function getExceptionDimensions(resource: Resource): Attributes {\n const dimensions: StandardMetricBaseDimensions = getBaseDimensions(resource);\n dimensions.metricId = StandardMetricIds.EXCEPTIONS_COUNT;\n return dimensions as Attributes;\n}\n\nexport function getTraceDimensions(resource: Resource): Attributes {\n const dimensions: StandardMetricBaseDimensions = getBaseDimensions(resource);\n dimensions.metricId = StandardMetricIds.TRACES_COUNT;\n return dimensions as Attributes;\n}\n\nexport function getBaseDimensions(resource: Resource): StandardMetricBaseDimensions {\n const dimensions: StandardMetricBaseDimensions = {};\n dimensions.IsAutocollected = \"True\";\n if (resource) {\n const spanResourceAttributes = resource.attributes;\n const serviceName = spanResourceAttributes[SEMRESATTRS_SERVICE_NAME];\n const serviceNamespace = spanResourceAttributes[SEMRESATTRS_SERVICE_NAMESPACE];\n if (serviceName) {\n if (serviceNamespace) {\n dimensions.cloudRoleName = `${serviceNamespace}.${serviceName}`;\n } else {\n dimensions.cloudRoleName = String(serviceName);\n }\n }\n const serviceInstanceId = spanResourceAttributes[SEMRESATTRS_SERVICE_INSTANCE_ID];\n dimensions.cloudRoleInstance = String(serviceInstanceId);\n }\n return dimensions;\n}\n\n// Get metric dependency target, avoiding high cardinality.\nexport function getDependencyTarget(attributes: Attributes): string {\n if (!attributes) {\n return \"\";\n }\n const peerService = attributes[SEMATTRS_PEER_SERVICE];\n const hostPort = attributes[SEMATTRS_NET_HOST_PORT];\n const netPeerName = attributes[SEMATTRS_NET_PEER_NAME];\n if (peerService) {\n return String(peerService);\n } else if (hostPort && netPeerName) {\n return `${netPeerName}:${hostPort}`;\n } else if (netPeerName) {\n return String(netPeerName);\n }\n return \"\";\n}\n\nexport function isExceptionTelemetry(logRecord: LogRecord): boolean {\n const baseType = logRecord.attributes[\"_MS.baseType\"];\n // If Application Insights Legacy logs\n if (baseType && baseType === \"ExceptionData\") {\n return true;\n } else if (\n logRecord.attributes[SEMATTRS_EXCEPTION_MESSAGE] ||\n logRecord.attributes[SEMATTRS_EXCEPTION_TYPE]\n ) {\n return true;\n }\n return false;\n}\n\nexport function isTraceTelemetry(logRecord: LogRecord): boolean {\n const baseType = logRecord.attributes[\"_MS.baseType\"];\n // If Application Insights Legacy logs\n if (baseType && baseType === \"MessageData\") {\n return true;\n } else if (\n !logRecord.attributes[SEMATTRS_EXCEPTION_MESSAGE] &&\n !logRecord.attributes[SEMATTRS_EXCEPTION_TYPE]\n ) {\n return true;\n }\n return false;\n}\n\nexport function isSyntheticLoad(record: LogRecord | ReadableSpan): boolean {\n const userAgent = String(record.attributes[SEMATTRS_HTTP_USER_AGENT]);\n return userAgent !== null && userAgent.includes(\"AlwaysOn\") ? true : false;\n}\n\nexport function convertDimensions(\n dimensions: MetricDependencyDimensions | MetricRequestDimensions,\n): Attributes {\n const convertedDimensions: any = {};\n for (const dim in dimensions) {\n convertedDimensions[StandardMetricPropertyNames[dim as MetricDimensionTypeKeys]] = (\n dimensions as any\n )[dim];\n }\n return convertedDimensions as Attributes;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
3
|
import { Resource, detectResourcesSync, envDetectorSync, } from "@opentelemetry/resources";
|
|
4
4
|
import { JsonConfig } from "./jsonConfig";
|
|
5
5
|
import { Logger } from "./logging";
|
|
@@ -27,7 +27,7 @@ export class InternalConfig {
|
|
|
27
27
|
this.samplingRatio = 1;
|
|
28
28
|
this.enableLiveMetrics = true;
|
|
29
29
|
this.enableStandardMetrics = true;
|
|
30
|
-
this.enableTraceBasedSamplingForLogs =
|
|
30
|
+
this.enableTraceBasedSamplingForLogs = false;
|
|
31
31
|
this.instrumentationOptions = {
|
|
32
32
|
http: { enabled: true },
|
|
33
33
|
azureSdk: { enabled: false },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/shared/config.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n Resource,\n ResourceDetectionConfig,\n detectResourcesSync,\n envDetectorSync,\n} from \"@opentelemetry/resources\";\nimport {\n BrowserSdkLoaderOptions,\n AzureMonitorOpenTelemetryOptions,\n InstrumentationOptions,\n} from \"../types\";\nimport { AzureMonitorExporterOptions } from \"@azure/monitor-opentelemetry-exporter\";\nimport { JsonConfig } from \"./jsonConfig\";\nimport { Logger } from \"./logging\";\nimport {\n azureAppServiceDetector,\n azureFunctionsDetector,\n azureVmDetector,\n} from \"@opentelemetry/resource-detector-azure\";\n\n/**\n * Azure Monitor OpenTelemetry Client Configuration\n */\nexport class InternalConfig implements AzureMonitorOpenTelemetryOptions {\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n public samplingRatio: number;\n /** Azure Monitor Exporter Configuration */\n public azureMonitorExporterOptions: AzureMonitorExporterOptions;\n /**\n * OpenTelemetry Instrumentations configuration included as part of Azure Monitor (azureSdk, http, mongoDb, mySql, postgreSql, redis, redis4)\n */\n public instrumentationOptions: InstrumentationOptions;\n /** Enable Live Metrics feature */\n enableLiveMetrics?: boolean;\n /** Enable Standard Metrics feature */\n enableStandardMetrics?: boolean;\n /** Enable log sampling based on trace (Default true) */\n enableTraceBasedSamplingForLogs?: boolean;\n\n private _resource: Resource = Resource.empty();\n\n public set resource(resource: Resource) {\n this._resource = this._resource.merge(resource);\n }\n\n /**\n *Get OpenTelemetry Resource\n */\n public get resource(): Resource {\n return this._resource;\n }\n\n public browserSdkLoaderOptions: BrowserSdkLoaderOptions;\n\n /**\n * Initializes a new instance of the AzureMonitorOpenTelemetryOptions class.\n */\n constructor(options?: AzureMonitorOpenTelemetryOptions) {\n // Default values\n this.azureMonitorExporterOptions = {};\n this.samplingRatio = 1;\n this.enableLiveMetrics = true;\n this.enableStandardMetrics = true;\n this.enableTraceBasedSamplingForLogs = true;\n this.instrumentationOptions = {\n http: { enabled: true },\n azureSdk: { enabled: false },\n mongoDb: { enabled: false },\n mySql: { enabled: false },\n postgreSql: { enabled: false },\n redis: { enabled: false },\n redis4: { enabled: false },\n };\n this._setDefaultResource();\n this.browserSdkLoaderOptions = {\n enabled: false,\n connectionString: \"\",\n };\n\n if (options) {\n // Merge default with provided options\n this.azureMonitorExporterOptions = Object.assign(\n this.azureMonitorExporterOptions,\n options.azureMonitorExporterOptions,\n );\n this.instrumentationOptions = Object.assign(\n this.instrumentationOptions,\n options.instrumentationOptions,\n );\n this.resource = Object.assign(this.resource, options.resource);\n this.samplingRatio =\n options.samplingRatio !== undefined ? options.samplingRatio : this.samplingRatio;\n this.browserSdkLoaderOptions = Object.assign(\n this.browserSdkLoaderOptions,\n options.browserSdkLoaderOptions,\n );\n this.enableLiveMetrics =\n options.enableLiveMetrics !== undefined\n ? options.enableLiveMetrics\n : this.enableLiveMetrics;\n this.enableStandardMetrics =\n options.enableStandardMetrics !== undefined\n ? options.enableStandardMetrics\n : this.enableStandardMetrics;\n this.enableTraceBasedSamplingForLogs =\n options.enableTraceBasedSamplingForLogs !== undefined\n ? options.enableTraceBasedSamplingForLogs\n : this.enableTraceBasedSamplingForLogs;\n }\n // JSON configuration will take precedence over other settings\n this._mergeConfig();\n }\n\n private _mergeConfig(): void {\n try {\n const jsonConfig = JsonConfig.getInstance();\n this.samplingRatio =\n jsonConfig.samplingRatio !== undefined ? jsonConfig.samplingRatio : this.samplingRatio;\n this.browserSdkLoaderOptions = Object.assign(\n this.browserSdkLoaderOptions,\n jsonConfig.browserSdkLoaderOptions,\n );\n this.enableLiveMetrics =\n jsonConfig.enableLiveMetrics !== undefined\n ? jsonConfig.enableLiveMetrics\n : this.enableLiveMetrics;\n this.enableStandardMetrics =\n jsonConfig.enableStandardMetrics !== undefined\n ? jsonConfig.enableStandardMetrics\n : this.enableStandardMetrics;\n this.enableTraceBasedSamplingForLogs =\n jsonConfig.enableTraceBasedSamplingForLogs !== undefined\n ? jsonConfig.enableTraceBasedSamplingForLogs\n : this.enableTraceBasedSamplingForLogs;\n this.azureMonitorExporterOptions = Object.assign(\n this.azureMonitorExporterOptions,\n jsonConfig.azureMonitorExporterOptions,\n );\n this.instrumentationOptions = Object.assign(\n this.instrumentationOptions,\n jsonConfig.instrumentationOptions,\n );\n } catch (error) {\n Logger.getInstance().error(\"Failed to load JSON config file values.\", error);\n }\n }\n\n private _setDefaultResource(): void {\n let resource = Resource.default();\n // Load resource attributes from env\n const detectResourceConfig: ResourceDetectionConfig = {\n detectors: [envDetectorSync],\n };\n const envResource = detectResourcesSync(detectResourceConfig);\n resource = resource.merge(envResource) as Resource;\n\n // Load resource attributes from Azure\n const azureResource: Resource = detectResourcesSync({\n detectors: [azureAppServiceDetector, azureFunctionsDetector],\n });\n this._resource = resource.merge(azureResource) as Resource;\n\n const vmResource = detectResourcesSync({\n detectors: [azureVmDetector],\n });\n if (vmResource.asyncAttributesPending) {\n vmResource.waitForAsyncAttributes?.().then(() => {\n this._resource = this._resource.merge(vmResource) as Resource;\n return;\n });\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/shared/config.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n Resource,\n ResourceDetectionConfig,\n detectResourcesSync,\n envDetectorSync,\n} from \"@opentelemetry/resources\";\nimport {\n BrowserSdkLoaderOptions,\n AzureMonitorOpenTelemetryOptions,\n InstrumentationOptions,\n} from \"../types\";\nimport { AzureMonitorExporterOptions } from \"@azure/monitor-opentelemetry-exporter\";\nimport { JsonConfig } from \"./jsonConfig\";\nimport { Logger } from \"./logging\";\nimport {\n azureAppServiceDetector,\n azureFunctionsDetector,\n azureVmDetector,\n} from \"@opentelemetry/resource-detector-azure\";\n\n/**\n * Azure Monitor OpenTelemetry Client Configuration\n */\nexport class InternalConfig implements AzureMonitorOpenTelemetryOptions {\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n public samplingRatio: number;\n /** Azure Monitor Exporter Configuration */\n public azureMonitorExporterOptions: AzureMonitorExporterOptions;\n /**\n * OpenTelemetry Instrumentations configuration included as part of Azure Monitor (azureSdk, http, mongoDb, mySql, postgreSql, redis, redis4)\n */\n public instrumentationOptions: InstrumentationOptions;\n /** Enable Live Metrics feature */\n enableLiveMetrics?: boolean;\n /** Enable Standard Metrics feature */\n enableStandardMetrics?: boolean;\n /** Enable log sampling based on trace (Default true) */\n enableTraceBasedSamplingForLogs?: boolean;\n\n private _resource: Resource = Resource.empty();\n\n public set resource(resource: Resource) {\n this._resource = this._resource.merge(resource);\n }\n\n /**\n *Get OpenTelemetry Resource\n */\n public get resource(): Resource {\n return this._resource;\n }\n\n public browserSdkLoaderOptions: BrowserSdkLoaderOptions;\n\n /**\n * Initializes a new instance of the AzureMonitorOpenTelemetryOptions class.\n */\n constructor(options?: AzureMonitorOpenTelemetryOptions) {\n // Default values\n this.azureMonitorExporterOptions = {};\n this.samplingRatio = 1;\n this.enableLiveMetrics = true;\n this.enableStandardMetrics = true;\n this.enableTraceBasedSamplingForLogs = false;\n this.instrumentationOptions = {\n http: { enabled: true },\n azureSdk: { enabled: false },\n mongoDb: { enabled: false },\n mySql: { enabled: false },\n postgreSql: { enabled: false },\n redis: { enabled: false },\n redis4: { enabled: false },\n };\n this._setDefaultResource();\n this.browserSdkLoaderOptions = {\n enabled: false,\n connectionString: \"\",\n };\n\n if (options) {\n // Merge default with provided options\n this.azureMonitorExporterOptions = Object.assign(\n this.azureMonitorExporterOptions,\n options.azureMonitorExporterOptions,\n );\n this.instrumentationOptions = Object.assign(\n this.instrumentationOptions,\n options.instrumentationOptions,\n );\n this.resource = Object.assign(this.resource, options.resource);\n this.samplingRatio =\n options.samplingRatio !== undefined ? options.samplingRatio : this.samplingRatio;\n this.browserSdkLoaderOptions = Object.assign(\n this.browserSdkLoaderOptions,\n options.browserSdkLoaderOptions,\n );\n this.enableLiveMetrics =\n options.enableLiveMetrics !== undefined\n ? options.enableLiveMetrics\n : this.enableLiveMetrics;\n this.enableStandardMetrics =\n options.enableStandardMetrics !== undefined\n ? options.enableStandardMetrics\n : this.enableStandardMetrics;\n this.enableTraceBasedSamplingForLogs =\n options.enableTraceBasedSamplingForLogs !== undefined\n ? options.enableTraceBasedSamplingForLogs\n : this.enableTraceBasedSamplingForLogs;\n }\n // JSON configuration will take precedence over other settings\n this._mergeConfig();\n }\n\n private _mergeConfig(): void {\n try {\n const jsonConfig = JsonConfig.getInstance();\n this.samplingRatio =\n jsonConfig.samplingRatio !== undefined ? jsonConfig.samplingRatio : this.samplingRatio;\n this.browserSdkLoaderOptions = Object.assign(\n this.browserSdkLoaderOptions,\n jsonConfig.browserSdkLoaderOptions,\n );\n this.enableLiveMetrics =\n jsonConfig.enableLiveMetrics !== undefined\n ? jsonConfig.enableLiveMetrics\n : this.enableLiveMetrics;\n this.enableStandardMetrics =\n jsonConfig.enableStandardMetrics !== undefined\n ? jsonConfig.enableStandardMetrics\n : this.enableStandardMetrics;\n this.enableTraceBasedSamplingForLogs =\n jsonConfig.enableTraceBasedSamplingForLogs !== undefined\n ? jsonConfig.enableTraceBasedSamplingForLogs\n : this.enableTraceBasedSamplingForLogs;\n this.azureMonitorExporterOptions = Object.assign(\n this.azureMonitorExporterOptions,\n jsonConfig.azureMonitorExporterOptions,\n );\n this.instrumentationOptions = Object.assign(\n this.instrumentationOptions,\n jsonConfig.instrumentationOptions,\n );\n } catch (error) {\n Logger.getInstance().error(\"Failed to load JSON config file values.\", error);\n }\n }\n\n private _setDefaultResource(): void {\n let resource = Resource.default();\n // Load resource attributes from env\n const detectResourceConfig: ResourceDetectionConfig = {\n detectors: [envDetectorSync],\n };\n const envResource = detectResourcesSync(detectResourceConfig);\n resource = resource.merge(envResource) as Resource;\n\n // Load resource attributes from Azure\n const azureResource: Resource = detectResourcesSync({\n detectors: [azureAppServiceDetector, azureFunctionsDetector],\n });\n this._resource = resource.merge(azureResource) as Resource;\n\n const vmResource = detectResourcesSync({\n detectors: [azureVmDetector],\n });\n if (vmResource.asyncAttributesPending) {\n vmResource.waitForAsyncAttributes?.().then(() => {\n this._resource = this._resource.merge(vmResource) as Resource;\n return;\n });\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { InternalConfig } from \"./config\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonConfig.js","sourceRoot":"","sources":["../../../src/shared/jsonConfig.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,sBAAsB,GAAG,wCAAwC,CAAC;AACxE,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,UAAU;IAsBrB,6BAA6B;IACtB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,UAAU,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH;QACE,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,6CAA6C;QAC7C,IAAI,iBAAiB,EAAE,CAAC;YACtB,UAAU,GAAG,iBAAiB,CAAC;QACjC,CAAC;QACD,YAAY;aACP,CAAC;YACJ,MAAM,cAAc,GAAG,0BAA0B,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,+CAA+C;YACnG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU;YAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,8CAA8C;gBACjG,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAqC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,2BAA2B,CAAC;YAC1E,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YAC9C,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;YAChE,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,uBAAuB,CAAC;YAClE,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YACtD,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;YAC9D,IAAI,CAAC,+BAA+B,GAAG,UAAU,CAAC,+BAA+B,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"jsonConfig.js","sourceRoot":"","sources":["../../../src/shared/jsonConfig.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAO7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,sBAAsB,GAAG,wCAAwC,CAAC;AACxE,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,UAAU;IAsBrB,6BAA6B;IACtB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,UAAU,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH;QACE,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,6CAA6C;QAC7C,IAAI,iBAAiB,EAAE,CAAC;YACtB,UAAU,GAAG,iBAAiB,CAAC;QACjC,CAAC;QACD,YAAY;aACP,CAAC;YACJ,MAAM,cAAc,GAAG,0BAA0B,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,+CAA+C;YACnG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU;YAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACvD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,8CAA8C;gBACjG,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAqC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,2BAA2B,CAAC;YAC1E,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YAC9C,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;YAChE,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,uBAAuB,CAAC;YAClE,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YACtD,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;YAC9D,IAAI,CAAC,+BAA+B,GAAG,UAAU,CAAC,+BAA+B,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* eslint-disable no-underscore-dangle*/\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport {\n BrowserSdkLoaderOptions,\n AzureMonitorOpenTelemetryOptions,\n InstrumentationOptions,\n} from \"../types\";\nimport { AzureMonitorExporterOptions } from \"@azure/monitor-opentelemetry-exporter\";\nimport { Logger } from \"./logging\";\n\nconst ENV_CONFIGURATION_FILE = \"APPLICATIONINSIGHTS_CONFIGURATION_FILE\";\nconst ENV_CONTENT = \"APPLICATIONINSIGHTS_CONFIGURATION_CONTENT\";\n\n/**\n * Azure Monitor OpenTelemetry Client Configuration through JSON File\n * @internal\n */\nexport class JsonConfig implements AzureMonitorOpenTelemetryOptions {\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n public samplingRatio?: number;\n /** Azure Monitor Exporter Configuration */\n public azureMonitorExporterOptions?: AzureMonitorExporterOptions;\n /**\n * OpenTelemetry Instrumentations configuration included as part of Azure Monitor (azureSdk, http, mongoDb, mySql, postgreSql, redis, redis4)\n */\n public instrumentationOptions?: InstrumentationOptions;\n /** Enable Live Metrics feature */\n public enableLiveMetrics?: boolean;\n /** Enable Standard Metrics feature */\n public enableStandardMetrics?: boolean;\n /** Enable log sampling based on trace (Default true) */\n public enableTraceBasedSamplingForLogs?: boolean;\n\n public browserSdkLoaderOptions?: BrowserSdkLoaderOptions;\n\n private static _instance: JsonConfig;\n\n private _tempDir: string;\n\n /** Get Singleton instance */\n public static getInstance(): JsonConfig {\n if (!JsonConfig._instance) {\n JsonConfig._instance = new JsonConfig();\n }\n return JsonConfig._instance;\n }\n\n /**\n * Initializes a new instance of the JsonConfig class.\n */\n constructor() {\n let jsonString = \"\";\n this._tempDir = \"\";\n const contentJsonConfig = process.env[ENV_CONTENT];\n // JSON string added directly in env variable\n if (contentJsonConfig) {\n jsonString = contentJsonConfig;\n }\n // JSON file\n else {\n const configFileName = \"applicationinsights.json\";\n const rootPath = path.join(__dirname, \"../../../\"); // Root of folder (__dirname = ../dist-esm/src)\n this._tempDir = path.join(rootPath, configFileName); // default\n const configFile = process.env[ENV_CONFIGURATION_FILE];\n if (configFile) {\n if (path.isAbsolute(configFile)) {\n this._tempDir = configFile;\n } else {\n this._tempDir = path.join(rootPath, configFile); // Relative path to applicationinsights folder\n }\n }\n try {\n jsonString = fs.readFileSync(this._tempDir, \"utf8\");\n } catch (err) {\n Logger.getInstance().info(\"Failed to read JSON config file: \", err);\n }\n }\n try {\n const jsonConfig: AzureMonitorOpenTelemetryOptions = JSON.parse(jsonString);\n this.azureMonitorExporterOptions = jsonConfig.azureMonitorExporterOptions;\n this.samplingRatio = jsonConfig.samplingRatio;\n this.instrumentationOptions = jsonConfig.instrumentationOptions;\n this.browserSdkLoaderOptions = jsonConfig.browserSdkLoaderOptions;\n this.enableLiveMetrics = jsonConfig.enableLiveMetrics;\n this.enableStandardMetrics = jsonConfig.enableStandardMetrics;\n this.enableTraceBasedSamplingForLogs = jsonConfig.enableTraceBasedSamplingForLogs;\n } catch (err) {\n Logger.getInstance().info(\"Missing or invalid JSON config file: \", err);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagFileConsoleLogger.js","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { DiagLogger } from \"@opentelemetry/api\";\nimport {\n accessAsync,\n appendFileAsync,\n confirmDirExists,\n getShallowFileSize,\n readdirAsync,\n readFileAsync,\n writeFileAsync,\n unlinkAsync,\n} from \"../../utils\";\n\nexport class DiagFileConsoleLogger implements DiagLogger {\n private _TAG = \"DiagFileConsoleLogger:\";\n private _cleanupTimeOut = 60 * 30 * 1000; // 30 minutes;\n private _fileCleanupTimer: NodeJS.Timeout | null = null;\n private _tempDir: string;\n private _logFileName: string;\n private _fileFullPath: string;\n private _backUpNameFormat: string;\n private _logToFile = false;\n private _logToConsole = true;\n private _maxHistory: number;\n private _maxSizeBytes: number;\n private _logDestination: string | undefined;\n\n constructor() {\n this._logDestination = process.env.APPLICATIONINSIGHTS_LOG_DESTINATION; // destination can be one of file, console or file+console\n if (this._logDestination === \"file+console\") {\n this._logToFile = true;\n }\n if (this._logDestination === \"file\") {\n this._logToFile = true;\n this._logToConsole = false;\n }\n this._maxSizeBytes = 50000;\n this._maxHistory = 1;\n this._logFileName = \"applicationinsights.log\";\n\n // If custom path not provided use temp folder, /tmp for *nix and USERDIR/AppData/Local/Temp for Windows\n const logFilePath = process.env.APPLICATIONINSIGHTS_LOGDIR;\n if (!logFilePath) {\n this._tempDir = path.join(os.tmpdir(), \"appInsights-node\");\n } else {\n if (path.isAbsolute(logFilePath)) {\n this._tempDir = logFilePath;\n } else {\n this._tempDir = path.join(process.cwd(), logFilePath);\n }\n }\n this._fileFullPath = path.join(this._tempDir, this._logFileName);\n this._backUpNameFormat = `.${this._logFileName}`; // {currentime}.applicationinsights.log\n\n if (this._logToFile) {\n if (!this._fileCleanupTimer) {\n this._fileCleanupTimer = setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._fileCleanupTask();\n }, this._cleanupTimeOut);\n this._fileCleanupTimer.unref();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public error(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public warn(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public info(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public debug(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public verbose(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public async logMessage(message?: any, ...optionalParams: any[]): Promise<void> {\n try {\n const args = message ? [message, ...optionalParams] : optionalParams;\n if (this._logToFile) {\n await this._storeToDisk(args);\n }\n if (this._logToConsole) {\n // eslint-disable-next-line no-console\n console.log(...args);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to log to file: ${err && err.message}`);\n }\n }\n\n private async _storeToDisk(args: any): Promise<void> {\n const data = `${args}\\r\\n`;\n\n try {\n await confirmDirExists(this._tempDir);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to create directory for log file: ${err && err.message}`);\n return;\n }\n try {\n await accessAsync(this._fileFullPath, fs.constants.F_OK);\n } catch (err: any) {\n // No file create one\n try {\n await appendFileAsync(this._fileFullPath, data);\n } catch (appendError: any) {\n // eslint-disable-next-line no-console\n console.log(\n this._TAG,\n `Failed to put log into file: ${appendError && appendError.message}`,\n );\n return;\n }\n }\n // Check size\n const size = await getShallowFileSize(this._fileFullPath);\n if (size && size > this._maxSizeBytes) {\n await this._createBackupFile(data);\n } else {\n await appendFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _createBackupFile(data: string): Promise<void> {\n try {\n const buffer = await readFileAsync(this._fileFullPath);\n const backupPath = path.join(this._tempDir, `${new Date().getTime()}.${this._logFileName}`);\n await writeFileAsync(backupPath, buffer);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(\"Failed to generate backup log file\", err);\n } finally {\n // Store logs\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _fileCleanupTask(): Promise<void> {\n try {\n let files = await readdirAsync(this._tempDir);\n // Filter only backup files\n files = files.filter((f) => path.basename(f).indexOf(this._backUpNameFormat) > -1);\n // Sort by creation date\n files.sort((a: string, b: string) => {\n // Check expiration\n const aCreationDate: Date = new Date(parseInt(a.split(this._backUpNameFormat)[0]));\n const bCreationDate: Date = new Date(parseInt(b.split(this._backUpNameFormat)[0]));\n if (aCreationDate < bCreationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n const totalFiles = files.length;\n for (let i = 0; i < totalFiles - this._maxHistory; i++) {\n const pathToDelete = path.join(this._tempDir, files[i]);\n await unlinkAsync(pathToDelete);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to cleanup log files: ${err && err.message}`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"diagFileConsoleLogger.js","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,qBAAqB;IAchC;QAbQ,SAAI,GAAG,wBAAwB,CAAC;QAChC,oBAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,cAAc;QAChD,sBAAiB,GAA0B,IAAI,CAAC;QAKhD,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,IAAI,CAAC;QAM3B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,0DAA0D;QAClI,IAAI,IAAI,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC;QAE9C,wGAAwG;QACxG,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,uCAAuC;QAEzF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;oBACxC,mEAAmE;oBACnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,OAAa,EAAE,GAAG,IAAW;QACxC,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IACtE,IAAI,CAAC,OAAa,EAAE,GAAG,IAAW;QACvC,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IACtE,IAAI,CAAC,OAAa,EAAE,GAAG,IAAW;QACvC,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,OAAa,EAAE,GAAG,IAAW;QACxC,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IACtE,OAAO,CAAC,OAAa,EAAE,GAAG,IAAW;QAC1C,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,6EAA6E;IACtE,KAAK,CAAC,UAAU,CAAC,OAAa,EAAE,GAAG,cAAqB;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACrE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAS;QAClC,MAAM,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzF,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,WAAgB,EAAE,CAAC;gBAC1B,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,IAAI,EACT,gCAAgC,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CACrE,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QACD,aAAa;QACb,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC5F,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,aAAa;YACb,mEAAmE;YACnE,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,IAAI,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,2BAA2B;YAC3B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnF,wBAAwB;YACxB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;gBAClC,mBAAmB;gBACnB,MAAM,aAAa,GAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,MAAM,aAAa,GAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,aAAa,GAAG,aAAa,EAAE,CAAC;oBAClC,OAAO,CAAC,CAAC,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,CAAC;gBACX,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { DiagLogger } from \"@opentelemetry/api\";\nimport {\n accessAsync,\n appendFileAsync,\n confirmDirExists,\n getShallowFileSize,\n readdirAsync,\n readFileAsync,\n writeFileAsync,\n unlinkAsync,\n} from \"../../utils\";\n\nexport class DiagFileConsoleLogger implements DiagLogger {\n private _TAG = \"DiagFileConsoleLogger:\";\n private _cleanupTimeOut = 60 * 30 * 1000; // 30 minutes;\n private _fileCleanupTimer: NodeJS.Timeout | null = null;\n private _tempDir: string;\n private _logFileName: string;\n private _fileFullPath: string;\n private _backUpNameFormat: string;\n private _logToFile = false;\n private _logToConsole = true;\n private _maxHistory: number;\n private _maxSizeBytes: number;\n private _logDestination: string | undefined;\n\n constructor() {\n this._logDestination = process.env.APPLICATIONINSIGHTS_LOG_DESTINATION; // destination can be one of file, console or file+console\n if (this._logDestination === \"file+console\") {\n this._logToFile = true;\n }\n if (this._logDestination === \"file\") {\n this._logToFile = true;\n this._logToConsole = false;\n }\n this._maxSizeBytes = 50000;\n this._maxHistory = 1;\n this._logFileName = \"applicationinsights.log\";\n\n // If custom path not provided use temp folder, /tmp for *nix and USERDIR/AppData/Local/Temp for Windows\n const logFilePath = process.env.APPLICATIONINSIGHTS_LOGDIR;\n if (!logFilePath) {\n this._tempDir = path.join(os.tmpdir(), \"appInsights-node\");\n } else {\n if (path.isAbsolute(logFilePath)) {\n this._tempDir = logFilePath;\n } else {\n this._tempDir = path.join(process.cwd(), logFilePath);\n }\n }\n this._fileFullPath = path.join(this._tempDir, this._logFileName);\n this._backUpNameFormat = `.${this._logFileName}`; // {currentime}.applicationinsights.log\n\n if (this._logToFile) {\n if (!this._fileCleanupTimer) {\n this._fileCleanupTimer = setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._fileCleanupTask();\n }, this._cleanupTimeOut);\n this._fileCleanupTimer.unref();\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public error(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public warn(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public info(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public debug(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public verbose(message?: any, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logMessage(message, args);\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public async logMessage(message?: any, ...optionalParams: any[]): Promise<void> {\n try {\n const args = message ? [message, ...optionalParams] : optionalParams;\n if (this._logToFile) {\n await this._storeToDisk(args);\n }\n if (this._logToConsole) {\n // eslint-disable-next-line no-console\n console.log(...args);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to log to file: ${err && err.message}`);\n }\n }\n\n private async _storeToDisk(args: any): Promise<void> {\n const data = `${args}\\r\\n`;\n\n try {\n await confirmDirExists(this._tempDir);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to create directory for log file: ${err && err.message}`);\n return;\n }\n try {\n await accessAsync(this._fileFullPath, fs.constants.F_OK);\n } catch (err: any) {\n // No file create one\n try {\n await appendFileAsync(this._fileFullPath, data);\n } catch (appendError: any) {\n // eslint-disable-next-line no-console\n console.log(\n this._TAG,\n `Failed to put log into file: ${appendError && appendError.message}`,\n );\n return;\n }\n }\n // Check size\n const size = await getShallowFileSize(this._fileFullPath);\n if (size && size > this._maxSizeBytes) {\n await this._createBackupFile(data);\n } else {\n await appendFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _createBackupFile(data: string): Promise<void> {\n try {\n const buffer = await readFileAsync(this._fileFullPath);\n const backupPath = path.join(this._tempDir, `${new Date().getTime()}.${this._logFileName}`);\n await writeFileAsync(backupPath, buffer);\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(\"Failed to generate backup log file\", err);\n } finally {\n // Store logs\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n writeFileAsync(this._fileFullPath, data);\n }\n }\n\n private async _fileCleanupTask(): Promise<void> {\n try {\n let files = await readdirAsync(this._tempDir);\n // Filter only backup files\n files = files.filter((f) => path.basename(f).indexOf(this._backUpNameFormat) > -1);\n // Sort by creation date\n files.sort((a: string, b: string) => {\n // Check expiration\n const aCreationDate: Date = new Date(parseInt(a.split(this._backUpNameFormat)[0]));\n const bCreationDate: Date = new Date(parseInt(b.split(this._backUpNameFormat)[0]));\n if (aCreationDate < bCreationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n const totalFiles = files.length;\n for (let i = 0; i < totalFiles - this._maxHistory; i++) {\n const pathToDelete = path.join(this._tempDir, files[i]);\n await unlinkAsync(pathToDelete);\n }\n } catch (err: any) {\n // eslint-disable-next-line no-console\n console.log(this._TAG, `Failed to cleanup log files: ${err && err.message}`);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/logging/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/logging/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { Logger } from \"./logger\";\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
3
|
import { AzureLogger, createClientLogger, setLogLevel } from "@azure/logger";
|
|
4
4
|
import { diag, DiagLogLevel } from "@opentelemetry/api";
|
|
5
5
|
import { DiagFileConsoleLogger } from "./diagFileConsoleLogger";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/shared/logging/logger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/shared/logging/logger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AzureLogLevel, AzureLogger, createClientLogger, setLogLevel } from \"@azure/logger\";\nimport { diag, DiagLogger, DiagLogLevel } from \"@opentelemetry/api\";\nimport { DiagFileConsoleLogger } from \"./diagFileConsoleLogger\";\n\nexport class Logger {\n private static instance: Logger;\n private diagLevel: DiagLogLevel;\n private azureLogger: AzureLogger;\n private openTelemetryLogger: DiagLogger;\n private logToAzureLogger: boolean;\n private logToOpenTelemetry: boolean;\n\n static getInstance(): Logger {\n if (!Logger.instance) {\n Logger.instance = new Logger();\n }\n return Logger.instance;\n }\n\n constructor() {\n this.azureLogger = createClientLogger(\"@azure/monitor-opentelemetry\");\n this.openTelemetryLogger = diag.createComponentLogger({\n namespace: \"@azure/monitor-opentelemetry\",\n });\n this.logToOpenTelemetry = true;\n this.logToAzureLogger = false;\n const otelLogLevelEnv =\n process.env.APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL || process.env.OTEL_LOG_LEVEL;\n this.diagLevel = DiagLogLevel.WARN; // Default\n switch (otelLogLevelEnv) {\n case \"ALL\":\n this.diagLevel = DiagLogLevel.ALL;\n break;\n case \"DEBUG\":\n this.diagLevel = DiagLogLevel.DEBUG;\n break;\n case \"ERROR\":\n this.diagLevel = DiagLogLevel.ERROR;\n break;\n case \"INFO\":\n this.diagLevel = DiagLogLevel.INFO;\n break;\n case \"NONE\":\n this.diagLevel = DiagLogLevel.NONE;\n break;\n case \"VERBOSE\":\n this.diagLevel = DiagLogLevel.VERBOSE;\n break;\n case \"WARN\":\n this.diagLevel = DiagLogLevel.WARN;\n break;\n }\n // Set OpenTelemetry Logger\n const fileConsoleLogger = new DiagFileConsoleLogger();\n diag.setLogger(fileConsoleLogger, {\n logLevel: this.diagLevel,\n suppressOverrideMessage: true,\n });\n\n const azureLogLevelEnv = process.env.APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL;\n switch (azureLogLevelEnv) {\n // Application Insights levels\n case \"VERBOSE\":\n setLogLevel(\"verbose\");\n break;\n case \"INFO\":\n setLogLevel(\"info\");\n break;\n case \"WARN\":\n setLogLevel(\"warning\");\n break;\n case \"ERROR\":\n setLogLevel(\"error\");\n break;\n default:\n setLogLevel((process.env.AZURE_LOG_LEVEL as AzureLogLevel) || \"warning\");\n break;\n }\n // Override Azure logger\n AzureLogger.log = (...args) => {\n fileConsoleLogger.logMessage(...args);\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public error(message?: any, ...args: any[]): void {\n if (this.logToAzureLogger) {\n this.azureLogger.error(message, args);\n }\n if (this.logToOpenTelemetry) {\n this.openTelemetryLogger.error(message, args);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public warn(message?: any, ...args: any[]): void {\n if (this.logToAzureLogger) {\n this.azureLogger.warning(message, args);\n }\n if (this.logToOpenTelemetry) {\n this.openTelemetryLogger.warn(message, args);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public info(message?: any, ...args: any[]): void {\n if (this.logToAzureLogger) {\n this.azureLogger.info(message, args);\n }\n if (this.logToOpenTelemetry) {\n this.openTelemetryLogger.info(message, args);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public debug(message?: any, ...args: any[]): void {\n if (this.logToAzureLogger) {\n this.azureLogger.verbose(message, args);\n }\n if (this.logToOpenTelemetry) {\n this.openTelemetryLogger.debug(message, args);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n public verbose(message?: any, ...args: any[]): void {\n if (this.logToAzureLogger) {\n this.azureLogger.verbose(message, args);\n }\n if (this.logToOpenTelemetry) {\n this.openTelemetryLogger.verbose(message, args);\n }\n }\n\n public setLogToAzureLogger(value: boolean): void {\n this.logToAzureLogger = value;\n }\n\n public setLogToOpenTelemetry(value: boolean): void {\n this.logToOpenTelemetry = value;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azureFnHook.js","sourceRoot":"","sources":["../../../src/traces/azureFnHook.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;
|
|
1
|
+
{"version":3,"file":"azureFnHook.js","sourceRoot":"","sources":["../../../src/traces/azureFnHook.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAmC,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AA4B3C,MAAM,OAAO,kBAAkB;IAI7B;QACE,IAAI,CAAC;YACH,iEAAiE;YACjE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC7D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CACxB,sEAAsE,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;IACxC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAC9D,eAAe;YACf,4DAA4D;YAC5D,KAAK,EAAE,oBAA0C,EAAE,EAAE;gBACnD,MAAM,aAAa,GAAmB,oBAAoB,CAAC,iBAAiB,CAAC;gBAC7E,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;gBAChD,4CAA4C;gBAC5C,6EAA6E;gBAC7E,IAAI,gBAAgB,GAA+B,IAAI,CAAC;gBACxD,IAAI,CAAC;oBACH,IAAI,YAAY,EAAE,CAAC;wBACjB,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;4BACvD,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW;4BACjE,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU;yBAC/D,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,cAAc,GAAG,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC5D,oBAAoB,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAClD,cAAc,EACd,oBAAoB,CAAC,gBAAgB,CACtC,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Context as AzureFnV3Context } from \"@azure/functions-old\";\nimport { InvocationContext as AzureFnV4Context } from \"@azure/functions\";\nimport { context, propagation, Context as OpenTelemetryContext } from \"@opentelemetry/api\";\nimport { Logger } from \"../shared/logging\";\n\ntype AzureFnContext = AzureFnV3Context & AzureFnV4Context;\n\ntype FunctionCallback = (context: unknown, ...inputs: unknown[]) => unknown;\n\n/**\n * Context on a function that is about to be executed\n * This object will be passed to all pre invocation hooks\n */\nexport interface PreInvocationContext {\n /**\n * The context object passed to the function\n * This object is readonly. You may modify it, but attempting to overwrite it will throw an error\n */\n readonly invocationContext: unknown;\n\n /**\n * The input values for this specific invocation. Changes to this array _will_ affect the inputs passed to your function\n */\n inputs: any[];\n\n /**\n * The function callback for this specific invocation. Changes to this value _will_ affect the function itself\n */\n functionCallback: FunctionCallback;\n}\n\nexport class AzureFunctionsHook {\n private _functionsCoreModule: any;\n private _preInvocationHook: any;\n\n constructor() {\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n this._functionsCoreModule = require(\"@azure/functions-core\");\n this._addPreInvocationHook();\n } catch (error) {\n Logger.getInstance().debug(\n \"@azure/functions-core failed to load, not running in Azure Functions\",\n );\n }\n }\n\n public shutdown(): void {\n if (this._preInvocationHook) {\n this._preInvocationHook.dispose();\n this._preInvocationHook = undefined;\n }\n this._functionsCoreModule = undefined;\n }\n\n private _addPreInvocationHook(): void {\n if (!this._preInvocationHook) {\n this._preInvocationHook = this._functionsCoreModule.registerHook(\n \"preInvocation\",\n // eslint-disable-next-line @typescript-eslint/require-await\n async (preInvocationContext: PreInvocationContext) => {\n const sharedContext = <AzureFnContext>preInvocationContext.invocationContext;\n const traceContext = sharedContext.traceContext;\n // Update context to use Azure Functions one\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n let extractedContext: OpenTelemetryContext | any = null;\n try {\n if (traceContext) {\n extractedContext = propagation.extract(context.active(), {\n traceparent: traceContext.traceparent || traceContext.traceParent,\n tracestate: traceContext.tracestate || traceContext.traceState,\n });\n }\n const currentContext = extractedContext || context.active();\n preInvocationContext.functionCallback = context.bind(\n currentContext,\n preInvocationContext.functionCallback,\n );\n } catch (err) {\n Logger.getInstance().error(\"Failed to propagate context in Azure Functions\", err);\n }\n },\n );\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
3
|
import { createAzureSdkInstrumentation } from "@azure/opentelemetry-instrumentation-azure-sdk";
|
|
4
4
|
import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
|
|
5
5
|
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
|