@noego/telemetry 0.0.3 → 0.1.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 (93) hide show
  1. package/README.md +6 -0
  2. package/dist/browser/index.cjs +21 -0
  3. package/dist/browser/index.cjs.map +1 -1
  4. package/dist/browser/index.d.cts +6 -5
  5. package/dist/browser/index.d.ts +6 -5
  6. package/dist/browser/index.js +21 -0
  7. package/dist/browser/index.js.map +1 -1
  8. package/dist/{browser_telemetry_client-BzBPQm4m.d.cts → browser_telemetry_client-ClZl3awO.d.cts} +2 -2
  9. package/dist/{browser_telemetry_client-Ch_VzwEa.d.ts → browser_telemetry_client-t4dPp8Ku.d.ts} +2 -2
  10. package/dist/cli/telemetry_bin.cjs +393 -35
  11. package/dist/cli/telemetry_bin.cjs.map +1 -1
  12. package/dist/cli/telemetry_bin.js +378 -20
  13. package/dist/cli/telemetry_bin.js.map +1 -1
  14. package/dist/cli/telemetry_cli.cjs +393 -35
  15. package/dist/cli/telemetry_cli.cjs.map +1 -1
  16. package/dist/cli/telemetry_cli.d.cts +35 -5
  17. package/dist/cli/telemetry_cli.d.ts +35 -5
  18. package/dist/cli/telemetry_cli.js +378 -20
  19. package/dist/cli/telemetry_cli.js.map +1 -1
  20. package/dist/{client_defaults-B5tC-TgG.d.ts → client_defaults-CZ8PysZX.d.ts} +2 -2
  21. package/dist/{client_defaults-C9LnSX4j.d.cts → client_defaults-lDbWYWWK.d.cts} +2 -2
  22. package/dist/core/index.cjs +26 -1
  23. package/dist/core/index.cjs.map +1 -1
  24. package/dist/core/index.d.cts +15 -12
  25. package/dist/core/index.d.ts +15 -12
  26. package/dist/core/index.js +26 -1
  27. package/dist/core/index.js.map +1 -1
  28. package/dist/electron/index.cjs +21 -0
  29. package/dist/electron/index.cjs.map +1 -1
  30. package/dist/electron/index.d.cts +5 -4
  31. package/dist/electron/index.d.ts +5 -4
  32. package/dist/electron/index.js +21 -0
  33. package/dist/electron/index.js.map +1 -1
  34. package/dist/{envelope.types-rOLpWXRC.d.cts → envelope.types-DIvZD3xH.d.ts} +2 -6
  35. package/dist/{envelope.types-rOLpWXRC.d.ts → envelope.types-DyrlRG49.d.cts} +2 -6
  36. package/dist/{in_memory_batch_transport-DKW9EZnU.d.cts → in_memory_batch_transport-3T6gElXP.d.cts} +1 -1
  37. package/dist/{in_memory_batch_transport-oOwNxXnA.d.ts → in_memory_batch_transport-DpQU6JqM.d.ts} +1 -1
  38. package/dist/index.cjs +26 -1
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.cts +14 -12
  41. package/dist/index.d.ts +14 -12
  42. package/dist/index.js +26 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/json.types-BqS77fcN.d.cts +7 -0
  45. package/dist/json.types-BqS77fcN.d.ts +7 -0
  46. package/dist/{maintenance_coordinator.types-C4ULi4A4.d.cts → maintenance_coordinator.types-Crhx9i9k.d.cts} +3 -3
  47. package/dist/{maintenance_coordinator.types-ikUrRXmO.d.ts → maintenance_coordinator.types-DprmgpVn.d.ts} +3 -3
  48. package/dist/metric.types-D8aOAnUm.d.ts +67 -0
  49. package/dist/metric.types-Dg4eZq6u.d.cts +67 -0
  50. package/dist/{metric_definition_contract-BYtnODhu.d.ts → metric_definition_contract-C6MERhJs.d.ts} +1 -1
  51. package/dist/{metric_definition_contract-DfhhmTZ1.d.cts → metric_definition_contract-DoAk7NOw.d.cts} +1 -1
  52. package/dist/node/index.cjs +38 -2
  53. package/dist/node/index.cjs.map +1 -1
  54. package/dist/node/index.d.cts +62 -10
  55. package/dist/node/index.d.ts +62 -10
  56. package/dist/node/index.js +37 -2
  57. package/dist/node/index.js.map +1 -1
  58. package/dist/node/producer/index.cjs +21 -0
  59. package/dist/node/producer/index.cjs.map +1 -1
  60. package/dist/node/producer/index.d.cts +5 -4
  61. package/dist/node/producer/index.d.ts +5 -4
  62. package/dist/node/producer/index.js +21 -0
  63. package/dist/node/producer/index.js.map +1 -1
  64. package/dist/projector/index.cjs +1370 -0
  65. package/dist/projector/index.cjs.map +1 -0
  66. package/dist/projector/index.d.cts +246 -0
  67. package/dist/projector/index.d.ts +246 -0
  68. package/dist/projector/index.js +1328 -0
  69. package/dist/projector/index.js.map +1 -0
  70. package/dist/{query.types-DU5v7vM0.d.ts → query.types-CRqAsGTX.d.cts} +4 -66
  71. package/dist/{query.types-DuYWbFFe.d.cts → query.types-DnOMYXpC.d.ts} +4 -66
  72. package/dist/sqlite/index.cjs +5 -1
  73. package/dist/sqlite/index.cjs.map +1 -1
  74. package/dist/sqlite/index.d.cts +7 -5
  75. package/dist/sqlite/index.d.ts +7 -5
  76. package/dist/sqlite/index.js +5 -1
  77. package/dist/sqlite/index.js.map +1 -1
  78. package/dist/{storage.types-k7oElEB3.d.ts → storage.types-BKWoIOHp.d.ts} +3 -2
  79. package/dist/{storage.types-Bji_pWqr.d.cts → storage.types-DHbAm3j_.d.cts} +3 -2
  80. package/dist/{telemetry_client-BXw8WH_F.d.ts → telemetry_client-Bg5tbj5E.d.cts} +12 -3
  81. package/dist/{telemetry_client-CYaPYfOl.d.cts → telemetry_client-DWKgufmc.d.ts} +12 -3
  82. package/dist/{telemetry_configuration_parser-BZ8Nvnle.d.ts → telemetry_configuration_parser-6BR3_dD_.d.ts} +2 -2
  83. package/dist/{telemetry_configuration_parser-CgSN7R6A.d.cts → telemetry_configuration_parser-ybeweUPE.d.cts} +2 -2
  84. package/dist/testing/index.d.cts +7 -5
  85. package/dist/testing/index.d.ts +7 -5
  86. package/dist/trace-adapter/index.d.cts +4 -3
  87. package/dist/trace-adapter/index.d.ts +4 -3
  88. package/dist/{transport.types-BAl_TRtU.d.cts → transport.types-C2dP-eed.d.cts} +1 -1
  89. package/dist/{transport.types-DDnZoKWi.d.ts → transport.types-SA8KpLiK.d.ts} +1 -1
  90. package/migrations/1786100000000_animation_artifacts.down.sql +5 -0
  91. package/migrations/1786100000000_animation_artifacts.up.sql +41 -0
  92. package/native/noego_telemetry_native.node +0 -0
  93. package/package.json +11 -4
@@ -1,5 +1,5 @@
1
- import { M as MetadataSnapshotLimits, T as TelemetryAdmissionPolicy } from './telemetry_client-BXw8WH_F.js';
2
- import { a as TelemetryBatchValidationLimits } from './transport.types-DDnZoKWi.js';
1
+ import { M as MetadataSnapshotLimits, T as TelemetryAdmissionPolicy } from './telemetry_client-DWKgufmc.js';
2
+ import { a as TelemetryBatchValidationLimits } from './transport.types-SA8KpLiK.js';
3
3
 
4
4
  declare const DEFAULT_TELEMETRY_ADMISSION_POLICY: TelemetryAdmissionPolicy;
5
5
  declare const DEFAULT_METADATA_SNAPSHOT_LIMITS: MetadataSnapshotLimits;
@@ -1,5 +1,5 @@
1
- import { M as MetadataSnapshotLimits, T as TelemetryAdmissionPolicy } from './telemetry_client-CYaPYfOl.cjs';
2
- import { a as TelemetryBatchValidationLimits } from './transport.types-BAl_TRtU.cjs';
1
+ import { M as MetadataSnapshotLimits, T as TelemetryAdmissionPolicy } from './telemetry_client-Bg5tbj5E.cjs';
2
+ import { a as TelemetryBatchValidationLimits } from './transport.types-C2dP-eed.cjs';
3
3
 
4
4
  declare const DEFAULT_TELEMETRY_ADMISSION_POLICY: TelemetryAdmissionPolicy;
5
5
  declare const DEFAULT_METADATA_SNAPSHOT_LIMITS: MetadataSnapshotLimits;
@@ -338,11 +338,15 @@ var MetricDefinitionContract = class {
338
338
  if (!eventSelector || !bracket) {
339
339
  return { ok: false, error: `Invalid metric selector ${selector}` };
340
340
  }
341
+ const groupBy = bracket === "*" ? [] : bracket.split(",").map((field) => field.trim());
342
+ if (groupBy.some((field) => field.length === 0)) {
343
+ return { ok: false, error: `Invalid metric selector ${selector}` };
344
+ }
341
345
  return {
342
346
  ok: true,
343
347
  value: {
344
348
  selector: eventSelector,
345
- groupBy: bracket === "*" ? [] : [bracket],
349
+ groupBy,
346
350
  wildcardUngrouped: bracket === "*"
347
351
  }
348
352
  };
@@ -1381,6 +1385,14 @@ var TelemetryBatchRouter = class {
1381
1385
  };
1382
1386
 
1383
1387
  // src/core/telemetry_client.ts
1388
+ var TELEMETRY_LEVEL_RANKS = Object.freeze({
1389
+ trace: 0,
1390
+ debug: 1,
1391
+ info: 2,
1392
+ warn: 3,
1393
+ error: 4,
1394
+ fatal: 5
1395
+ });
1384
1396
  var TelemetryClient = class {
1385
1397
  constructor(options) {
1386
1398
  this.options = options;
@@ -1443,6 +1455,10 @@ var TelemetryClient = class {
1443
1455
  return { kind: "dropped", producerId: this.options.producerId, sequence, reason: "invalid-label" };
1444
1456
  }
1445
1457
  const priority = this.priorityFor(input.level);
1458
+ if (!this.meetsMinimumLevel(input.level)) {
1459
+ this.incrementDrop("sampled", priority);
1460
+ return { kind: "dropped", producerId: this.options.producerId, sequence, reason: "below-minimum-level" };
1461
+ }
1446
1462
  if (!this.isSampled(priority)) {
1447
1463
  this.incrementDrop("sampled", priority);
1448
1464
  return { kind: "dropped", producerId: this.options.producerId, sequence, reason: "sampled" };
@@ -1823,6 +1839,15 @@ var TelemetryClient = class {
1823
1839
  const sampleRate = this.options.admission.sampleRates[priority];
1824
1840
  return sampleRate >= 1 || this.options.random() < sampleRate;
1825
1841
  }
1842
+ meetsMinimumLevel(level) {
1843
+ const minimum = this.options.admission.minimumLevel;
1844
+ if (minimum === void 0) {
1845
+ return true;
1846
+ }
1847
+ const normalized = level.trim().toLowerCase();
1848
+ const rank = TELEMETRY_LEVEL_RANKS[normalized] ?? TELEMETRY_LEVEL_RANKS.info;
1849
+ return rank >= TELEMETRY_LEVEL_RANKS[minimum];
1850
+ }
1826
1851
  isValidLabel(label) {
1827
1852
  return /^[A-Za-z0-9][A-Za-z0-9_.:-]*$/.test(label) && label.length <= 256;
1828
1853
  }