@blueking/open-telemetry 0.0.21 → 0.0.22

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 (46) hide show
  1. package/README.md +11 -25
  2. package/dist/bk-rum.global.js +2 -12
  3. package/dist/bk-rum.global.js.map +1 -1
  4. package/dist/core/config.d.ts +10 -48
  5. package/dist/core/hash.d.ts +2 -0
  6. package/dist/core/plugin.d.ts +2 -7
  7. package/dist/core/processor.d.ts +0 -20
  8. package/dist/core/runtime-context.d.ts +1 -1
  9. package/dist/core/sdk.d.ts +2 -8
  10. package/dist/core/telemetry-attributes.d.ts +1 -2
  11. package/dist/index.d.ts +3 -3
  12. package/dist/index.js +1074 -1484
  13. package/dist/index.js.map +1 -1
  14. package/dist/plugins/common.d.ts +1 -1
  15. package/dist/plugins/csp-violation.d.ts +0 -8
  16. package/dist/plugins/device.d.ts +2 -2
  17. package/dist/plugins/error.d.ts +1 -5
  18. package/dist/plugins/long-task.d.ts +1 -3
  19. package/dist/plugins/resource.d.ts +1 -0
  20. package/dist/plugins/web-vitals.d.ts +2 -7
  21. package/dist/schema/attributes.d.ts +8 -10
  22. package/dist/schema/span.d.ts +2 -0
  23. package/package.json +1 -6
  24. package/skills/bk-rum-otele/SKILL.md +12 -14
  25. package/skills/bk-rum-otele/evals/evals.json +2 -2
  26. package/skills/bk-rum-otele/references/api.md +10 -22
  27. package/skills/bk-rum-otele/references/architecture.md +38 -118
  28. package/skills/bk-rum-otele/references/capabilities.md +26 -28
  29. package/skills/bk-rum-otele/references/concepts.md +14 -106
  30. package/skills/bk-rum-otele/references/configuration.md +28 -69
  31. package/skills/bk-rum-otele/references/custom-plugin.md +10 -13
  32. package/skills/bk-rum-otele/references/data-model.md +23 -95
  33. package/skills/bk-rum-otele/references/getting-started.md +1 -1
  34. package/skills/bk-rum-otele/references/plugins-basic.md +7 -7
  35. package/skills/bk-rum-otele/references/plugins-error-security.md +4 -7
  36. package/skills/bk-rum-otele/references/plugins-experience.md +8 -9
  37. package/skills/bk-rum-otele/references/plugins-network.md +19 -128
  38. package/skills/bk-rum-otele/references/plugins.md +3 -3
  39. package/skills/bk-rum-otele/references/privacy.md +4 -25
  40. package/skills/bk-rum-otele/references/telemetry-reference.md +49 -279
  41. package/skills/bk-rum-otele/references/transport-sampling.md +15 -50
  42. package/skills/bk-rum-otele/references/troubleshooting.md +7 -34
  43. package/dist/core/metric.d.ts +0 -2
  44. package/dist/core/signal.d.ts +0 -3
  45. package/dist/core/throttle.d.ts +0 -20
  46. package/dist/plugins/request-body.d.ts +0 -15
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @blueking/open-telemetry
2
2
 
3
- 面向浏览器真实用户监控(RUM)的 OpenTelemetry SDK。它把 Session、View、Fetch/XHR、静态资源、错误、Web Vitals、用户操作、白屏、Long Task、WebSocket、CSP 和设备信息统一为 Trace、Metric、Log,并通过 OTLP HTTP 上报。
3
+ 面向浏览器真实用户监控(RUM)的 OpenTelemetry SDK。它把 Session、View、Fetch/XHR、静态资源、错误、Web Vitals、用户操作、白屏、Long Task、WebSocket、CSP 和设备信息统一为原始 RUM Span,并通过 OTLP HTTP 上报。计数、分位数、错误分组等聚合全部由服务端完成。
4
4
 
5
5
  ## 快速接入
6
6
 
@@ -32,15 +32,7 @@ export const bkOT = new BkOpenTelemetry({
32
32
  });
33
33
  ```
34
34
 
35
- `application.name` 与 `transport` 必填。根 `transport.endpoint` 会生成三个上报地址:
36
-
37
- | 信号 | 默认地址 | 主要用途 |
38
- | --- | --- | --- |
39
- | Trace | `<endpoint>/v1/rum` | View、请求、资源、错误、性能、Action |
40
- | Metric | `<endpoint>/v1/metrics` | Web Vitals、View Loading、白屏、Long Task、WebSocket 聚合 |
41
- | Log | `<endpoint>/v1/logs` | Session 生命周期、View Snapshot、请求 Body、WebSocket 事件 |
42
-
43
- 也可以为 `transport.signals.traces|metrics|logs.endpoint` 分别提供完整 URL,或把不需要的信号设为 `false`。至少要启用一种信号。
35
+ `application.name` 与 `transport.endpoint` 必填。SDK 只有一个上报地址:`<endpoint>/v1/rum`。不创建 OpenTelemetry Metric/Log Provider,也不采集请求/响应 Body。
44
36
 
45
37
  ## 默认能力
46
38
 
@@ -48,13 +40,13 @@ export const bkOT = new BkOpenTelemetry({
48
40
 
49
41
  | 能力 | 默认 | 产出 |
50
42
  | --- | --- | --- |
51
- | Session / View | 开启且不可关闭 | `session.*` Log、`browser.view` Span/Log/Metric、运行时关联字段 |
52
- | Fetch / XHR | 开启 | `browser.resource` CLIENT Span,可选 `traceparent` 与 Body Log |
43
+ | Session / View | 开启且不可关闭 | `browser.session`、`browser.view` 生命周期 Span 与运行时关联字段 |
44
+ | Fetch / XHR | 开启 | `browser.resource` CLIENT Span,可选 `traceparent` |
53
45
  | 静态资源 | 开启 | `browser.resource` Span、网络阶段属性 |
54
46
  | Error | 开启 | JS、Promise、资源加载错误 Span |
55
- | Web Vitals | 开启 | CLS/FCP/INP/LCP/TTFB Span 与 Metric |
56
- | Action | 开启 | 点击活动、耗时、关联计数和挫败信号 Span |
57
- | Blank Screen | 开启 | 白屏 Span 与 Counter |
47
+ | Web Vitals | 开启 | CLS/FCP/INP/LCP/TTFB 原始 Span |
48
+ | Action | 开启 | 点击耗时和挫败信号 Span,不上报关联计数 |
49
+ | Blank Screen | 开启 | 白屏 Span |
58
50
  | Device | 开启 | 浏览器、OS、硬件 Resource 属性,以及设备 ID、屏幕、网络运行时属性 |
59
51
  | Long Task / WebSocket / CSP | 关闭 | 按需通过 `tracking` 开启 |
60
52
 
@@ -72,13 +64,8 @@ const bkOT = new BkOpenTelemetry({
72
64
  transport: {
73
65
  endpoint: 'https://rum-collector.example.com',
74
66
  token: 'report-token',
75
- signals: {
76
- traces: {
77
- processor: 'batch',
78
- batch: { maxQueueSize: 2048, maxExportBatchSize: 512 },
79
- },
80
- metrics: { intervalMillis: 60_000 },
81
- },
67
+ processor: 'batch',
68
+ batch: { maxQueueSize: 2048, maxExportBatchSize: 512 },
82
69
  },
83
70
  session: { sampleRate: 0.2 },
84
71
  tracking: {
@@ -96,7 +83,6 @@ const bkOT = new BkOpenTelemetry({
96
83
  user: { id: window.USER_ID },
97
84
  attributes: {
98
85
  page: () => ({ 'biz.module': 'order' }),
99
- metric: () => ({ 'biz.app': 'order-center' }),
100
86
  },
101
87
  },
102
88
  privacy: {
@@ -113,7 +99,7 @@ const bkOT = new BkOpenTelemetry({
113
99
 
114
100
  1. `getPathGroup` 已把动态 ID 转成低基数路由模板。
115
101
  2. 跨域 Trace Header 白名单足够精确,服务端 CORS 已放行 `traceparent`。
116
- 3. `user.id`、URL、错误和业务属性满足隐私要求;HTTP Body 默认保持关闭。
102
+ 3. `user.id`、URL、错误和业务属性满足隐私要求;SDK 不采集 HTTP Body。
117
103
  4. SPA 的 `blankScreen.rootSelector` 指向真实挂载节点。
118
104
  5. 同一页面只运行一个实例,避免重复 patch Fetch/XHR/WebSocket。
119
105
 
@@ -158,7 +144,7 @@ bkOT.startView({ name: '订单详情', url: location.href });
158
144
  | 理解初始化、插件顺序、上下文、过滤和上报数据流 | [架构与数据流](./wikis/architecture.md) |
159
145
  | 查完整配置、默认值和约束 | [配置参考](./wikis/configuration.md) |
160
146
  | 查公开方法与导出符号 | [API 参考](./wikis/api.md) |
161
- | 查精确 Span / Metric / Log 名和字段 | [遥测参考](./wikis/telemetry-reference.md) |
147
+ | 查精确 RUM Span 名和字段 | [遥测参考](./wikis/telemetry-reference.md) |
162
148
  | 隐私、Consent 和低基数字段 | [隐私与公共属性](./wikis/privacy-attributes.md) |
163
149
  | 没有数据或数据异常 | [调试与排障](./wikis/troubleshooting.md) |
164
150