@fluidframework/telemetry-utils 2.0.0-dev-rc.5.0.0.271262 → 2.0.0-dev-rc.5.0.0.272251

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 (124) hide show
  1. package/.eslintrc.cjs +1 -1
  2. package/api-extractor/api-extractor-lint-bundle.json +5 -0
  3. package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
  4. package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
  5. package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
  6. package/api-extractor/api-extractor-lint-public.esm.json +5 -0
  7. package/api-report/telemetry-utils.alpha.api.md +13 -28
  8. package/api-report/telemetry-utils.beta.api.md +7 -7
  9. package/api-report/telemetry-utils.public.api.md +7 -7
  10. package/dist/config.d.ts +2 -2
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +1 -3
  13. package/dist/config.js.map +1 -1
  14. package/dist/error.d.ts +5 -5
  15. package/dist/error.d.ts.map +1 -1
  16. package/dist/error.js +9 -10
  17. package/dist/error.js.map +1 -1
  18. package/dist/errorLogging.d.ts +1 -1
  19. package/dist/errorLogging.d.ts.map +1 -1
  20. package/dist/errorLogging.js +27 -15
  21. package/dist/errorLogging.js.map +1 -1
  22. package/dist/eventEmitterWithErrorHandling.d.ts +2 -2
  23. package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
  24. package/dist/eventEmitterWithErrorHandling.js +0 -1
  25. package/dist/eventEmitterWithErrorHandling.js.map +1 -1
  26. package/dist/index.d.ts +7 -6
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/logger.d.ts +3 -5
  31. package/dist/logger.d.ts.map +1 -1
  32. package/dist/logger.js +7 -19
  33. package/dist/logger.js.map +1 -1
  34. package/dist/mathTools.d.ts +13 -0
  35. package/dist/mathTools.d.ts.map +1 -0
  36. package/dist/mathTools.js +20 -0
  37. package/dist/mathTools.js.map +1 -0
  38. package/dist/mockLogger.d.ts +15 -7
  39. package/dist/mockLogger.d.ts.map +1 -1
  40. package/dist/mockLogger.js +17 -11
  41. package/dist/mockLogger.js.map +1 -1
  42. package/dist/sampledTelemetryHelper.d.ts +6 -2
  43. package/dist/sampledTelemetryHelper.d.ts.map +1 -1
  44. package/dist/sampledTelemetryHelper.js +11 -8
  45. package/dist/sampledTelemetryHelper.js.map +1 -1
  46. package/dist/telemetryEventBatcher.d.ts +87 -0
  47. package/dist/telemetryEventBatcher.d.ts.map +1 -0
  48. package/dist/telemetryEventBatcher.js +109 -0
  49. package/dist/telemetryEventBatcher.js.map +1 -0
  50. package/dist/telemetryTypes.d.ts +32 -18
  51. package/dist/telemetryTypes.d.ts.map +1 -1
  52. package/dist/telemetryTypes.js.map +1 -1
  53. package/dist/thresholdCounter.d.ts +1 -1
  54. package/dist/thresholdCounter.d.ts.map +1 -1
  55. package/dist/thresholdCounter.js +0 -3
  56. package/dist/thresholdCounter.js.map +1 -1
  57. package/dist/utils.d.ts +1 -1
  58. package/dist/utils.d.ts.map +1 -1
  59. package/dist/utils.js.map +1 -1
  60. package/lib/config.d.ts +2 -2
  61. package/lib/config.d.ts.map +1 -1
  62. package/lib/config.js +1 -3
  63. package/lib/config.js.map +1 -1
  64. package/lib/error.d.ts +5 -5
  65. package/lib/error.d.ts.map +1 -1
  66. package/lib/error.js +9 -10
  67. package/lib/error.js.map +1 -1
  68. package/lib/errorLogging.d.ts +1 -1
  69. package/lib/errorLogging.d.ts.map +1 -1
  70. package/lib/errorLogging.js +27 -15
  71. package/lib/errorLogging.js.map +1 -1
  72. package/lib/eventEmitterWithErrorHandling.d.ts +2 -2
  73. package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
  74. package/lib/eventEmitterWithErrorHandling.js +0 -1
  75. package/lib/eventEmitterWithErrorHandling.js.map +1 -1
  76. package/lib/index.d.ts +7 -6
  77. package/lib/index.d.ts.map +1 -1
  78. package/lib/index.js +1 -0
  79. package/lib/index.js.map +1 -1
  80. package/lib/logger.d.ts +3 -5
  81. package/lib/logger.d.ts.map +1 -1
  82. package/lib/logger.js +7 -19
  83. package/lib/logger.js.map +1 -1
  84. package/lib/mathTools.d.ts +13 -0
  85. package/lib/mathTools.d.ts.map +1 -0
  86. package/lib/mathTools.js +16 -0
  87. package/lib/mathTools.js.map +1 -0
  88. package/lib/mockLogger.d.ts +15 -7
  89. package/lib/mockLogger.d.ts.map +1 -1
  90. package/lib/mockLogger.js +17 -11
  91. package/lib/mockLogger.js.map +1 -1
  92. package/lib/sampledTelemetryHelper.d.ts +6 -2
  93. package/lib/sampledTelemetryHelper.d.ts.map +1 -1
  94. package/lib/sampledTelemetryHelper.js +11 -8
  95. package/lib/sampledTelemetryHelper.js.map +1 -1
  96. package/lib/telemetryEventBatcher.d.ts +87 -0
  97. package/lib/telemetryEventBatcher.d.ts.map +1 -0
  98. package/lib/telemetryEventBatcher.js +105 -0
  99. package/lib/telemetryEventBatcher.js.map +1 -0
  100. package/lib/telemetryTypes.d.ts +32 -18
  101. package/lib/telemetryTypes.d.ts.map +1 -1
  102. package/lib/telemetryTypes.js.map +1 -1
  103. package/lib/thresholdCounter.d.ts +1 -1
  104. package/lib/thresholdCounter.d.ts.map +1 -1
  105. package/lib/thresholdCounter.js +0 -3
  106. package/lib/thresholdCounter.js.map +1 -1
  107. package/lib/utils.d.ts +1 -1
  108. package/lib/utils.d.ts.map +1 -1
  109. package/lib/utils.js.map +1 -1
  110. package/package.json +16 -7
  111. package/src/config.ts +10 -10
  112. package/src/error.ts +13 -13
  113. package/src/errorLogging.ts +27 -14
  114. package/src/eventEmitterWithErrorHandling.ts +3 -3
  115. package/src/index.ts +12 -11
  116. package/src/logger.ts +11 -10
  117. package/src/mathTools.ts +16 -0
  118. package/src/mockLogger.ts +34 -20
  119. package/src/sampledTelemetryHelper.ts +15 -5
  120. package/src/telemetryEventBatcher.ts +144 -0
  121. package/src/telemetryTypes.ts +38 -19
  122. package/src/thresholdCounter.ts +1 -1
  123. package/src/utils.ts +2 -2
  124. package/tsdoc.json +4 -0
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-interfaces";
6
+ import type { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-interfaces";
7
7
 
8
8
  /**
9
9
  * The categories FF uses when instrumenting the code.
@@ -31,10 +31,7 @@ export type TelemetryEventPropertyTypeExt =
31
31
  | boolean
32
32
  | undefined
33
33
  | (string | number | boolean)[]
34
- | {
35
- [key: string]: // Flat objects can have the same properties as the event itself
36
- string | number | boolean | undefined | (string | number | boolean)[];
37
- };
34
+ | Record<string, string | number | boolean | undefined | (string | number | boolean)[]>;
38
35
 
39
36
  /**
40
37
  * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used
@@ -53,9 +50,10 @@ export interface ITaggedTelemetryPropertyTypeExt {
53
50
  * JSON-serializable properties, which will be logged with telemetry.
54
51
  * @alpha
55
52
  */
56
- export interface ITelemetryPropertiesExt {
57
- [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
58
- }
53
+ export type ITelemetryPropertiesExt = Record<
54
+ string,
55
+ TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>
56
+ >;
59
57
 
60
58
  /**
61
59
  * Interface for logging telemetry statements.
@@ -66,7 +64,14 @@ export interface ITelemetryPropertiesExt {
66
64
  * @internal
67
65
  */
68
66
  export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
67
+ /**
68
+ * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.category}
69
+ */
69
70
  category: string;
71
+
72
+ /**
73
+ * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}
74
+ */
70
75
  eventName: string;
71
76
  }
72
77
 
@@ -76,7 +81,15 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
76
81
  * @alpha
77
82
  */
78
83
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
84
+ /**
85
+ * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}
86
+ */
79
87
  eventName: string;
88
+
89
+ /**
90
+ * Optional event {@link @fluidframework/core-interfaces#ITelemetryBaseEvent.category}.
91
+ * @defaultValue "generic"
92
+ */
80
93
  category?: TelemetryEventCategory;
81
94
  }
82
95
 
@@ -86,6 +99,9 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
86
99
  * @alpha
87
100
  */
88
101
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
102
+ /**
103
+ * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}
104
+ */
89
105
  eventName: string;
90
106
  }
91
107
 
@@ -95,7 +111,10 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
95
111
  * @alpha
96
112
  */
97
113
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
98
- duration?: number; // Duration of event (optional)
114
+ /**
115
+ * Duration of event (optional)
116
+ */
117
+ duration?: number;
99
118
  }
100
119
 
101
120
  /**
@@ -108,10 +127,10 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
108
127
  */
109
128
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
110
129
  /**
111
- * Send information telemetry event
112
- * @param event - Event to send
113
- * @param error - optional error object to log
114
- * @param logLevel - optional level of the log.
130
+ * Send an information telemetry event.
131
+ * @param event - Event to send.
132
+ * @param error - Optional error object to log.
133
+ * @param logLevel - Optional level of the log. Default: {@link @fluidframework/core-interfaces#LogLevel.default}.
115
134
  */
116
135
  sendTelemetryEvent(
117
136
  event: ITelemetryGenericEventExt,
@@ -120,17 +139,17 @@ export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
120
139
  ): void;
121
140
 
122
141
  /**
123
- * Send error telemetry event
124
- * @param event - Event to send
125
- * @param error - optional error object to log
142
+ * Send an error telemetry event.
143
+ * @param event - Event to send.
144
+ * @param error - Optional error object to log.
126
145
  */
127
146
  sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
128
147
 
129
148
  /**
130
- * Send performance telemetry event
149
+ * Send a performance telemetry event.
131
150
  * @param event - Event to send
132
- * @param error - optional error object to log
133
- * @param logLevel - optional level of the log.
151
+ * @param error - Optional error object to log.
152
+ * @param logLevel - Optional level of the log. Default: {@link @fluidframework/core-interfaces#LogLevel.default}.
134
153
  */
135
154
  sendPerformanceEvent(
136
155
  event: ITelemetryPerformanceEventExt,
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryLoggerExt } from "./telemetryTypes.js";
6
+ import type { 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
@@ -3,10 +3,10 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ITelemetryBaseEvent } from "@fluidframework/core-interfaces";
6
+ import type { ITelemetryBaseEvent } from "@fluidframework/core-interfaces";
7
7
 
8
8
  import { loggerToMonitoringContext } from "./config.js";
9
- import { ITelemetryGenericEventExt, ITelemetryLoggerExt } from "./telemetryTypes.js";
9
+ import type { ITelemetryGenericEventExt, ITelemetryLoggerExt } from "./telemetryTypes.js";
10
10
 
11
11
  /**
12
12
  * An object that contains a callback used in conjunction with the {@link createSampledLogger} utility function to provide custom logic for sampling events.
package/tsdoc.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
3
+ "extends": ["../../../common/build/build-common/tsdoc-base.json"]
4
+ }