@lark-apaas/observable 1.0.2 → 1.0.3-alpha.1
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.cjs +47 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +47 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -8844,7 +8844,7 @@ __name(hrTimeToNanosNumber, "hrTimeToNanosNumber");
|
|
|
8844
8844
|
|
|
8845
8845
|
// package.json
|
|
8846
8846
|
var package_default = {
|
|
8847
|
-
version: "1.0.
|
|
8847
|
+
version: "1.0.3-alpha.1"};
|
|
8848
8848
|
|
|
8849
8849
|
// src/const.ts
|
|
8850
8850
|
var AppEnv = /* @__PURE__ */ (function(AppEnv2) {
|
|
@@ -8857,6 +8857,7 @@ var defaultResourceAttr = {
|
|
|
8857
8857
|
"sdk_type": "client-backend",
|
|
8858
8858
|
"sdk_language": "node"
|
|
8859
8859
|
};
|
|
8860
|
+
var TraceDropToken = "TraceDropToken";
|
|
8860
8861
|
|
|
8861
8862
|
// src/utils/convertAllAttrIntoString.ts
|
|
8862
8863
|
var safeStringify = /* @__PURE__ */ __name((obj) => {
|
|
@@ -8960,13 +8961,15 @@ var CustomTraceExporter = class {
|
|
|
8960
8961
|
uuid: idGenerator.generateTraceId(),
|
|
8961
8962
|
app_env: isDev ? AppEnv.Dev : AppEnv.Prod
|
|
8962
8963
|
};
|
|
8964
|
+
const finalSpans = spans.filter((span) => !(span.attributes ?? {})[TraceDropToken]);
|
|
8965
|
+
if (!finalSpans.length) return;
|
|
8963
8966
|
const otlpLikeStructure = {
|
|
8964
8967
|
resource: {
|
|
8965
8968
|
attributes: {
|
|
8966
8969
|
...defaultResourceAttr
|
|
8967
8970
|
}
|
|
8968
8971
|
},
|
|
8969
|
-
spans:
|
|
8972
|
+
spans: finalSpans.map((span) => {
|
|
8970
8973
|
const rawAttributes = {
|
|
8971
8974
|
...defaultAttributes,
|
|
8972
8975
|
...span.attributes ?? {}
|
|
@@ -9038,6 +9041,7 @@ var AppOTelSDK = class _AppOTelSDK {
|
|
|
9038
9041
|
/**
|
|
9039
9042
|
* [框架专用 API] 开启一个根 Span (Root Span)
|
|
9040
9043
|
* 该方法专供 Middleware/Interceptor 使用
|
|
9044
|
+
* wrapper 形式
|
|
9041
9045
|
*/
|
|
9042
9046
|
startContext(headers, name, fn) {
|
|
9043
9047
|
const carrier = {};
|
|
@@ -9052,6 +9056,22 @@ var AppOTelSDK = class _AppOTelSDK {
|
|
|
9052
9056
|
});
|
|
9053
9057
|
}
|
|
9054
9058
|
/**
|
|
9059
|
+
* [框架专用 API] 开启一个根 Span (Root Span)
|
|
9060
|
+
* 该方法专供 Middleware/Interceptor 使用
|
|
9061
|
+
* wrapper 形式
|
|
9062
|
+
*/
|
|
9063
|
+
startRootTrace(headers, name) {
|
|
9064
|
+
const carrier = {};
|
|
9065
|
+
const customTraceId = headers["rpc-persist-apaas-observability-trace"];
|
|
9066
|
+
if (customTraceId && _AppOTelSDK.CUSTOM_FORMAT_REGEX.test(customTraceId)) {
|
|
9067
|
+
carrier["traceparent"] = `00-${customTraceId}-01`;
|
|
9068
|
+
}
|
|
9069
|
+
const activeContext = api.propagation.extract(api.context.active(), carrier);
|
|
9070
|
+
const tracer = api.trace.getTracer("app-core");
|
|
9071
|
+
const rootSpan = tracer.startSpan(name, {}, activeContext);
|
|
9072
|
+
return rootSpan;
|
|
9073
|
+
}
|
|
9074
|
+
/**
|
|
9055
9075
|
* [用户专用 API] 手动打点 (Child Span)
|
|
9056
9076
|
* 用户在 Service 中调用此方法,会自动挂载到 Middleware 创建的 Root Span 下
|
|
9057
9077
|
*/
|
|
@@ -9105,6 +9125,31 @@ var AppOTelSDK = class _AppOTelSDK {
|
|
|
9105
9125
|
});
|
|
9106
9126
|
}
|
|
9107
9127
|
/**
|
|
9128
|
+
* 启动 Span 的工厂函数
|
|
9129
|
+
* @param {string} name - Span 名称
|
|
9130
|
+
* @param {Object} [parentSpan] - (可选) 父 Span 对象
|
|
9131
|
+
*/
|
|
9132
|
+
startTrace(name, parentSpan) {
|
|
9133
|
+
try {
|
|
9134
|
+
const tracer = api.trace.getTracer("app-core");
|
|
9135
|
+
let ctx = api.context.active();
|
|
9136
|
+
if (parentSpan) {
|
|
9137
|
+
ctx = api.trace.setSpan(ctx, parentSpan);
|
|
9138
|
+
}
|
|
9139
|
+
const span = tracer.startSpan(name, void 0, ctx);
|
|
9140
|
+
return span;
|
|
9141
|
+
} catch {
|
|
9142
|
+
return _AppOTelSDK.emptySpan;
|
|
9143
|
+
}
|
|
9144
|
+
}
|
|
9145
|
+
/**
|
|
9146
|
+
* 丢弃 Span 的工厂函数
|
|
9147
|
+
* @param {Span} span - 要被丢弃的 Span 对象
|
|
9148
|
+
*/
|
|
9149
|
+
static dropTraceSpan(span) {
|
|
9150
|
+
span.setAttribute(TraceDropToken, true);
|
|
9151
|
+
}
|
|
9152
|
+
/**
|
|
9108
9153
|
* [框架专用] 强制刷新
|
|
9109
9154
|
*/
|
|
9110
9155
|
async flush() {
|