@azure/monitor-opentelemetry-exporter 1.0.0-beta.33 → 1.0.0-beta.34
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/LICENSE +21 -0
- package/dist/commonjs/Declarations/Constants.d.ts +7 -2
- package/dist/commonjs/Declarations/Constants.d.ts.map +1 -1
- package/dist/commonjs/Declarations/Constants.js +8 -3
- package/dist/commonjs/Declarations/Constants.js.map +1 -1
- package/dist/commonjs/export/statsbeat/{customerStatsbeat.d.ts → customerSDKStats.d.ts} +30 -22
- package/dist/commonjs/export/statsbeat/customerSDKStats.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/{customerStatsbeat.js → customerSDKStats.js} +175 -127
- package/dist/commonjs/export/statsbeat/customerSDKStats.js.map +1 -0
- package/dist/commonjs/export/statsbeat/types.d.ts +34 -9
- package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -1
- package/dist/commonjs/export/statsbeat/types.js +45 -15
- package/dist/commonjs/export/statsbeat/types.js.map +1 -1
- package/dist/commonjs/generated/applicationInsightsClient.js +1 -1
- package/dist/commonjs/generated/applicationInsightsClient.js.map +1 -1
- package/dist/commonjs/platform/nodejs/baseSender.d.ts +1 -1
- package/dist/commonjs/platform/nodejs/baseSender.d.ts.map +1 -1
- package/dist/commonjs/platform/nodejs/baseSender.js +41 -26
- package/dist/commonjs/platform/nodejs/baseSender.js.map +1 -1
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts +3 -3
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js +8 -8
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/types.d.ts +3 -1
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +4 -0
- package/dist/commonjs/types.js.map +1 -1
- package/dist/commonjs/utils/constants/applicationinsights.d.ts +2 -1
- package/dist/commonjs/utils/constants/applicationinsights.d.ts.map +1 -1
- package/dist/commonjs/utils/constants/applicationinsights.js +3 -2
- package/dist/commonjs/utils/constants/applicationinsights.js.map +1 -1
- package/dist/commonjs/utils/logUtils.d.ts.map +1 -1
- package/dist/commonjs/utils/logUtils.js +24 -6
- package/dist/commonjs/utils/logUtils.js.map +1 -1
- package/dist/commonjs/utils/spanUtils.d.ts.map +1 -1
- package/dist/commonjs/utils/spanUtils.js +16 -3
- package/dist/commonjs/utils/spanUtils.js.map +1 -1
- package/dist/esm/Declarations/Constants.d.ts +7 -2
- package/dist/esm/Declarations/Constants.d.ts.map +1 -1
- package/dist/esm/Declarations/Constants.js +7 -2
- package/dist/esm/Declarations/Constants.js.map +1 -1
- package/dist/esm/export/statsbeat/{customerStatsbeat.d.ts → customerSDKStats.d.ts} +30 -22
- package/dist/esm/export/statsbeat/customerSDKStats.d.ts.map +1 -0
- package/dist/esm/export/statsbeat/{customerStatsbeat.js → customerSDKStats.js} +175 -127
- package/dist/esm/export/statsbeat/customerSDKStats.js.map +1 -0
- package/dist/esm/export/statsbeat/types.d.ts +34 -9
- package/dist/esm/export/statsbeat/types.d.ts.map +1 -1
- package/dist/esm/export/statsbeat/types.js +43 -13
- package/dist/esm/export/statsbeat/types.js.map +1 -1
- package/dist/esm/generated/applicationInsightsClient.js +1 -1
- package/dist/esm/generated/applicationInsightsClient.js.map +1 -1
- package/dist/esm/platform/nodejs/baseSender.d.ts +1 -1
- package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -1
- package/dist/esm/platform/nodejs/baseSender.js +39 -24
- package/dist/esm/platform/nodejs/baseSender.js.map +1 -1
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +3 -3
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.js +9 -9
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
- package/dist/esm/types.d.ts +3 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +4 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/constants/applicationinsights.d.ts +2 -1
- package/dist/esm/utils/constants/applicationinsights.d.ts.map +1 -1
- package/dist/esm/utils/constants/applicationinsights.js +2 -1
- package/dist/esm/utils/constants/applicationinsights.js.map +1 -1
- package/dist/esm/utils/logUtils.d.ts.map +1 -1
- package/dist/esm/utils/logUtils.js +21 -3
- package/dist/esm/utils/logUtils.js.map +1 -1
- package/dist/esm/utils/spanUtils.d.ts.map +1 -1
- package/dist/esm/utils/spanUtils.js +19 -6
- package/dist/esm/utils/spanUtils.js.map +1 -1
- package/package.json +32 -33
- package/dist/commonjs/export/statsbeat/customerStatsbeat.d.ts.map +0 -1
- package/dist/commonjs/export/statsbeat/customerStatsbeat.js.map +0 -1
- package/dist/esm/export/statsbeat/customerStatsbeat.d.ts.map +0 -1
- package/dist/esm/export/statsbeat/customerStatsbeat.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spanUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"spanUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoD3E,OAAO,KAAK,EAAE,IAAI,EAAoC,MAAM,aAAa,CAAC;AAgB1E,OAAO,KAAK,EAKV,aAAa,IAAI,QAAQ,EAE1B,MAAM,uBAAuB,CAAC;AA8P/B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyFjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA8FlF;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAUtE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKlF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK/E;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAM7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKpF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAWhF;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK9E;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKjF;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CASjF"}
|
|
@@ -32,9 +32,14 @@ function createTagsFromSpan(span) {
|
|
|
32
32
|
if (span.parentSpanContext?.spanId) {
|
|
33
33
|
tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = span.parentSpanContext.spanId;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
// Map OpenTelemetry enduser attributes to Application Insights user attributes
|
|
36
|
+
const endUserId = span.attributes[types_js_1.experimentalOpenTelemetryValues.ATTR_ENDUSER_ID];
|
|
36
37
|
if (endUserId) {
|
|
37
|
-
tags[index_js_1.KnownContextTagKeys.
|
|
38
|
+
tags[index_js_1.KnownContextTagKeys.AiUserAuthUserId] = String(endUserId);
|
|
39
|
+
}
|
|
40
|
+
const endUserPseudoId = span.attributes[types_js_1.experimentalOpenTelemetryValues.ATTR_ENDUSER_PSEUDO_ID];
|
|
41
|
+
if (endUserPseudoId) {
|
|
42
|
+
tags[index_js_1.KnownContextTagKeys.AiUserId] = String(endUserPseudoId);
|
|
38
43
|
}
|
|
39
44
|
const httpUserAgent = getUserAgent(span.attributes);
|
|
40
45
|
if (httpUserAgent) {
|
|
@@ -44,9 +49,17 @@ function createTagsFromSpan(span) {
|
|
|
44
49
|
if ((0, common_js_1.isSyntheticSource)(span.attributes)) {
|
|
45
50
|
tags[index_js_1.KnownContextTagKeys.AiOperationSyntheticSource] = "True";
|
|
46
51
|
}
|
|
52
|
+
// Check for microsoft.client.ip first - this takes precedence over all other IP logic
|
|
53
|
+
const microsoftClientIp = span.attributes[applicationinsights_js_1.MicrosoftClientIp];
|
|
54
|
+
if (microsoftClientIp) {
|
|
55
|
+
tags[index_js_1.KnownContextTagKeys.AiLocationIp] = String(microsoftClientIp);
|
|
56
|
+
}
|
|
47
57
|
if (span.kind === api_1.SpanKind.SERVER) {
|
|
48
58
|
const httpMethod = getHttpMethod(span.attributes);
|
|
49
|
-
|
|
59
|
+
// Only use the fallback IP logic for server spans if microsoft.client.ip is not set
|
|
60
|
+
if (!microsoftClientIp) {
|
|
61
|
+
getLocationIp(tags, span.attributes);
|
|
62
|
+
}
|
|
50
63
|
if (httpMethod) {
|
|
51
64
|
const httpRoute = span.attributes[semantic_conventions_1.ATTR_HTTP_ROUTE];
|
|
52
65
|
const httpUrl = getHttpUrl(span.attributes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spanUtils.js","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ReadableSpan, TimedEvent } from \"@opentelemetry/sdk-trace-base\";\nimport { hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport type { Link, Attributes, AttributeValue } from \"@opentelemetry/api\";\nimport { diag, SpanKind, SpanStatusCode } from \"@opentelemetry/api\";\nimport {\n DBSYSTEMVALUES_MONGODB,\n DBSYSTEMVALUES_MYSQL,\n DBSYSTEMVALUES_POSTGRESQL,\n DBSYSTEMVALUES_REDIS,\n SEMATTRS_DB_NAME,\n SEMATTRS_DB_OPERATION,\n SEMATTRS_DB_STATEMENT,\n SEMATTRS_DB_SYSTEM,\n SEMATTRS_ENDUSER_ID,\n SEMATTRS_EXCEPTION_ESCAPED,\n SEMATTRS_EXCEPTION_MESSAGE,\n SEMATTRS_EXCEPTION_STACKTRACE,\n SEMATTRS_EXCEPTION_TYPE,\n SEMATTRS_HTTP_CLIENT_IP,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_HTTP_URL,\n SEMATTRS_HTTP_USER_AGENT,\n SEMATTRS_NET_PEER_IP,\n SEMATTRS_RPC_GRPC_STATUS_CODE,\n SEMATTRS_RPC_SYSTEM,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_CLIENT_ADDRESS,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_USER_AGENT_ORIGINAL,\n ATTR_HTTP_ROUTE,\n ATTR_URL_FULL,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n SEMATTRS_HTTP_SCHEME,\n ATTR_URL_SCHEME,\n SEMATTRS_HTTP_TARGET,\n ATTR_URL_PATH,\n ATTR_URL_QUERY,\n ATTR_SERVER_ADDRESS,\n SEMATTRS_HTTP_HOST,\n SEMATTRS_NET_PEER_NAME,\n ATTR_CLIENT_PORT,\n ATTR_SERVER_PORT,\n SEMATTRS_NET_PEER_PORT,\n} from \"@opentelemetry/semantic-conventions\";\n\nimport {\n createTagsFromResource,\n getDependencyTarget,\n getUrl,\n hrTimeToDate,\n isSqlDB,\n isSyntheticSource,\n serializeAttribute,\n} from \"./common.js\";\nimport type { Tags, Properties, MSLink, Measurements } from \"../types.js\";\nimport {\n httpSemanticValues,\n internalMicrosoftAttributes,\n legacySemanticValues,\n MaxPropertyLengths,\n} from \"../types.js\";\nimport { parseEventHubSpan } from \"./eventhub.js\";\nimport {\n AzureMonitorSampleRate,\n DependencyTypes,\n MS_LINKS,\n} from \"./constants/applicationinsights.js\";\nimport { AzNamespace, MicrosoftEventHub } from \"./constants/span/azAttributes.js\";\nimport type {\n TelemetryExceptionData,\n MessageData,\n RemoteDependencyData,\n RequestData,\n TelemetryItem as Envelope,\n TelemetryExceptionDetails,\n} from \"../generated/index.js\";\nimport { KnownContextTagKeys } from \"../generated/index.js\";\nimport { msToTimeSpan } from \"./breezeUtils.js\";\n\nfunction createTagsFromSpan(span: ReadableSpan): Tags {\n const tags: Tags = createTagsFromResource(span.resource);\n tags[KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;\n if (span.parentSpanContext?.spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = span.parentSpanContext.spanId;\n }\n const endUserId = span.attributes[SEMATTRS_ENDUSER_ID];\n if (endUserId) {\n tags[KnownContextTagKeys.AiUserId] = String(endUserId);\n }\n const httpUserAgent = getUserAgent(span.attributes);\n if (httpUserAgent) {\n // TODO: Not exposed in Swagger, need to update def\n tags[\"ai.user.userAgent\"] = String(httpUserAgent);\n }\n if (isSyntheticSource(span.attributes)) {\n tags[KnownContextTagKeys.AiOperationSyntheticSource] = \"True\";\n }\n if (span.kind === SpanKind.SERVER) {\n const httpMethod = getHttpMethod(span.attributes);\n getLocationIp(tags, span.attributes);\n if (httpMethod) {\n const httpRoute = span.attributes[ATTR_HTTP_ROUTE];\n const httpUrl = getHttpUrl(span.attributes);\n tags[KnownContextTagKeys.AiOperationName] = span.name; // Default\n if (httpRoute) {\n // AiOperationName max length is 1024\n // https://github.com/MohanGsk/ApplicationInsights-Home/blob/master/EndpointSpecs/Schemas/Bond/ContextTagKeys.bond\n tags[KnownContextTagKeys.AiOperationName] = String(\n `${httpMethod as string} ${httpRoute as string}`,\n ).substring(0, MaxPropertyLengths.TEN_BIT);\n } else if (httpUrl) {\n try {\n const url = new URL(String(httpUrl));\n tags[KnownContextTagKeys.AiOperationName] = String(\n `${httpMethod} ${url.pathname}`,\n ).substring(0, MaxPropertyLengths.TEN_BIT);\n } catch {\n /* no-op */\n }\n }\n } else {\n tags[KnownContextTagKeys.AiOperationName] = span.name;\n }\n } else {\n if (span.attributes[KnownContextTagKeys.AiOperationName]) {\n tags[KnownContextTagKeys.AiOperationName] = span.attributes[\n KnownContextTagKeys.AiOperationName\n ] as string;\n }\n }\n // TODO: Location IP TBD for non server spans\n\n return tags;\n}\n\nfunction createPropertiesFromSpanAttributes(attributes?: Attributes): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n // We need to not ignore the _MS.ProcessedByMetricExtractors key as it's used to identify standard metrics\n !(\n (key.startsWith(\"_MS.\") && !internalMicrosoftAttributes.includes(key as any)) ||\n key.startsWith(\"microsoft.\") ||\n legacySemanticValues.includes(key) ||\n httpSemanticValues.includes(key as any) ||\n key === (KnownContextTagKeys.AiOperationName as string)\n )\n ) {\n properties[key] = serializeAttribute(attributes[key]);\n }\n }\n }\n return properties;\n}\n\nfunction createPropertiesFromSpan(span: ReadableSpan): [Properties, Measurements] {\n const properties: Properties = createPropertiesFromSpanAttributes(span.attributes);\n const measurements: Measurements = {};\n\n const links: MSLink[] = span.links.map((link: Link) => ({\n operation_Id: link.context.traceId,\n id: link.context.spanId,\n }));\n if (links.length > 0) {\n properties[MS_LINKS] = JSON.stringify(links);\n }\n return [properties, measurements];\n}\n\nfunction createDependencyData(span: ReadableSpan): RemoteDependencyData {\n const remoteDependencyData: RemoteDependencyData = {\n name: span.name, // Default\n id: `${span.spanContext().spanId}`,\n success: span.status?.code !== SpanStatusCode.ERROR,\n resultCode: \"0\",\n type: \"Dependency\",\n duration: msToTimeSpan(hrTimeToMilliseconds(span.duration)),\n version: 2,\n };\n if (span.kind === SpanKind.PRODUCER) {\n remoteDependencyData.type = DependencyTypes.QueueMessage;\n }\n if (span.kind === SpanKind.INTERNAL && span.parentSpanContext) {\n remoteDependencyData.type = DependencyTypes.InProc;\n }\n\n const httpMethod = getHttpMethod(span.attributes);\n const dbSystem = span.attributes[SEMATTRS_DB_SYSTEM];\n const rpcSystem = span.attributes[SEMATTRS_RPC_SYSTEM];\n // HTTP Dependency\n if (httpMethod) {\n const httpUrl = getHttpUrl(span.attributes);\n if (httpUrl) {\n try {\n const dependencyUrl = new URL(String(httpUrl));\n remoteDependencyData.name = `${httpMethod} ${dependencyUrl.pathname}`;\n } catch {\n /* no-op */\n }\n }\n remoteDependencyData.type = DependencyTypes.Http;\n remoteDependencyData.data = getUrl(span.attributes);\n const httpStatusCode = getHttpStatusCode(span.attributes);\n if (httpStatusCode) {\n remoteDependencyData.resultCode = String(httpStatusCode);\n }\n let target = getDependencyTarget(span.attributes);\n if (target) {\n try {\n // Remove default port\n const portRegex = new RegExp(/(https?)(:\\/\\/.*)(:\\d+)(\\S*)/);\n const res = portRegex.exec(target);\n if (res !== null) {\n const protocol = res[1];\n const port = res[3];\n if (\n (protocol === \"https\" && port === \":443\") ||\n (protocol === \"http\" && port === \":80\")\n ) {\n // Drop port\n target = res[1] + res[2] + res[4];\n }\n }\n } catch {\n /* no-op */\n }\n remoteDependencyData.target = `${target}`;\n }\n }\n // DB Dependency\n else if (dbSystem) {\n // TODO: Remove special logic when Azure UX supports OpenTelemetry dbSystem\n if (String(dbSystem) === DBSYSTEMVALUES_MYSQL) {\n remoteDependencyData.type = \"mysql\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_POSTGRESQL) {\n remoteDependencyData.type = \"postgresql\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_MONGODB) {\n remoteDependencyData.type = \"mongodb\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_REDIS) {\n remoteDependencyData.type = \"redis\";\n } else if (isSqlDB(String(dbSystem))) {\n remoteDependencyData.type = \"SQL\";\n } else {\n remoteDependencyData.type = String(dbSystem);\n }\n const dbStatement = span.attributes[SEMATTRS_DB_STATEMENT];\n const dbOperation = span.attributes[SEMATTRS_DB_OPERATION];\n if (dbStatement) {\n remoteDependencyData.data = String(dbStatement);\n } else if (dbOperation) {\n remoteDependencyData.data = String(dbOperation);\n }\n const target = getDependencyTarget(span.attributes);\n const dbName = span.attributes[SEMATTRS_DB_NAME];\n if (target) {\n remoteDependencyData.target = dbName ? `${target}|${dbName}` : `${target}`;\n } else {\n remoteDependencyData.target = dbName ? `${dbName}` : `${dbSystem}`;\n }\n }\n // grpc Dependency\n else if (rpcSystem) {\n if (rpcSystem === DependencyTypes.Wcf) {\n remoteDependencyData.type = DependencyTypes.Wcf;\n } else {\n remoteDependencyData.type = DependencyTypes.Grpc;\n }\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n if (grpcStatusCode) {\n remoteDependencyData.resultCode = String(grpcStatusCode);\n }\n const target = getDependencyTarget(span.attributes);\n if (target) {\n remoteDependencyData.target = `${target}`;\n } else if (rpcSystem) {\n remoteDependencyData.target = String(rpcSystem);\n }\n }\n return remoteDependencyData;\n}\n\nfunction createRequestData(span: ReadableSpan): RequestData {\n const requestData: RequestData = {\n id: `${span.spanContext().spanId}`,\n success:\n span.status.code !== SpanStatusCode.UNSET\n ? span.status.code === SpanStatusCode.OK\n : (Number(getHttpStatusCode(span.attributes)) || 0) < 400,\n responseCode: \"0\",\n duration: msToTimeSpan(hrTimeToMilliseconds(span.duration)),\n version: 2,\n source: undefined,\n };\n const httpMethod = getHttpMethod(span.attributes);\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n if (httpMethod) {\n requestData.url = getUrl(span.attributes);\n const httpStatusCode = getHttpStatusCode(span.attributes);\n if (httpStatusCode) {\n requestData.responseCode = String(httpStatusCode);\n }\n } else if (grpcStatusCode) {\n requestData.responseCode = String(grpcStatusCode);\n }\n return requestData;\n}\n\n/**\n * Span to Azure envelope parsing.\n * @internal\n */\nexport function readableSpanToEnvelope(span: ReadableSpan, ikey: string): Envelope {\n let name: string;\n let baseType: \"RemoteDependencyData\" | \"RequestData\";\n let baseData: RemoteDependencyData | RequestData;\n\n const time = hrTimeToDate(span.startTime);\n const instrumentationKey = ikey;\n const tags = createTagsFromSpan(span);\n const [properties, measurements] = createPropertiesFromSpan(span);\n switch (span.kind) {\n case SpanKind.CLIENT:\n case SpanKind.PRODUCER:\n case SpanKind.INTERNAL:\n name = \"Microsoft.ApplicationInsights.RemoteDependency\";\n baseType = \"RemoteDependencyData\";\n baseData = createDependencyData(span);\n break;\n case SpanKind.SERVER:\n case SpanKind.CONSUMER:\n name = \"Microsoft.ApplicationInsights.Request\";\n baseType = \"RequestData\";\n baseData = createRequestData(span);\n baseData.name = tags[KnownContextTagKeys.AiOperationName];\n break;\n default:\n // never\n diag.error(`Unsupported span kind ${span.kind}`);\n throw new Error(`Unsupported span kind ${span.kind}`);\n }\n\n let sampleRate = 100;\n if (span.attributes[AzureMonitorSampleRate]) {\n sampleRate = Number(span.attributes[AzureMonitorSampleRate]);\n }\n\n // Azure SDK\n if (span.attributes[AzNamespace]) {\n if (span.kind === SpanKind.INTERNAL) {\n baseData.type = `${DependencyTypes.InProc} | ${span.attributes[AzNamespace]}`;\n }\n if (span.attributes[AzNamespace] === MicrosoftEventHub) {\n parseEventHubSpan(span, baseData);\n }\n }\n\n // Truncate properties\n if (baseData.id) {\n baseData.id = baseData.id.substring(0, MaxPropertyLengths.NINE_BIT);\n }\n if (baseData.name) {\n baseData.name = baseData.name.substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.resultCode) {\n baseData.resultCode = String(baseData.resultCode).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.data) {\n baseData.data = String(baseData.data).substring(0, MaxPropertyLengths.THIRTEEN_BIT);\n }\n if (baseData.type) {\n baseData.type = String(baseData.type).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.target) {\n baseData.target = String(baseData.target).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.properties) {\n for (const key of Object.keys(baseData.properties)) {\n baseData.properties[key] = baseData.properties[key].substring(\n 0,\n MaxPropertyLengths.THIRTEEN_BIT,\n );\n }\n }\n\n return {\n name,\n sampleRate,\n time,\n instrumentationKey,\n tags,\n version: 1,\n data: {\n baseType,\n baseData: {\n ...baseData,\n properties,\n measurements,\n },\n },\n };\n}\n\n/**\n * Span Events to Azure envelopes parsing.\n * @internal\n */\nexport function spanEventsToEnvelopes(span: ReadableSpan, ikey: string): Envelope[] {\n const envelopes: Envelope[] = [];\n if (span.events) {\n span.events.forEach((event: TimedEvent) => {\n let baseType: \"ExceptionData\" | \"MessageData\";\n const time = hrTimeToDate(event.time);\n let name = \"\";\n let baseData: TelemetryExceptionData | MessageData;\n const properties = createPropertiesFromSpanAttributes(event.attributes);\n\n const tags: Tags = createTagsFromResource(span.resource);\n tags[KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;\n const spanId = span.spanContext().spanId;\n if (spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = spanId;\n }\n\n // Only generate exception telemetry for incoming requests\n if (event.name === \"exception\") {\n name = \"Microsoft.ApplicationInsights.Exception\";\n baseType = \"ExceptionData\";\n let typeName = \"\";\n let message = \"Exception\";\n let stack = \"\";\n let hasFullStack = false;\n if (event.attributes) {\n typeName = String(event.attributes[SEMATTRS_EXCEPTION_TYPE]);\n stack = String(event.attributes[SEMATTRS_EXCEPTION_STACKTRACE]);\n if (stack) {\n hasFullStack = true;\n }\n const exceptionMsg = event.attributes[SEMATTRS_EXCEPTION_MESSAGE];\n if (exceptionMsg) {\n message = String(exceptionMsg);\n }\n const escaped = event.attributes[SEMATTRS_EXCEPTION_ESCAPED];\n if (escaped !== undefined) {\n properties[SEMATTRS_EXCEPTION_ESCAPED] = String(escaped);\n }\n }\n const exceptionDetails: TelemetryExceptionDetails = {\n typeName: typeName,\n message: message,\n stack: stack,\n hasFullStack: hasFullStack,\n };\n const exceptionData: TelemetryExceptionData = {\n exceptions: [exceptionDetails],\n version: 2,\n properties: properties,\n };\n baseData = exceptionData;\n } else {\n name = \"Microsoft.ApplicationInsights.Message\";\n baseType = \"MessageData\";\n const messageData: MessageData = {\n message: event.name,\n version: 2,\n properties: properties,\n };\n baseData = messageData;\n }\n let sampleRate = 100;\n if (span.attributes[AzureMonitorSampleRate]) {\n sampleRate = Number(span.attributes[AzureMonitorSampleRate]);\n }\n // Truncate properties\n if (baseData.message) {\n baseData.message = String(baseData.message).substring(0, MaxPropertyLengths.FIFTEEN_BIT);\n }\n if (baseData.properties) {\n for (const key of Object.keys(baseData.properties)) {\n baseData.properties[key] = baseData.properties[key].substring(\n 0,\n MaxPropertyLengths.THIRTEEN_BIT,\n );\n }\n }\n const env: Envelope = {\n name: name,\n time: time,\n instrumentationKey: ikey,\n version: 1,\n sampleRate: sampleRate,\n data: {\n baseType: baseType,\n baseData: baseData,\n },\n tags: tags,\n };\n envelopes.push(env);\n });\n }\n return envelopes;\n}\n\nexport function getPeerIp(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_NETWORK_PEER_ADDRESS] || attributes[SEMATTRS_NET_PEER_IP];\n }\n return;\n}\n\nexport function getLocationIp(tags: Tags, attributes: Attributes): void {\n if (attributes) {\n const httpClientIp = getHttpClientIp(attributes);\n const netPeerIp = getPeerIp(attributes);\n if (httpClientIp) {\n tags[KnownContextTagKeys.AiLocationIp] = String(httpClientIp);\n } else if (netPeerIp) {\n tags[KnownContextTagKeys.AiLocationIp] = String(netPeerIp);\n }\n }\n}\n\nexport function getHttpClientIp(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_CLIENT_ADDRESS] || attributes[SEMATTRS_HTTP_CLIENT_IP];\n }\n return;\n}\n\nexport function getUserAgent(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_USER_AGENT_ORIGINAL] || attributes[SEMATTRS_HTTP_USER_AGENT];\n }\n return;\n}\n\nexport function getHttpUrl(attributes: Attributes): AttributeValue | undefined {\n // Stable sem conv only supports populating url from `url.full`\n if (attributes) {\n return attributes[ATTR_URL_FULL] || attributes[SEMATTRS_HTTP_URL];\n }\n return;\n}\n\nexport function getHttpMethod(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_HTTP_REQUEST_METHOD] || attributes[SEMATTRS_HTTP_METHOD];\n }\n return;\n}\n\nexport function getHttpStatusCode(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_HTTP_RESPONSE_STATUS_CODE] || attributes[SEMATTRS_HTTP_STATUS_CODE];\n }\n return;\n}\n\nexport function getHttpScheme(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_URL_SCHEME] || attributes[SEMATTRS_HTTP_SCHEME];\n }\n return;\n}\n\nexport function getHttpTarget(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n if (attributes[ATTR_URL_PATH]) {\n return attributes[ATTR_URL_PATH];\n }\n if (attributes[ATTR_URL_QUERY]) {\n return attributes[ATTR_URL_QUERY];\n }\n return attributes[SEMATTRS_HTTP_TARGET];\n }\n return;\n}\n\nexport function getHttpHost(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_SERVER_ADDRESS] || attributes[SEMATTRS_HTTP_HOST];\n }\n return;\n}\n\nexport function getNetPeerName(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_CLIENT_ADDRESS] || attributes[SEMATTRS_NET_PEER_NAME];\n }\n return;\n}\n\nexport function getNetPeerPort(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return (\n attributes[ATTR_CLIENT_PORT] ||\n attributes[ATTR_SERVER_PORT] ||\n attributes[SEMATTRS_NET_PEER_PORT]\n );\n }\n return;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"spanUtils.js","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ReadableSpan, TimedEvent } from \"@opentelemetry/sdk-trace-base\";\nimport { hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport type { Link, Attributes, AttributeValue } from \"@opentelemetry/api\";\nimport { diag, SpanKind, SpanStatusCode } from \"@opentelemetry/api\";\nimport {\n DBSYSTEMVALUES_MONGODB,\n DBSYSTEMVALUES_MYSQL,\n DBSYSTEMVALUES_POSTGRESQL,\n DBSYSTEMVALUES_REDIS,\n SEMATTRS_DB_NAME,\n SEMATTRS_DB_OPERATION,\n SEMATTRS_DB_STATEMENT,\n SEMATTRS_DB_SYSTEM,\n SEMATTRS_EXCEPTION_ESCAPED,\n SEMATTRS_EXCEPTION_MESSAGE,\n SEMATTRS_EXCEPTION_STACKTRACE,\n SEMATTRS_EXCEPTION_TYPE,\n SEMATTRS_HTTP_CLIENT_IP,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_HTTP_URL,\n SEMATTRS_HTTP_USER_AGENT,\n SEMATTRS_NET_PEER_IP,\n SEMATTRS_RPC_GRPC_STATUS_CODE,\n SEMATTRS_RPC_SYSTEM,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_CLIENT_ADDRESS,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_USER_AGENT_ORIGINAL,\n ATTR_HTTP_ROUTE,\n ATTR_URL_FULL,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n SEMATTRS_HTTP_SCHEME,\n ATTR_URL_SCHEME,\n SEMATTRS_HTTP_TARGET,\n ATTR_URL_PATH,\n ATTR_URL_QUERY,\n ATTR_SERVER_ADDRESS,\n SEMATTRS_HTTP_HOST,\n SEMATTRS_NET_PEER_NAME,\n ATTR_CLIENT_PORT,\n ATTR_SERVER_PORT,\n SEMATTRS_NET_PEER_PORT,\n} from \"@opentelemetry/semantic-conventions\";\n\nimport {\n createTagsFromResource,\n getDependencyTarget,\n getUrl,\n hrTimeToDate,\n isSqlDB,\n isSyntheticSource,\n serializeAttribute,\n} from \"./common.js\";\nimport type { Tags, Properties, MSLink, Measurements } from \"../types.js\";\nimport {\n httpSemanticValues,\n internalMicrosoftAttributes,\n legacySemanticValues,\n MaxPropertyLengths,\n experimentalOpenTelemetryValues,\n} from \"../types.js\";\nimport { parseEventHubSpan } from \"./eventhub.js\";\nimport {\n AzureMonitorSampleRate,\n DependencyTypes,\n MicrosoftClientIp,\n MS_LINKS,\n} from \"./constants/applicationinsights.js\";\nimport { AzNamespace, MicrosoftEventHub } from \"./constants/span/azAttributes.js\";\nimport type {\n TelemetryExceptionData,\n MessageData,\n RemoteDependencyData,\n RequestData,\n TelemetryItem as Envelope,\n TelemetryExceptionDetails,\n} from \"../generated/index.js\";\nimport { KnownContextTagKeys } from \"../generated/index.js\";\nimport { msToTimeSpan } from \"./breezeUtils.js\";\n\nfunction createTagsFromSpan(span: ReadableSpan): Tags {\n const tags: Tags = createTagsFromResource(span.resource);\n tags[KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;\n if (span.parentSpanContext?.spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = span.parentSpanContext.spanId;\n }\n\n // Map OpenTelemetry enduser attributes to Application Insights user attributes\n const endUserId = span.attributes[experimentalOpenTelemetryValues.ATTR_ENDUSER_ID];\n if (endUserId) {\n tags[KnownContextTagKeys.AiUserAuthUserId] = String(endUserId);\n }\n\n const endUserPseudoId = span.attributes[experimentalOpenTelemetryValues.ATTR_ENDUSER_PSEUDO_ID];\n if (endUserPseudoId) {\n tags[KnownContextTagKeys.AiUserId] = String(endUserPseudoId);\n }\n\n const httpUserAgent = getUserAgent(span.attributes);\n if (httpUserAgent) {\n // TODO: Not exposed in Swagger, need to update def\n tags[\"ai.user.userAgent\"] = String(httpUserAgent);\n }\n if (isSyntheticSource(span.attributes)) {\n tags[KnownContextTagKeys.AiOperationSyntheticSource] = \"True\";\n }\n\n // Check for microsoft.client.ip first - this takes precedence over all other IP logic\n const microsoftClientIp = span.attributes[MicrosoftClientIp];\n if (microsoftClientIp) {\n tags[KnownContextTagKeys.AiLocationIp] = String(microsoftClientIp);\n }\n\n if (span.kind === SpanKind.SERVER) {\n const httpMethod = getHttpMethod(span.attributes);\n // Only use the fallback IP logic for server spans if microsoft.client.ip is not set\n if (!microsoftClientIp) {\n getLocationIp(tags, span.attributes);\n }\n if (httpMethod) {\n const httpRoute = span.attributes[ATTR_HTTP_ROUTE];\n const httpUrl = getHttpUrl(span.attributes);\n tags[KnownContextTagKeys.AiOperationName] = span.name; // Default\n if (httpRoute) {\n // AiOperationName max length is 1024\n // https://github.com/MohanGsk/ApplicationInsights-Home/blob/master/EndpointSpecs/Schemas/Bond/ContextTagKeys.bond\n tags[KnownContextTagKeys.AiOperationName] = String(\n `${httpMethod as string} ${httpRoute as string}`,\n ).substring(0, MaxPropertyLengths.TEN_BIT);\n } else if (httpUrl) {\n try {\n const url = new URL(String(httpUrl));\n tags[KnownContextTagKeys.AiOperationName] = String(\n `${httpMethod} ${url.pathname}`,\n ).substring(0, MaxPropertyLengths.TEN_BIT);\n } catch {\n /* no-op */\n }\n }\n } else {\n tags[KnownContextTagKeys.AiOperationName] = span.name;\n }\n } else {\n if (span.attributes[KnownContextTagKeys.AiOperationName]) {\n tags[KnownContextTagKeys.AiOperationName] = span.attributes[\n KnownContextTagKeys.AiOperationName\n ] as string;\n }\n }\n // TODO: Location IP TBD for non server spans\n\n return tags;\n}\n\nfunction createPropertiesFromSpanAttributes(attributes?: Attributes): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n // We need to not ignore the _MS.ProcessedByMetricExtractors key as it's used to identify standard metrics\n !(\n (key.startsWith(\"_MS.\") && !internalMicrosoftAttributes.includes(key as any)) ||\n key.startsWith(\"microsoft.\") ||\n legacySemanticValues.includes(key) ||\n httpSemanticValues.includes(key as any) ||\n key === (KnownContextTagKeys.AiOperationName as string)\n )\n ) {\n properties[key] = serializeAttribute(attributes[key]);\n }\n }\n }\n return properties;\n}\n\nfunction createPropertiesFromSpan(span: ReadableSpan): [Properties, Measurements] {\n const properties: Properties = createPropertiesFromSpanAttributes(span.attributes);\n const measurements: Measurements = {};\n\n const links: MSLink[] = span.links.map((link: Link) => ({\n operation_Id: link.context.traceId,\n id: link.context.spanId,\n }));\n if (links.length > 0) {\n properties[MS_LINKS] = JSON.stringify(links);\n }\n return [properties, measurements];\n}\n\nfunction createDependencyData(span: ReadableSpan): RemoteDependencyData {\n const remoteDependencyData: RemoteDependencyData = {\n name: span.name, // Default\n id: `${span.spanContext().spanId}`,\n success: span.status?.code !== SpanStatusCode.ERROR,\n resultCode: \"0\",\n type: \"Dependency\",\n duration: msToTimeSpan(hrTimeToMilliseconds(span.duration)),\n version: 2,\n };\n if (span.kind === SpanKind.PRODUCER) {\n remoteDependencyData.type = DependencyTypes.QueueMessage;\n }\n if (span.kind === SpanKind.INTERNAL && span.parentSpanContext) {\n remoteDependencyData.type = DependencyTypes.InProc;\n }\n\n const httpMethod = getHttpMethod(span.attributes);\n const dbSystem = span.attributes[SEMATTRS_DB_SYSTEM];\n const rpcSystem = span.attributes[SEMATTRS_RPC_SYSTEM];\n // HTTP Dependency\n if (httpMethod) {\n const httpUrl = getHttpUrl(span.attributes);\n if (httpUrl) {\n try {\n const dependencyUrl = new URL(String(httpUrl));\n remoteDependencyData.name = `${httpMethod} ${dependencyUrl.pathname}`;\n } catch {\n /* no-op */\n }\n }\n remoteDependencyData.type = DependencyTypes.Http;\n remoteDependencyData.data = getUrl(span.attributes);\n const httpStatusCode = getHttpStatusCode(span.attributes);\n if (httpStatusCode) {\n remoteDependencyData.resultCode = String(httpStatusCode);\n }\n let target = getDependencyTarget(span.attributes);\n if (target) {\n try {\n // Remove default port\n const portRegex = new RegExp(/(https?)(:\\/\\/.*)(:\\d+)(\\S*)/);\n const res = portRegex.exec(target);\n if (res !== null) {\n const protocol = res[1];\n const port = res[3];\n if (\n (protocol === \"https\" && port === \":443\") ||\n (protocol === \"http\" && port === \":80\")\n ) {\n // Drop port\n target = res[1] + res[2] + res[4];\n }\n }\n } catch {\n /* no-op */\n }\n remoteDependencyData.target = `${target}`;\n }\n }\n // DB Dependency\n else if (dbSystem) {\n // TODO: Remove special logic when Azure UX supports OpenTelemetry dbSystem\n if (String(dbSystem) === DBSYSTEMVALUES_MYSQL) {\n remoteDependencyData.type = \"mysql\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_POSTGRESQL) {\n remoteDependencyData.type = \"postgresql\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_MONGODB) {\n remoteDependencyData.type = \"mongodb\";\n } else if (String(dbSystem) === DBSYSTEMVALUES_REDIS) {\n remoteDependencyData.type = \"redis\";\n } else if (isSqlDB(String(dbSystem))) {\n remoteDependencyData.type = \"SQL\";\n } else {\n remoteDependencyData.type = String(dbSystem);\n }\n const dbStatement = span.attributes[SEMATTRS_DB_STATEMENT];\n const dbOperation = span.attributes[SEMATTRS_DB_OPERATION];\n if (dbStatement) {\n remoteDependencyData.data = String(dbStatement);\n } else if (dbOperation) {\n remoteDependencyData.data = String(dbOperation);\n }\n const target = getDependencyTarget(span.attributes);\n const dbName = span.attributes[SEMATTRS_DB_NAME];\n if (target) {\n remoteDependencyData.target = dbName ? `${target}|${dbName}` : `${target}`;\n } else {\n remoteDependencyData.target = dbName ? `${dbName}` : `${dbSystem}`;\n }\n }\n // grpc Dependency\n else if (rpcSystem) {\n if (rpcSystem === DependencyTypes.Wcf) {\n remoteDependencyData.type = DependencyTypes.Wcf;\n } else {\n remoteDependencyData.type = DependencyTypes.Grpc;\n }\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n if (grpcStatusCode) {\n remoteDependencyData.resultCode = String(grpcStatusCode);\n }\n const target = getDependencyTarget(span.attributes);\n if (target) {\n remoteDependencyData.target = `${target}`;\n } else if (rpcSystem) {\n remoteDependencyData.target = String(rpcSystem);\n }\n }\n return remoteDependencyData;\n}\n\nfunction createRequestData(span: ReadableSpan): RequestData {\n const requestData: RequestData = {\n id: `${span.spanContext().spanId}`,\n success:\n span.status.code !== SpanStatusCode.UNSET\n ? span.status.code === SpanStatusCode.OK\n : (Number(getHttpStatusCode(span.attributes)) || 0) < 400,\n responseCode: \"0\",\n duration: msToTimeSpan(hrTimeToMilliseconds(span.duration)),\n version: 2,\n source: undefined,\n };\n const httpMethod = getHttpMethod(span.attributes);\n const grpcStatusCode = span.attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n if (httpMethod) {\n requestData.url = getUrl(span.attributes);\n const httpStatusCode = getHttpStatusCode(span.attributes);\n if (httpStatusCode) {\n requestData.responseCode = String(httpStatusCode);\n }\n } else if (grpcStatusCode) {\n requestData.responseCode = String(grpcStatusCode);\n }\n return requestData;\n}\n\n/**\n * Span to Azure envelope parsing.\n * @internal\n */\nexport function readableSpanToEnvelope(span: ReadableSpan, ikey: string): Envelope {\n let name: string;\n let baseType: \"RemoteDependencyData\" | \"RequestData\";\n let baseData: RemoteDependencyData | RequestData;\n\n const time = hrTimeToDate(span.startTime);\n const instrumentationKey = ikey;\n const tags = createTagsFromSpan(span);\n const [properties, measurements] = createPropertiesFromSpan(span);\n switch (span.kind) {\n case SpanKind.CLIENT:\n case SpanKind.PRODUCER:\n case SpanKind.INTERNAL:\n name = \"Microsoft.ApplicationInsights.RemoteDependency\";\n baseType = \"RemoteDependencyData\";\n baseData = createDependencyData(span);\n break;\n case SpanKind.SERVER:\n case SpanKind.CONSUMER:\n name = \"Microsoft.ApplicationInsights.Request\";\n baseType = \"RequestData\";\n baseData = createRequestData(span);\n baseData.name = tags[KnownContextTagKeys.AiOperationName];\n break;\n default:\n // never\n diag.error(`Unsupported span kind ${span.kind}`);\n throw new Error(`Unsupported span kind ${span.kind}`);\n }\n\n let sampleRate = 100;\n if (span.attributes[AzureMonitorSampleRate]) {\n sampleRate = Number(span.attributes[AzureMonitorSampleRate]);\n }\n\n // Azure SDK\n if (span.attributes[AzNamespace]) {\n if (span.kind === SpanKind.INTERNAL) {\n baseData.type = `${DependencyTypes.InProc} | ${span.attributes[AzNamespace]}`;\n }\n if (span.attributes[AzNamespace] === MicrosoftEventHub) {\n parseEventHubSpan(span, baseData);\n }\n }\n\n // Truncate properties\n if (baseData.id) {\n baseData.id = baseData.id.substring(0, MaxPropertyLengths.NINE_BIT);\n }\n if (baseData.name) {\n baseData.name = baseData.name.substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.resultCode) {\n baseData.resultCode = String(baseData.resultCode).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.data) {\n baseData.data = String(baseData.data).substring(0, MaxPropertyLengths.THIRTEEN_BIT);\n }\n if (baseData.type) {\n baseData.type = String(baseData.type).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.target) {\n baseData.target = String(baseData.target).substring(0, MaxPropertyLengths.TEN_BIT);\n }\n if (baseData.properties) {\n for (const key of Object.keys(baseData.properties)) {\n baseData.properties[key] = baseData.properties[key].substring(\n 0,\n MaxPropertyLengths.THIRTEEN_BIT,\n );\n }\n }\n\n return {\n name,\n sampleRate,\n time,\n instrumentationKey,\n tags,\n version: 1,\n data: {\n baseType,\n baseData: {\n ...baseData,\n properties,\n measurements,\n },\n },\n };\n}\n\n/**\n * Span Events to Azure envelopes parsing.\n * @internal\n */\nexport function spanEventsToEnvelopes(span: ReadableSpan, ikey: string): Envelope[] {\n const envelopes: Envelope[] = [];\n if (span.events) {\n span.events.forEach((event: TimedEvent) => {\n let baseType: \"ExceptionData\" | \"MessageData\";\n const time = hrTimeToDate(event.time);\n let name = \"\";\n let baseData: TelemetryExceptionData | MessageData;\n const properties = createPropertiesFromSpanAttributes(event.attributes);\n\n const tags: Tags = createTagsFromResource(span.resource);\n tags[KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;\n const spanId = span.spanContext().spanId;\n if (spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = spanId;\n }\n\n // Only generate exception telemetry for incoming requests\n if (event.name === \"exception\") {\n name = \"Microsoft.ApplicationInsights.Exception\";\n baseType = \"ExceptionData\";\n let typeName = \"\";\n let message = \"Exception\";\n let stack = \"\";\n let hasFullStack = false;\n if (event.attributes) {\n typeName = String(event.attributes[SEMATTRS_EXCEPTION_TYPE]);\n stack = String(event.attributes[SEMATTRS_EXCEPTION_STACKTRACE]);\n if (stack) {\n hasFullStack = true;\n }\n const exceptionMsg = event.attributes[SEMATTRS_EXCEPTION_MESSAGE];\n if (exceptionMsg) {\n message = String(exceptionMsg);\n }\n const escaped = event.attributes[SEMATTRS_EXCEPTION_ESCAPED];\n if (escaped !== undefined) {\n properties[SEMATTRS_EXCEPTION_ESCAPED] = String(escaped);\n }\n }\n const exceptionDetails: TelemetryExceptionDetails = {\n typeName: typeName,\n message: message,\n stack: stack,\n hasFullStack: hasFullStack,\n };\n const exceptionData: TelemetryExceptionData = {\n exceptions: [exceptionDetails],\n version: 2,\n properties: properties,\n };\n baseData = exceptionData;\n } else {\n name = \"Microsoft.ApplicationInsights.Message\";\n baseType = \"MessageData\";\n const messageData: MessageData = {\n message: event.name,\n version: 2,\n properties: properties,\n };\n baseData = messageData;\n }\n let sampleRate = 100;\n if (span.attributes[AzureMonitorSampleRate]) {\n sampleRate = Number(span.attributes[AzureMonitorSampleRate]);\n }\n // Truncate properties\n if (baseData.message) {\n baseData.message = String(baseData.message).substring(0, MaxPropertyLengths.FIFTEEN_BIT);\n }\n if (baseData.properties) {\n for (const key of Object.keys(baseData.properties)) {\n baseData.properties[key] = baseData.properties[key].substring(\n 0,\n MaxPropertyLengths.THIRTEEN_BIT,\n );\n }\n }\n const env: Envelope = {\n name: name,\n time: time,\n instrumentationKey: ikey,\n version: 1,\n sampleRate: sampleRate,\n data: {\n baseType: baseType,\n baseData: baseData,\n },\n tags: tags,\n };\n envelopes.push(env);\n });\n }\n return envelopes;\n}\n\nexport function getPeerIp(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_NETWORK_PEER_ADDRESS] || attributes[SEMATTRS_NET_PEER_IP];\n }\n return;\n}\n\nexport function getLocationIp(tags: Tags, attributes: Attributes): void {\n if (attributes) {\n const httpClientIp = getHttpClientIp(attributes);\n const netPeerIp = getPeerIp(attributes);\n if (httpClientIp) {\n tags[KnownContextTagKeys.AiLocationIp] = String(httpClientIp);\n } else if (netPeerIp) {\n tags[KnownContextTagKeys.AiLocationIp] = String(netPeerIp);\n }\n }\n}\n\nexport function getHttpClientIp(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_CLIENT_ADDRESS] || attributes[SEMATTRS_HTTP_CLIENT_IP];\n }\n return;\n}\n\nexport function getUserAgent(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_USER_AGENT_ORIGINAL] || attributes[SEMATTRS_HTTP_USER_AGENT];\n }\n return;\n}\n\nexport function getHttpUrl(attributes: Attributes): AttributeValue | undefined {\n // Stable sem conv only supports populating url from `url.full`\n if (attributes) {\n return attributes[ATTR_URL_FULL] || attributes[SEMATTRS_HTTP_URL];\n }\n return;\n}\n\nexport function getHttpMethod(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_HTTP_REQUEST_METHOD] || attributes[SEMATTRS_HTTP_METHOD];\n }\n return;\n}\n\nexport function getHttpStatusCode(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_HTTP_RESPONSE_STATUS_CODE] || attributes[SEMATTRS_HTTP_STATUS_CODE];\n }\n return;\n}\n\nexport function getHttpScheme(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_URL_SCHEME] || attributes[SEMATTRS_HTTP_SCHEME];\n }\n return;\n}\n\nexport function getHttpTarget(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n if (attributes[ATTR_URL_PATH]) {\n return attributes[ATTR_URL_PATH];\n }\n if (attributes[ATTR_URL_QUERY]) {\n return attributes[ATTR_URL_QUERY];\n }\n return attributes[SEMATTRS_HTTP_TARGET];\n }\n return;\n}\n\nexport function getHttpHost(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_SERVER_ADDRESS] || attributes[SEMATTRS_HTTP_HOST];\n }\n return;\n}\n\nexport function getNetPeerName(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return attributes[ATTR_CLIENT_ADDRESS] || attributes[SEMATTRS_NET_PEER_NAME];\n }\n return;\n}\n\nexport function getNetPeerPort(attributes: Attributes): AttributeValue | undefined {\n if (attributes) {\n return (\n attributes[ATTR_CLIENT_PORT] ||\n attributes[ATTR_SERVER_PORT] ||\n attributes[SEMATTRS_NET_PEER_PORT]\n );\n }\n return;\n}\n"]}
|
|
@@ -100,10 +100,15 @@ export declare const ENV_AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
|
|
|
100
100
|
*/
|
|
101
101
|
export declare const ENV_AZURE_MONITOR_DISTRO_VERSION = "AZURE_MONITOR_DISTRO_VERSION";
|
|
102
102
|
/**
|
|
103
|
-
* Enables the preview version of customer-facing
|
|
103
|
+
* Enables the preview version of customer-facing SDK Stats.
|
|
104
104
|
* @internal
|
|
105
105
|
*/
|
|
106
|
-
export declare const
|
|
106
|
+
export declare const ENV_APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW = "APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW";
|
|
107
|
+
/**
|
|
108
|
+
* Sets the export interval for customer-facing SDK Stats in seconds.
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
export declare const ENV_APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL = "APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL";
|
|
107
112
|
/**
|
|
108
113
|
* QuickPulse metric counter names.
|
|
109
114
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,EAAE,uBAAuB;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AACvE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AACxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,2CAA2C,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,+DACO,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AACzE;;;GAGG;AACH,eAAO,MAAM,uDAAuD,wDACb,CAAC;AAExD;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,kBAAkB,cAAc;CACjC;AACD;;;GAGG;AACH,eAAO,MAAM,oCAAoC,sCAAsC,CAAC;AACxF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,EAAE,uBAAuB;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yCAAyC,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AACvE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AACxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,2CAA2C,CAAC;AAC9E;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,+DACO,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AACjE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AACzE;;;GAGG;AACH,eAAO,MAAM,uDAAuD,wDACb,CAAC;AAExD;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,kBAAkB,uBAAuB;IACzC,kBAAkB,cAAc;CACjC;AACD;;;GAGG;AACH,eAAO,MAAM,oCAAoC,sCAAsC,CAAC;AACxF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,gDAAgD,iDACb,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,gDAAgD,iDACb,CAAC;AAEjD;;;GAGG;AACH,oBAAY,iBAAiB;IAE3B,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IAGxD,YAAY,wCAAwC;IACpD,oBAAoB,+CAA+C;IACnE,gBAAgB,4CAA4C;IAG5D,eAAe,gDAAgD;IAC/D,uBAAuB,uDAAuD;IAC9E,mBAAmB,oDAAoD;IAGvE,cAAc,0CAA0C;CACzD;AAED;;;GAGG;AACH,oBAAY,kBAAkB;IAE5B,aAAa,iDAAiD;IAC9D,eAAe,8BAA8B;IAG7C,cAAc,0CAA0C;IACxD,qBAAqB,oDAAoD;IACzE,uBAAuB,+DAA+D;IAGtF,YAAY,6DAA6D;IACzE,gBAAgB,uEAAuE;IAGvF,cAAc,sEAAsE;IAEpF,OAAO,qDAAqD;CAC7D;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAY9E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,cAAc,CAAC;AACnB;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,wBAAwB,GACxB,4BAA4B,GAC5B,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,6BAA6B,GAC7B,+BAA+B,CAAC"}
|
|
@@ -104,10 +104,15 @@ export const ENV_AZURE_MONITOR_PREFIX = "AZURE_MONITOR_PREFIX";
|
|
|
104
104
|
*/
|
|
105
105
|
export const ENV_AZURE_MONITOR_DISTRO_VERSION = "AZURE_MONITOR_DISTRO_VERSION";
|
|
106
106
|
/**
|
|
107
|
-
* Enables the preview version of customer-facing
|
|
107
|
+
* Enables the preview version of customer-facing SDK Stats.
|
|
108
108
|
* @internal
|
|
109
109
|
*/
|
|
110
|
-
export const
|
|
110
|
+
export const ENV_APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW = "APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW";
|
|
111
|
+
/**
|
|
112
|
+
* Sets the export interval for customer-facing SDK Stats in seconds.
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
export const ENV_APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL = "APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL";
|
|
111
116
|
/**
|
|
112
117
|
* QuickPulse metric counter names.
|
|
113
118
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B;;OAEG;IACH,8CAAyB,CAAA;AAC3B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AAC9E;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,EAAE,CAAC;AAC/D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,sCAAsC,CAAC;AACnF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AACvE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uCAAuC,CAAC;AAC7E;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AACxE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,wCAAwC,CAAC;AAC9E;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAChF;;;GAGG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,4DAA4D,CAAC;AAC/D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAC/E;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AACjE;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AACzE;;;GAGG;AACH,MAAM,CAAC,MAAM,uDAAuD,GAClE,qDAAqD,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,oEAAyC,CAAA;IACzC,2DAAgC,CAAA;AAClC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AACD;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,mCAAmC,CAAC;AACxF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC/D;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,8BAA8B,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/Declarations/Constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Azure service API version.\n */\nexport enum ServiceApiVersion {\n /**\n * V2 Version\n */\n V2 = \"2020-09-15_Preview\",\n}\n\n/**\n * Operation Name attribute name.\n */\nexport const AI_OPERATION_NAME = \"ai.operation.name\";\n\n/**\n * Default Breeze endpoint.\n * @internal\n */\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\n/**\n * Default Breeze API version.\n * @internal\n */\nexport const DEFAULT_BREEZE_API_VERSION = ServiceApiVersion.V2;\n/**\n * Default Live Metrics endpoint.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_ENDPOINT = \"https://rt.services.visualstudio.com\";\n/**\n * Default Live Metrics host.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_HOST = \"rt.services.visualstudio.com\";\n/**\n * Connection string environment variable name.\n * @internal\n */\nexport const ENV_CONNECTION_STRING = \"APPLICATIONINSIGHTS_CONNECTION_STRING\";\n/**\n * Instrumentation key environment variable name.\n * @internal\n */\nexport const ENV_INSTRUMENTATION_KEY = \"APPINSIGHTS_INSTRUMENTATIONKEY\";\n/**\n * Disable Statsbeat environment variable name.\n * @internal\n */\nexport const ENV_DISABLE_STATSBEAT = \"APPLICATIONINSIGHTS_STATSBEAT_DISABLED\";\n/**\n * Legacy disable Statsbeat environment variable name.\n * @internal\n */\nexport const LEGACY_ENV_DISABLE_STATSBEAT = \"APPLICATION_INSIGHTS_NO_STATSBEAT\";\n/**\n * Disable OpenTelemetry Resource Metric.\n * @internal\n */\nexport const ENV_OPENTELEMETRY_RESOURCE_METRIC_DISABLED =\n \"APPLICATIONINSIGHTS_OPENTELEMETRY_RESOURCE_METRIC_DISABLED\";\n/**\n * OTLP Metrics Endpoint.\n * @internal\n */\nexport const ENV_OTLP_METRICS_ENDPOINT = \"OTEL_EXPORTER_OTLP_METRICS_ENDPOINT\";\n/**\n * OTel Metrics Exporter.\n * @internal\n */\nexport const ENV_OTEL_METRICS_EXPORTER = \"OTEL_METRICS_EXPORTER\";\n/**\n * Determine if exporter was initialized in an auto-attach scenario.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_AUTO_ATTACH = \"AZURE_MONITOR_AUTO_ATTACH\";\n/**\n * Determines if custom metrics should be sent to Breeze.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED =\n \"APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED\";\n\n/**\n * REST error types for failed requests that can be retried.\n * @internal\n */\nexport enum RetriableRestErrorTypes {\n REQUEST_SEND_ERROR = \"REQUEST_SEND_ERROR\",\n DNS_LOOKUP_TIMEOUT = \"EAI_AGAIN\",\n}\n/**\n * Application Insights shim version.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_SHIM_VERSION = \"APPLICATION_INSIGHTS_SHIM_VERSION\";\n/**\n * Azure Monitor version prefix.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_PREFIX = \"AZURE_MONITOR_PREFIX\";\n/**\n * Azure Monitor Distro version.\n * @internal\n */\nexport const ENV_AZURE_MONITOR_DISTRO_VERSION = \"AZURE_MONITOR_DISTRO_VERSION\";\n\n/**\n * Enables the preview version of customer-facing SDK Stats.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW =\n \"APPLICATIONINSIGHTS_SDKSTATS_ENABLED_PREVIEW\";\n\n/**\n * Sets the export interval for customer-facing SDK Stats in seconds.\n * @internal\n */\nexport const ENV_APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL =\n \"APPLICATIONINSIGHTS_SDKSTATS_EXPORT_INTERVAL\";\n\n/**\n * QuickPulse metric counter names.\n * @internal\n */\nexport enum QuickPulseCounter {\n // Memory\n COMMITTED_BYTES = \"\\\\Memory\\\\Committed Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n\n // Request\n REQUEST_RATE = \"\\\\ApplicationInsights\\\\Requests/Sec\",\n REQUEST_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Requests Failed/Sec\",\n REQUEST_DURATION = \"\\\\ApplicationInsights\\\\Request Duration\",\n\n // Dependency\n DEPENDENCY_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls/Sec\",\n DEPENDENCY_FAILURE_RATE = \"\\\\ApplicationInsights\\\\Dependency Calls Failed/Sec\",\n DEPENDENCY_DURATION = \"\\\\ApplicationInsights\\\\Dependency Call Duration\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\ApplicationInsights\\\\Exceptions/Sec\",\n}\n\n/**\n * Performance metric counter names.\n * @internal\n */\nexport enum PerformanceCounter {\n // Memory\n PRIVATE_BYTES = \"\\\\Process(??APP_WIN32_PROC??)\\\\Private Bytes\",\n AVAILABLE_BYTES = \"\\\\Memory\\\\Available Bytes\",\n\n // CPU\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n PROCESS_TIME_STANDARD = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time\",\n PROCESS_TIME_NORMALIZED = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time Normalized\",\n\n // Requests\n REQUEST_RATE = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Requests/Sec\",\n REQUEST_DURATION = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Request Execution Time\",\n\n // Exception\n EXCEPTION_RATE = \"\\\\.NET CLR Exceptions(??APP_CLR_PROC??)\\\\# of Exceps Thrown / sec\",\n // I/O\n IO_RATE = \"\\\\Process(??APP_WIN32_PROC??)\\\\IO Data Bytes/sec\",\n}\n\n/**\n * Map a PerformanceCounter/QuickPulseCounter to a QuickPulseCounter. If no mapping exists, mapping is *undefined*\n * @internal\n */\nexport const PerformanceToQuickPulseCounter: { [key: string]: QuickPulseCounter } = {\n [PerformanceCounter.PROCESSOR_TIME]: QuickPulseCounter.PROCESSOR_TIME,\n [PerformanceCounter.REQUEST_RATE]: QuickPulseCounter.REQUEST_RATE,\n [PerformanceCounter.REQUEST_DURATION]: QuickPulseCounter.REQUEST_DURATION,\n\n // Remap quick pulse only counters\n [QuickPulseCounter.COMMITTED_BYTES]: QuickPulseCounter.COMMITTED_BYTES,\n [QuickPulseCounter.REQUEST_FAILURE_RATE]: QuickPulseCounter.REQUEST_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_RATE]: QuickPulseCounter.DEPENDENCY_RATE,\n [QuickPulseCounter.DEPENDENCY_FAILURE_RATE]: QuickPulseCounter.DEPENDENCY_FAILURE_RATE,\n [QuickPulseCounter.DEPENDENCY_DURATION]: QuickPulseCounter.DEPENDENCY_DURATION,\n [QuickPulseCounter.EXCEPTION_RATE]: QuickPulseCounter.EXCEPTION_RATE,\n};\n\n/**\n * QuickPulse document types.\n * @internal\n */\nexport type QuickPulseDocumentType =\n | \"Event\"\n | \"Exception\"\n | \"Trace\"\n | \"Metric\"\n | \"Request\"\n | \"RemoteDependency\"\n | \"Availability\";\n/**\n * QuickPulse telemetry types.\n * @internal\n */\nexport type QuickPulseType =\n | \"EventTelemetryDocument\"\n | \"ExceptionTelemetryDocument\"\n | \"TraceTelemetryDocument\"\n | \"MetricTelemetryDocument\"\n | \"RequestTelemetryDocument\"\n | \"DependencyTelemetryDocument\"\n | \"AvailabilityTelemetryDocument\";\n"]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { StatsbeatMetrics } from "./statsbeatMetrics.js";
|
|
2
2
|
import type { StatsbeatOptions } from "./types.js";
|
|
3
|
-
import { DropCode, RetryCode } from "./types.js";
|
|
3
|
+
import { DropCode, RetryCode, ExceptionType } from "./types.js";
|
|
4
4
|
import { TelemetryType } from "./types.js";
|
|
5
5
|
import type { TelemetryItem as Envelope } from "../../generated/index.js";
|
|
6
6
|
/**
|
|
7
|
-
* Class that handles customer-facing
|
|
7
|
+
* Class that handles customer-facing SDK Stats metrics
|
|
8
8
|
* These metrics are sent to the customer's breeze endpoint
|
|
9
9
|
*
|
|
10
|
-
* Implements a singleton pattern to ensure only one set of customer
|
|
10
|
+
* Implements a singleton pattern to ensure only one set of customer SDK Stats metrics
|
|
11
11
|
* is exported every 15 minutes, regardless of the number of exporters or senders.
|
|
12
12
|
*/
|
|
13
|
-
export declare class
|
|
13
|
+
export declare class CustomerSDKStatsMetrics extends StatsbeatMetrics {
|
|
14
14
|
private static _instance;
|
|
15
15
|
private statsCollectionInterval;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
private
|
|
16
|
+
private customerSDKStatsMeter;
|
|
17
|
+
private customerSDKStatsMeterProvider;
|
|
18
|
+
private customerSDKStatsExporter;
|
|
19
|
+
private customerSDKStatsCounter;
|
|
20
|
+
private customerSDKStatsMetricReader;
|
|
21
21
|
private isInitialized;
|
|
22
22
|
private language;
|
|
23
23
|
private version;
|
|
@@ -28,23 +28,23 @@ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
|
|
|
28
28
|
private customerProperties;
|
|
29
29
|
private constructor();
|
|
30
30
|
/**
|
|
31
|
-
* Get singleton instance of
|
|
32
|
-
* @param options - Configuration options for customer
|
|
31
|
+
* Get singleton instance of CustomerSDKStatsMetrics
|
|
32
|
+
* @param options - Configuration options for customer SDK Stats metrics
|
|
33
33
|
* @returns The singleton instance
|
|
34
34
|
*/
|
|
35
|
-
static getInstance(options: StatsbeatOptions):
|
|
35
|
+
static getInstance(options: StatsbeatOptions): CustomerSDKStatsMetrics;
|
|
36
36
|
/**
|
|
37
37
|
* Shutdown the singleton instance
|
|
38
38
|
* Used for cleanup and complete shutdown
|
|
39
39
|
*/
|
|
40
40
|
static shutdown(): Promise<void> | undefined;
|
|
41
41
|
/**
|
|
42
|
-
* Shuts down the customer
|
|
42
|
+
* Shuts down the customer SDK Stats metrics provider
|
|
43
43
|
* @returns Promise<void>
|
|
44
44
|
*/
|
|
45
45
|
shutdown(): Promise<void>;
|
|
46
46
|
/**
|
|
47
|
-
* Initializes the customer
|
|
47
|
+
* Initializes the customer SDK Stats metrics
|
|
48
48
|
* Sets up the resource provider and adds observable callbacks for each metric
|
|
49
49
|
* @returns Promise<void>
|
|
50
50
|
*/
|
|
@@ -60,23 +60,24 @@ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
|
|
|
60
60
|
countSuccessfulItems(envelopes: Envelope[]): void;
|
|
61
61
|
/**
|
|
62
62
|
* Tracks dropped items
|
|
63
|
-
* @param envelopes -
|
|
63
|
+
* @param envelopes - Array of envelopes dropped
|
|
64
64
|
* @param dropCode - The drop code indicating the reason for drop
|
|
65
|
-
* @param telemetry_type - The type of telemetry being tracked
|
|
66
65
|
* @param exceptionMessage - Optional exception message when dropCode is CLIENT_EXCEPTION
|
|
66
|
+
* @param exceptionType - Optional explicit exception type override when dropCode is CLIENT_EXCEPTION
|
|
67
67
|
*/
|
|
68
|
-
countDroppedItems(envelopes: Envelope[], dropCode: DropCode | number, exceptionMessage?: string): void;
|
|
68
|
+
countDroppedItems(envelopes: Envelope[], dropCode: DropCode | number, exceptionMessage?: string, exceptionType?: ExceptionType): void;
|
|
69
69
|
/**
|
|
70
70
|
* Generates a low-cardinality, informative description for drop reasons
|
|
71
71
|
* @param dropCode - The drop code (enum value or status code number)
|
|
72
72
|
* @param exceptionMessage - Optional exception message for CLIENT_EXCEPTION
|
|
73
|
+
* @param exceptionType - Optional explicit exception type override for CLIENT_EXCEPTION
|
|
73
74
|
* @returns A descriptive reason string with low cardinality
|
|
74
75
|
*/
|
|
75
76
|
private getDropReason;
|
|
76
77
|
/**
|
|
77
|
-
* Categorizes exception messages into
|
|
78
|
+
* Categorizes exception messages into well-known exception categories
|
|
78
79
|
* @param exceptionMessage - The exception message to categorize
|
|
79
|
-
* @returns A
|
|
80
|
+
* @returns A well-known exception category string
|
|
80
81
|
*/
|
|
81
82
|
private categorizeExceptionMessage;
|
|
82
83
|
/**
|
|
@@ -89,14 +90,15 @@ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
|
|
|
89
90
|
* Tracks retried envelopes
|
|
90
91
|
* @param envelopes - Number of envelopes retried
|
|
91
92
|
* @param retryCode - The retry code indicating the reason for retry
|
|
92
|
-
* @param telemetry_type - The type of telemetry being tracked
|
|
93
93
|
* @param exceptionMessage - Optional exception message when retryCode is CLIENT_EXCEPTION
|
|
94
|
+
* @param exceptionType - Optional explicit exception type override when retryCode is CLIENT_EXCEPTION
|
|
94
95
|
*/
|
|
95
|
-
countRetryItems(envelopes: Envelope[], retryCode: RetryCode | number, exceptionMessage?: string): void;
|
|
96
|
+
countRetryItems(envelopes: Envelope[], retryCode: RetryCode | number, exceptionMessage?: string, exceptionType?: ExceptionType): void;
|
|
96
97
|
/**
|
|
97
98
|
* Generates a low-cardinality, informative description for retry reasons
|
|
98
99
|
* @param retryCode - The retry code (enum value or status code number)
|
|
99
100
|
* @param exceptionMessage - Optional exception message for CLIENT_EXCEPTION
|
|
101
|
+
* @param exceptionType - Optional explicit exception type override for CLIENT_EXCEPTION
|
|
100
102
|
* @returns A descriptive reason string with low cardinality
|
|
101
103
|
*/
|
|
102
104
|
private getRetryReason;
|
|
@@ -112,6 +114,12 @@ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
|
|
|
112
114
|
* @returns The corresponding telemetry type
|
|
113
115
|
*/
|
|
114
116
|
getTelemetryTypeFromEnvelope(envelope: Envelope): TelemetryType;
|
|
117
|
+
/**
|
|
118
|
+
* Extract telemetry success value from an envelope for REQUEST and DEPENDENCY telemetry types
|
|
119
|
+
* @param envelope - The envelope to extract success value from
|
|
120
|
+
* @returns The success value if available, undefined otherwise
|
|
121
|
+
*/
|
|
122
|
+
getTelemetrySuccessFromEnvelope(envelope: Envelope): boolean | undefined;
|
|
115
123
|
/**
|
|
116
124
|
* Checks if the given error is a timeout-related error
|
|
117
125
|
* @param error - The error to check
|
|
@@ -122,4 +130,4 @@ export declare class CustomerStatsbeatMetrics extends StatsbeatMetrics {
|
|
|
122
130
|
message?: string;
|
|
123
131
|
}): boolean;
|
|
124
132
|
}
|
|
125
|
-
//# sourceMappingURL=
|
|
133
|
+
//# sourceMappingURL=customerSDKStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customerSDKStats.d.ts","sourceRoot":"","sources":["../../../../src/export/statsbeat/customerSDKStats.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAA8B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAEL,QAAQ,EACR,SAAS,EACT,aAAa,EAGd,MAAM,YAAY,CAAC;AACpB,OAAO,EAA6C,aAAa,EAAE,MAAM,YAAY,CAAC;AAKtF,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE1E;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsC;IAE9D,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,6BAA6B,CAAgB;IACrD,OAAO,CAAC,wBAAwB,CAAgC;IAChE,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,4BAA4B,CAAgC;IACpE,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA2B;IAGzC,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,OAAO;IAmDP;;;;OAIG;WACW,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,uBAAuB;IAO7E;;;OAGG;WACW,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IASnD;;;OAGG;IACI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;OAIG;YACW,UAAU;IAkBxB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,gBAAgB;IAiDxB,OAAO,CAAC,iBAAiB;IAuCzB;;;;OAIG;IACI,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAYxD;;;;;;OAMG;IACI,iBAAiB,CACtB,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,aAAa,GAC5B,IAAI;IA4CP;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAoCrB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IA2BlC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;;;;OAMG;IACI,eAAe,CACpB,SAAS,EAAE,QAAQ,EAAE,EACrB,SAAS,EAAE,SAAS,GAAG,MAAM,EAC7B,gBAAgB,CAAC,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,aAAa,GAC5B,IAAI;IA6BP;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;OAIG;IACI,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa;IAqCtE;;;;OAIG;IACI,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAiB/E;;;;OAIG;IACI,cAAc,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAsB3E"}
|