@fluidframework/telemetry-utils 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0

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.
Files changed (149) hide show
  1. package/{.mocharc.js → .mocharc.cjs} +1 -1
  2. package/CHANGELOG.md +23 -0
  3. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -2
  4. package/api-extractor-lint.json +1 -1
  5. package/api-extractor.json +1 -1
  6. package/api-report/telemetry-utils.api.md +10 -33
  7. package/dist/config.d.ts +2 -2
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +3 -3
  10. package/dist/config.js.map +1 -1
  11. package/dist/error.d.ts +2 -2
  12. package/dist/error.d.ts.map +1 -1
  13. package/dist/error.js +9 -9
  14. package/dist/error.js.map +1 -1
  15. package/dist/errorLogging.d.ts +4 -4
  16. package/dist/errorLogging.d.ts.map +1 -1
  17. package/dist/errorLogging.js +19 -60
  18. package/dist/errorLogging.js.map +1 -1
  19. package/dist/eventEmitterWithErrorHandling.d.ts +1 -1
  20. package/dist/eventEmitterWithErrorHandling.js +1 -1
  21. package/dist/eventEmitterWithErrorHandling.js.map +1 -1
  22. package/dist/events.d.ts +2 -3
  23. package/dist/events.d.ts.map +1 -1
  24. package/dist/events.js.map +1 -1
  25. package/dist/fluidErrorBase.d.ts +4 -3
  26. package/dist/fluidErrorBase.d.ts.map +1 -1
  27. package/dist/fluidErrorBase.js.map +1 -1
  28. package/dist/index.d.ts +12 -12
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +58 -60
  31. package/dist/index.js.map +1 -1
  32. package/dist/logger.d.ts +7 -23
  33. package/dist/logger.d.ts.map +1 -1
  34. package/dist/logger.js +12 -29
  35. package/dist/logger.js.map +1 -1
  36. package/dist/mockLogger.d.ts +1 -1
  37. package/dist/mockLogger.d.ts.map +1 -1
  38. package/dist/mockLogger.js +2 -2
  39. package/dist/mockLogger.js.map +1 -1
  40. package/dist/package.json +3 -0
  41. package/dist/sampledTelemetryHelper.d.ts +4 -4
  42. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  43. package/dist/sampledTelemetryHelper.js +1 -1
  44. package/dist/sampledTelemetryHelper.js.map +1 -1
  45. package/dist/telemetry-utils-alpha.d.ts +4 -15
  46. package/dist/telemetry-utils-beta.d.ts +4 -32
  47. package/dist/telemetry-utils-public.d.ts +4 -32
  48. package/dist/telemetry-utils-untrimmed.d.ts +11 -50
  49. package/dist/thresholdCounter.d.ts +1 -1
  50. package/dist/thresholdCounter.d.ts.map +1 -1
  51. package/dist/thresholdCounter.js.map +1 -1
  52. package/dist/tsdoc-metadata.json +1 -1
  53. package/dist/utils.d.ts +1 -20
  54. package/dist/utils.d.ts.map +1 -1
  55. package/dist/utils.js +3 -27
  56. package/dist/utils.js.map +1 -1
  57. package/lib/config.d.ts +2 -2
  58. package/lib/config.d.ts.map +1 -1
  59. package/lib/config.js +1 -1
  60. package/lib/config.js.map +1 -1
  61. package/lib/error.d.ts +2 -2
  62. package/lib/error.d.ts.map +1 -1
  63. package/lib/error.js +1 -1
  64. package/lib/error.js.map +1 -1
  65. package/lib/errorLogging.d.ts +4 -4
  66. package/lib/errorLogging.d.ts.map +1 -1
  67. package/lib/errorLogging.js +15 -56
  68. package/lib/errorLogging.js.map +1 -1
  69. package/lib/eventEmitterWithErrorHandling.d.ts +1 -1
  70. package/lib/eventEmitterWithErrorHandling.js +1 -1
  71. package/lib/eventEmitterWithErrorHandling.js.map +1 -1
  72. package/lib/events.d.ts +2 -3
  73. package/lib/events.d.ts.map +1 -1
  74. package/lib/events.js.map +1 -1
  75. package/lib/fluidErrorBase.d.ts +4 -3
  76. package/lib/fluidErrorBase.d.ts.map +1 -1
  77. package/lib/fluidErrorBase.js.map +1 -1
  78. package/lib/index.d.ts +12 -12
  79. package/lib/index.d.ts.map +1 -1
  80. package/lib/index.js +11 -11
  81. package/lib/index.js.map +1 -1
  82. package/lib/logger.d.ts +7 -23
  83. package/lib/logger.d.ts.map +1 -1
  84. package/lib/logger.js +3 -19
  85. package/lib/logger.js.map +1 -1
  86. package/lib/mockLogger.d.ts +1 -1
  87. package/lib/mockLogger.d.ts.map +1 -1
  88. package/lib/mockLogger.js +1 -1
  89. package/lib/mockLogger.js.map +1 -1
  90. package/lib/sampledTelemetryHelper.d.ts +4 -4
  91. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  92. package/lib/sampledTelemetryHelper.js +1 -1
  93. package/lib/sampledTelemetryHelper.js.map +1 -1
  94. package/lib/{telemetry-utils-alpha.d.mts → telemetry-utils-alpha.d.ts} +4 -15
  95. package/lib/{telemetry-utils-beta.d.mts → telemetry-utils-beta.d.ts} +4 -32
  96. package/lib/{telemetry-utils-public.d.mts → telemetry-utils-public.d.ts} +4 -32
  97. package/lib/{telemetry-utils-untrimmed.d.mts → telemetry-utils-untrimmed.d.ts} +11 -50
  98. package/lib/test/EventEmitterWithErrorHandling.spec.js +86 -0
  99. package/lib/test/EventEmitterWithErrorHandling.spec.js.map +1 -0
  100. package/lib/test/childLogger.spec.js +233 -0
  101. package/lib/test/childLogger.spec.js.map +1 -0
  102. package/lib/test/config.spec.js +229 -0
  103. package/lib/test/config.spec.js.map +1 -0
  104. package/lib/test/error.spec.js +161 -0
  105. package/lib/test/error.spec.js.map +1 -0
  106. package/lib/test/errorLogging.spec.js +801 -0
  107. package/lib/test/errorLogging.spec.js.map +1 -0
  108. package/lib/test/errorTypeLoggingTest.spec.js +107 -0
  109. package/lib/test/errorTypeLoggingTest.spec.js.map +1 -0
  110. package/lib/test/mockLogger.spec.js +164 -0
  111. package/lib/test/mockLogger.spec.js.map +1 -0
  112. package/lib/test/multiSinkLogger.spec.js +84 -0
  113. package/lib/test/multiSinkLogger.spec.js.map +1 -0
  114. package/lib/test/performanceEvent.spec.js +86 -0
  115. package/lib/test/performanceEvent.spec.js.map +1 -0
  116. package/lib/test/sampledTelemetryHelper.spec.js +169 -0
  117. package/lib/test/sampledTelemetryHelper.spec.js.map +1 -0
  118. package/lib/test/telemetryLogger.spec.js +357 -0
  119. package/lib/test/telemetryLogger.spec.js.map +1 -0
  120. package/lib/test/thresholdCounter.spec.js +51 -0
  121. package/lib/test/thresholdCounter.spec.js.map +1 -0
  122. package/lib/test/types/validateTelemetryUtilsPrevious.generated.js +132 -0
  123. package/lib/test/types/validateTelemetryUtilsPrevious.generated.js.map +1 -0
  124. package/lib/test/utils.spec.js +284 -0
  125. package/lib/test/utils.spec.js.map +1 -0
  126. package/lib/thresholdCounter.d.ts +1 -1
  127. package/lib/thresholdCounter.d.ts.map +1 -1
  128. package/lib/thresholdCounter.js.map +1 -1
  129. package/lib/utils.d.ts +1 -20
  130. package/lib/utils.d.ts.map +1 -1
  131. package/lib/utils.js +1 -24
  132. package/lib/utils.js.map +1 -1
  133. package/package.json +75 -26
  134. package/src/config.ts +2 -2
  135. package/src/error.ts +2 -2
  136. package/src/errorLogging.ts +27 -68
  137. package/src/eventEmitterWithErrorHandling.ts +1 -1
  138. package/src/events.ts +2 -4
  139. package/src/fluidErrorBase.ts +4 -3
  140. package/src/index.ts +12 -13
  141. package/src/logger.ts +12 -28
  142. package/src/mockLogger.ts +2 -2
  143. package/src/sampledTelemetryHelper.ts +10 -11
  144. package/src/thresholdCounter.ts +1 -1
  145. package/src/utils.ts +3 -36
  146. package/tsconfig.cjs.json +7 -0
  147. package/tsconfig.json +2 -3
  148. package/tsconfig.esnext.json +0 -7
  149. /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -3,14 +3,13 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import {
7
- ITelemetryGenericEvent,
8
- ITelemetryPerformanceEvent,
9
- ITelemetryProperties,
10
- IDisposable,
11
- } from "@fluidframework/core-interfaces";
6
+ import type { ITelemetryBaseProperties, IDisposable } from "@fluidframework/core-interfaces";
12
7
  import { performance } from "@fluid-internal/client-utils";
13
- import { ITelemetryLoggerExt } from "./telemetryTypes";
8
+ import {
9
+ ITelemetryLoggerExt,
10
+ type ITelemetryGenericEventExt,
11
+ type ITelemetryPerformanceEventExt,
12
+ } from "./telemetryTypes.js";
14
13
 
15
14
  /**
16
15
  * @privateRemarks
@@ -77,15 +76,15 @@ export class SampledTelemetryHelper implements IDisposable {
77
76
  * properties which should be added to the telemetry event for that bucket. If a bucket being measured does not
78
77
  * have an entry in this map, no additional properties will be added to its telemetry events. The following keys are
79
78
  * reserved for use by this class: "duration", "count", "totalDuration", "minDuration", "maxDuration". If any of
80
- * them is specified as a key in one of the ITelemetryProperties objects in this map, that key-value pair will be
79
+ * them is specified as a key in one of the ITelemetryBaseProperties objects in this map, that key-value pair will be
81
80
  * ignored.
82
81
  */
83
82
  public constructor(
84
- private readonly eventBase: ITelemetryGenericEvent,
83
+ private readonly eventBase: ITelemetryGenericEventExt,
85
84
  private readonly logger: ITelemetryLoggerExt,
86
85
  private readonly sampleThreshold: number,
87
86
  private readonly includeAggregateMetrics: boolean = false,
88
- private readonly perBucketProperties = new Map<string, ITelemetryProperties>(),
87
+ private readonly perBucketProperties = new Map<string, ITelemetryBaseProperties>(),
89
88
  ) {}
90
89
 
91
90
  /**
@@ -133,7 +132,7 @@ export class SampledTelemetryHelper implements IDisposable {
133
132
  if (measurements.count !== 0) {
134
133
  const bucketProperties = this.perBucketProperties.get(bucket);
135
134
 
136
- const telemetryEvent: ITelemetryPerformanceEvent = {
135
+ const telemetryEvent: ITelemetryPerformanceEventExt = {
137
136
  ...this.eventBase,
138
137
  ...bucketProperties, // If the bucket doesn't exist and this is undefined, things work as expected
139
138
  ...measurements,
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryLoggerExt } from "./telemetryTypes";
6
+ import { ITelemetryLoggerExt } from "./telemetryTypes.js";
7
7
 
8
8
  /**
9
9
  * Utility counter which will send event only if the provided value is above a configured threshold.
package/src/utils.ts CHANGED
@@ -2,42 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import {
6
- ITelemetryBaseEvent,
7
- ITelemetryBaseLogger,
8
- ITelemetryGenericEvent,
9
- } from "@fluidframework/core-interfaces";
10
- import { loggerToMonitoringContext } from "./config";
11
- import { ITelemetryGenericEventExt, ITelemetryLoggerExt } from "./telemetryTypes";
12
-
13
- /**
14
- * Like assert, but logs only if the condition is false, rather than throwing
15
- * @param condition - The condition to attest too
16
- * @param logger - The logger to log with
17
- * @param event - The string or event to log
18
- * @returns The outcome of the condition
19
- *
20
- * @internal
21
- *
22
- * @deprecated
23
- * This API will be removed in a future release.
24
- * No replacement API is intended, but reproducing its behavior should be trivial for anyone who needs it.
25
- */
26
- export function logIfFalse(
27
- condition: unknown,
28
- logger: ITelemetryBaseLogger,
29
- event: string | ITelemetryGenericEvent,
30
- ): condition is true {
31
- if (condition) {
32
- return true;
33
- }
34
- const newEvent: ITelemetryBaseEvent =
35
- typeof event === "string"
36
- ? { eventName: event, category: "error" }
37
- : { category: "error", ...event };
38
- logger.send(newEvent);
39
- return false;
40
- }
5
+ import { ITelemetryBaseEvent } from "@fluidframework/core-interfaces";
6
+ import { loggerToMonitoringContext } from "./config.js";
7
+ import { ITelemetryGenericEventExt, ITelemetryLoggerExt } from "./telemetryTypes.js";
41
8
 
42
9
  /**
43
10
  * An object that contains a callback used in conjunction with the {@link createSampledLogger} utility function to provide custom logic for sampling events.
@@ -0,0 +1,7 @@
1
+ {
2
+ // This config must be used in a "type": "commonjs" environment. (Use fluid-tsc commonjs.)
3
+ "extends": "./tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "./dist",
6
+ },
7
+ }
package/tsconfig.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
- "extends": "@fluidframework/build-common/ts-common-config.json",
2
+ "extends": "../../../common/build/build-common/tsconfig.node16.json",
3
3
  "exclude": ["src/test/**/*"],
4
4
  "compilerOptions": {
5
5
  "rootDir": "./src",
6
- "outDir": "./dist",
7
- "composite": true,
6
+ "outDir": "./lib",
8
7
  },
9
8
  "include": ["src/**/*"],
10
9
  }
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "./lib",
5
- "module": "esnext",
6
- },
7
- }
File without changes