@kubesense/kubesense-browser-rum-core 1.0.0 → 1.3.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.
package/README.md CHANGED
@@ -1,3 +1,17 @@
1
- # `rum-core`
1
+ # @kubesense/kubesense-browser-rum-core
2
2
 
3
- Kubsesense browser RUM core utilities.
3
+ Shared RUM event-collection logic: the LifeCycle event bus, the assembly
4
+ pipeline, hooks, and the view / action / resource / error / long-task / vital
5
+ collectors.
6
+
7
+ > **Internal package.** `rum-core` has no bundled entry point of its own — it is
8
+ > consumed by [`@kubesense/kubesense-browser-rum`][rum] and
9
+ > [`@kubesense/kubesense-browser-rum-slim`][rum-slim]. You normally do **not**
10
+ > install it directly; install one of those product SDKs instead.
11
+
12
+ ## License
13
+
14
+ [Apache-2.0](https://github.com/kubesense-ai/kubesense-browser-sdk/blob/main/LICENSE)
15
+
16
+ [rum]: https://www.npmjs.com/package/@kubesense/kubesense-browser-rum
17
+ [rum-slim]: https://www.npmjs.com/package/@kubesense/kubesense-browser-rum-slim
@@ -17,7 +17,7 @@ function startDefaultContext(hooks, configuration, sdkName) {
17
17
  trace_sample_rate: (0, kubesense_browser_core_1.round)(configuration.traceSampleRate, 3),
18
18
  beta_encode_cookie_options: configuration.betaEncodeCookieOptions,
19
19
  },
20
- browser_sdk_version: (0, kubesense_browser_core_1.canUseEventBridge)() ? "1.0.0" : undefined,
20
+ browser_sdk_version: (0, kubesense_browser_core_1.canUseEventBridge)() ? "1.3.0" : undefined,
21
21
  sdk_name: sdkName,
22
22
  },
23
23
  application: {
@@ -50,11 +50,11 @@ function sampleUsingKnuthFactor(identifier, sampleRate) {
50
50
  // modulo would be incorrect. Thus, we are using BigInts here.
51
51
  //
52
52
  // Implementation in other languages:
53
- // * Go https://github.com/DataDog/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
54
- // * Python https://github.com/DataDog/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
55
- // * Ruby https://github.com/DataDog/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
56
- // * C++ https://github.com/DataDog/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
57
- // * Java https://github.com/DataDog/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
53
+ // * Go https://github.com/kubsense-ai/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
54
+ // * Python https://github.com/kubsense/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
55
+ // * Ruby https://github.com/kubsense/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
56
+ // * C++ https://github.com/kubsense/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
57
+ // * Java https://github.com/kubsense/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
58
58
  //
59
59
  // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and
60
60
  // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation
@@ -1 +1 @@
1
- {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../../../src/domain/tracing/sampler.ts"],"names":[],"mappings":";;AAIA,wCA0BC;AAGD,4DAEC;AASD,wDAwBC;AApED,8EAA+D;AAE/D,IAAI,mBAAyE,CAAA;AAE7E,SAAgB,cAAc,CAAC,SAAiB,EAAE,UAAkB;IAClE,+FAA+F;IAC/F,0CAA0C;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,mBAAmB,IAAI,SAAS,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACvE,OAAO,mBAAmB,CAAC,QAAQ,CAAA;IACrC,CAAC;IAED,IAAI,QAAiB,CAAA;IACrB,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,sFAAsF;QACtF,oEAAoE;QACpE,QAAQ,GAAG,IAAA,oCAAW,EAAC,UAAU,CAAC,CAAA;IACpC,CAAC;IACD,mBAAmB,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;IAC7C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qBAAqB;AACrB,SAAgB,wBAAwB;IACtC,mBAAmB,GAAG,SAAS,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,UAAkB;IAC3E,kBAAkB;IAClB,EAAE;IACF,0DAA0D;IAC1D,EAAE;IACF,4FAA4F;IAC5F,8DAA8D;IAC9D,EAAE;IACF,qCAAqC;IACrC,yIAAyI;IACzI,qIAAqI;IACrI,0JAA0J;IAC1J,4IAA4I;IAC5I,0MAA0M;IAC1M,EAAE;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA,CAAC,YAAY;IAC3D,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAA;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../../../src/domain/tracing/sampler.ts"],"names":[],"mappings":";;AAIA,wCA0BC;AAGD,4DAEC;AASD,wDAwBC;AApED,8EAA+D;AAE/D,IAAI,mBAAyE,CAAA;AAE7E,SAAgB,cAAc,CAAC,SAAiB,EAAE,UAAkB;IAClE,+FAA+F;IAC/F,0CAA0C;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,mBAAmB,IAAI,SAAS,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACvE,OAAO,mBAAmB,CAAC,QAAQ,CAAA;IACrC,CAAC;IAED,IAAI,QAAiB,CAAA;IACrB,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,sFAAsF;QACtF,oEAAoE;QACpE,QAAQ,GAAG,IAAA,oCAAW,EAAC,UAAU,CAAC,CAAA;IACpC,CAAC;IACD,mBAAmB,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;IAC7C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qBAAqB;AACrB,SAAgB,wBAAwB;IACtC,mBAAmB,GAAG,SAAS,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,UAAkB,EAAE,UAAkB;IAC3E,kBAAkB;IAClB,EAAE;IACF,0DAA0D;IAC1D,EAAE;IACF,4FAA4F;IAC5F,8DAA8D;IAC9D,EAAE;IACF,qCAAqC;IACrC,6IAA6I;IAC7I,sIAAsI;IACtI,2JAA2J;IAC3J,6IAA6I;IAC7I,2MAA2M;IAC3M,EAAE;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA,CAAC,YAAY;IAC3D,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAA;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC9D,CAAC"}
@@ -14,7 +14,7 @@ export function startDefaultContext(hooks, configuration, sdkName) {
14
14
  trace_sample_rate: round(configuration.traceSampleRate, 3),
15
15
  beta_encode_cookie_options: configuration.betaEncodeCookieOptions,
16
16
  },
17
- browser_sdk_version: canUseEventBridge() ? "1.0.0" : undefined,
17
+ browser_sdk_version: canUseEventBridge() ? "1.3.0" : undefined,
18
18
  sdk_name: sdkName,
19
19
  },
20
20
  application: {
@@ -45,11 +45,11 @@ export function sampleUsingKnuthFactor(identifier, sampleRate) {
45
45
  // modulo would be incorrect. Thus, we are using BigInts here.
46
46
  //
47
47
  // Implementation in other languages:
48
- // * Go https://github.com/DataDog/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
49
- // * Python https://github.com/DataDog/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
50
- // * Ruby https://github.com/DataDog/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
51
- // * C++ https://github.com/DataDog/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
52
- // * Java https://github.com/DataDog/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
48
+ // * Go https://github.com/kubsense-ai/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
49
+ // * Python https://github.com/kubsense/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
50
+ // * Ruby https://github.com/kubsense/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
51
+ // * C++ https://github.com/kubsense/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
52
+ // * Java https://github.com/kubsense/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
53
53
  //
54
54
  // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and
55
55
  // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation
@@ -1 +1 @@
1
- {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../../../src/domain/tracing/sampler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,IAAI,mBAAyE,CAAA;AAE7E,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,UAAkB;IAClE,+FAA+F;IAC/F,0CAA0C;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,mBAAmB,IAAI,SAAS,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACvE,OAAO,mBAAmB,CAAC,QAAQ,CAAA;IACrC,CAAC;IAED,IAAI,QAAiB,CAAA;IACrB,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,sFAAsF;QACtF,oEAAoE;QACpE,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC;IACD,mBAAmB,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;IAC7C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,wBAAwB;IACtC,mBAAmB,GAAG,SAAS,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,UAAkB;IAC3E,kBAAkB;IAClB,EAAE;IACF,0DAA0D;IAC1D,EAAE;IACF,4FAA4F;IAC5F,8DAA8D;IAC9D,EAAE;IACF,qCAAqC;IACrC,yIAAyI;IACzI,qIAAqI;IACrI,0JAA0J;IAC1J,4IAA4I;IAC5I,0MAA0M;IAC1M,EAAE;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA,CAAC,YAAY;IAC3D,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAA;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"sampler.js","sourceRoot":"","sources":["../../../src/domain/tracing/sampler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,IAAI,mBAAyE,CAAA;AAE7E,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,UAAkB;IAClE,+FAA+F;IAC/F,0CAA0C;IAC1C,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,mBAAmB,IAAI,SAAS,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACvE,OAAO,mBAAmB,CAAC,QAAQ,CAAA;IACrC,CAAC;IAED,IAAI,QAAiB,CAAA;IACrB,2EAA2E;IAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,sFAAsF;QACtF,oEAAoE;QACpE,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC;IACD,mBAAmB,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;IAC7C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,wBAAwB;IACtC,mBAAmB,GAAG,SAAS,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,UAAkB;IAC3E,kBAAkB;IAClB,EAAE;IACF,0DAA0D;IAC1D,EAAE;IACF,4FAA4F;IAC5F,8DAA8D;IAC9D,EAAE;IACF,qCAAqC;IACrC,6IAA6I;IAC7I,sIAAsI;IACtI,2JAA2J;IAC3J,6IAA6I;IAC7I,2MAA2M;IAC3M,EAAE;IACF,8FAA8F;IAC9F,2FAA2F;IAC3F,6FAA6F;IAC7F,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA,CAAC,YAAY;IAC3D,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAA;IAClD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubesense/kubesense-browser-rum-core",
3
- "version": "1.0.0",
3
+ "version": "1.3.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -9,7 +9,7 @@
9
9
  "build": "node ../../scripts/build/build-package.ts --modules"
10
10
  },
11
11
  "dependencies": {
12
- "@kubesense/kubesense-browser-core": "1.0.0"
12
+ "@kubesense/kubesense-browser-core": "1.3.0"
13
13
  },
14
14
  "devDependencies": {
15
15
  "ajv": "8.17.1"
@@ -25,5 +25,5 @@
25
25
  "publishConfig": {
26
26
  "access": "public"
27
27
  },
28
- "gitHead": "5cac939a4795c5a54c2b29417e6434a8a3078d4f"
28
+ "gitHead": "fd2451993d3804b27cea05504cc251a56235f0e6"
29
29
  }
@@ -48,7 +48,7 @@ export const enum LifeCycleEventType {
48
48
  // JavaScript).
49
49
  //
50
50
  // See issues:
51
- // * https://github.com/DataDog/browser-sdk/issues/2208
51
+ // * https://github.com/kubsense/kubsense-browser-sdk/issues/2208
52
52
  // * https://github.com/microsoft/TypeScript/issues/54152
53
53
  declare const LifeCycleEventTypeAsConst: {
54
54
  AUTO_ACTION_COMPLETED: LifeCycleEventType.AUTO_ACTION_COMPLETED
@@ -51,11 +51,11 @@ export function sampleUsingKnuthFactor(identifier: bigint, sampleRate: number) {
51
51
  // modulo would be incorrect. Thus, we are using BigInts here.
52
52
  //
53
53
  // Implementation in other languages:
54
- // * Go https://github.com/DataDog/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
55
- // * Python https://github.com/DataDog/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
56
- // * Ruby https://github.com/DataDog/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
57
- // * C++ https://github.com/DataDog/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
58
- // * Java https://github.com/DataDog/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
54
+ // * Go https://github.com/kubsense-ai/kubesense-trace-go/blob/ec6fbb1f2d517b7b8e69961052adf7136f3af773/ddtrace/tracer/sampler.go#L86-L91
55
+ // * Python https://github.com/kubsense/kubesense-trace-py/blob/0cee2f066fb6e79aa15947c1514c0f406dea47c5/ddtrace/sampling_rule.py#L197
56
+ // * Ruby https://github.com/kubsense/kubesense-trace-rb/blob/1a6e255cdcb7e7e22235ea5955f90f6dfa91045d/lib/kubesense/tracing/sampling/rate_sampler.rb#L42
57
+ // * C++ https://github.com/kubsense/kubesense-trace-cpp/blob/159629edc438ae45f2bb318eb7bd51abd05e94b5/src/kubesense/trace_sampler.cpp#L58
58
+ // * Java https://github.com/kubsense/kubesense-trace-java/blob/896dd6b380533216e0bdee59614606c8272d313e/kubesense-trace-core/src/main/java/kubesense/trace/common/sampling/DeterministicSampler.java#L48
59
59
  //
60
60
  // Note: All implementations have slight variations. Some of them use '<=' instead of '<', and
61
61
  // use `sampleRate * 2^64 - 1` instead of `sampleRate * 2^64`. The following implementation