@lark-apaas/observable-web 1.0.2-alpha.1 → 1.0.2-alpha.10

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/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ declare class WebObservableSdk {
27
27
  private resource;
28
28
  private config;
29
29
  private isStarted;
30
+ private counterCache;
30
31
  static EmptySpan: Span;
31
32
  static timeOffset: number;
32
33
  constructor();
package/dist/index.js CHANGED
@@ -7,9 +7,16 @@ var sdkLogs = require('@opentelemetry/sdk-logs');
7
7
  var sdkMetrics = require('@opentelemetry/sdk-metrics');
8
8
  var sdkTraceWeb = require('@opentelemetry/sdk-trace-web');
9
9
  var sdkTraceBase = require('@opentelemetry/sdk-trace-base');
10
+ var StackTrace = require('stacktrace-js');
10
11
  var core = require('@opentelemetry/core');
11
12
 
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var StackTrace__default = /*#__PURE__*/_interopDefault(StackTrace);
16
+
12
17
  var __defProp = Object.defineProperty;
18
+ var __defProps = Object.defineProperties;
19
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
13
20
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
14
21
  var __hasOwnProp = Object.prototype.hasOwnProperty;
15
22
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -25,6 +32,7 @@ var __spreadValues = (a, b) => {
25
32
  }
26
33
  return a;
27
34
  };
35
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
28
36
  var __async = (__this, __arguments, generator) => {
29
37
  return new Promise((resolve, reject) => {
30
38
  var fulfilled = (value) => {
@@ -768,10 +776,10 @@ var TraceAPI = (
768
776
  }
769
777
  return this._instance;
770
778
  };
771
- TraceAPI2.prototype.setGlobalTracerProvider = function(provider2) {
779
+ TraceAPI2.prototype.setGlobalTracerProvider = function(provider) {
772
780
  var success = registerGlobal(API_NAME3, this._proxyTracerProvider, DiagAPI.instance());
773
781
  if (success) {
774
- this._proxyTracerProvider.setDelegate(provider2);
782
+ this._proxyTracerProvider.setDelegate(provider);
775
783
  }
776
784
  return success;
777
785
  };
@@ -794,7 +802,7 @@ var trace = TraceAPI.getInstance();
794
802
 
795
803
  // package.json
796
804
  var package_default = {
797
- version: "1.0.2-alpha.0"};
805
+ version: "1.0.2-alpha.10"};
798
806
 
799
807
  // src/const.ts
800
808
  var defaultResourceAttr = {
@@ -1078,7 +1086,11 @@ var PvInstrumentation = class {
1078
1086
  referrer: document.referrer
1079
1087
  });
1080
1088
  };
1081
- window.addEventListener("load", reportPv);
1089
+ if (document.readyState === "complete") {
1090
+ reportPv();
1091
+ } else {
1092
+ window.addEventListener("load", reportPv);
1093
+ }
1082
1094
  window.addEventListener("popstate", reportPv);
1083
1095
  this.patchHistory("pushState", reportPv);
1084
1096
  this.patchHistory("replaceState", reportPv);
@@ -1274,14 +1286,24 @@ var CustomWebTraceExporter = class {
1274
1286
  }
1275
1287
  };
1276
1288
 
1289
+ // src/utils/stackTrace.ts
1290
+ var mapStacktrace = (stacktrace) => stacktrace.map(
1291
+ (frame) => {
1292
+ var _a, _b;
1293
+ return {
1294
+ fileName: ((_b = (_a = frame.fileName) == null ? void 0 : _a.split("/")) == null ? void 0 : _b.pop()) || "",
1295
+ line: frame.lineNumber || 0,
1296
+ column: frame.columnNumber || 0
1297
+ };
1298
+ }
1299
+ );
1300
+
1277
1301
  // src/core/sdk.ts
1278
- var provider = new sdkTraceWeb.WebTracerProvider();
1279
- provider.register({
1280
- contextManager: new contextZone.ZoneContextManager()
1281
- });
1302
+ var MAX_STACK_FRAMES = 50;
1282
1303
  var _WebObservableSdk = class _WebObservableSdk {
1283
1304
  constructor() {
1284
1305
  this.isStarted = false;
1306
+ this.counterCache = /* @__PURE__ */ new Map();
1285
1307
  }
1286
1308
  static get instance() {
1287
1309
  if (!this._instance) {
@@ -1365,7 +1387,9 @@ var _WebObservableSdk = class _WebObservableSdk {
1365
1387
  })
1366
1388
  ]
1367
1389
  });
1368
- this.tracerProvider.register();
1390
+ this.tracerProvider.register({
1391
+ contextManager: new contextZone.ZoneContextManager()
1392
+ });
1369
1393
  this.tracer = this.tracerProvider.getTracer("web-tracer");
1370
1394
  }
1371
1395
  initAutoPv() {
@@ -1462,12 +1486,25 @@ var _WebObservableSdk = class _WebObservableSdk {
1462
1486
  }
1463
1487
  // --- 公开 API: 日志(Log) ---
1464
1488
  log(level, message, attributes = {}, span) {
1489
+ let traceInfo = [];
1490
+ if (level === "ERROR") {
1491
+ const stacktrace = StackTrace__default.default.getSync();
1492
+ if (stacktrace && stacktrace.length > 0) {
1493
+ traceInfo = mapStacktrace(stacktrace);
1494
+ if (traceInfo.length > MAX_STACK_FRAMES) {
1495
+ traceInfo = traceInfo.slice(0, MAX_STACK_FRAMES);
1496
+ }
1497
+ }
1498
+ }
1465
1499
  try {
1466
1500
  const ctx = span ? trace.setSpan(context.active(), span) : context.active();
1501
+ if (!this.logger) return;
1467
1502
  this.logger.emit({
1468
1503
  severityText: level,
1469
1504
  body: message,
1470
- attributes,
1505
+ attributes: __spreadProps(__spreadValues({}, attributes), {
1506
+ stack: JSON.stringify(traceInfo)
1507
+ }),
1471
1508
  timestamp: _WebObservableSdk.getCalibratedDate(),
1472
1509
  context: ctx
1473
1510
  });
@@ -1477,7 +1514,12 @@ var _WebObservableSdk = class _WebObservableSdk {
1477
1514
  }
1478
1515
  // --- 公开 API: 计数器 (Metric) ---
1479
1516
  addCount(name, value = 1, attributes = {}) {
1480
- const counter = this.meter.createCounter(name);
1517
+ if (!this.meter) return;
1518
+ let counter = this.counterCache.get(name);
1519
+ if (!counter) {
1520
+ counter = this.meter.createCounter(name);
1521
+ this.counterCache.set(name, counter);
1522
+ }
1481
1523
  counter.add(value, attributes);
1482
1524
  }
1483
1525
  startSpan(name, options, spanContext) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/observable-web",
3
- "version": "1.0.2-alpha.1",
3
+ "version": "1.0.2-alpha.10",
4
4
  "description": "Observable SDK For Web",
5
5
  "main": "./dist/index.js",
6
6
  "files": [
@@ -41,4 +41,4 @@
41
41
  "react": ">=16.14.0",
42
42
  "react-dom": ">=16.14.0"
43
43
  }
44
- }
44
+ }