@lark-apaas/observable 1.0.4-alpha.3 → 1.0.4-alpha.5
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 +63 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +64 -97
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -520,20 +520,20 @@ var require_errorContext = __commonJS({
|
|
|
520
520
|
});
|
|
521
521
|
exports$1.captureError = exports$1.errorContext = void 0;
|
|
522
522
|
var config_1 = require_config();
|
|
523
|
-
var
|
|
523
|
+
var context4 = null;
|
|
524
524
|
function errorContext(cb) {
|
|
525
525
|
if (config_1.config.useDeprecatedSynchronousErrorHandling) {
|
|
526
|
-
var isRoot = !
|
|
526
|
+
var isRoot = !context4;
|
|
527
527
|
if (isRoot) {
|
|
528
|
-
|
|
528
|
+
context4 = {
|
|
529
529
|
errorThrown: false,
|
|
530
530
|
error: null
|
|
531
531
|
};
|
|
532
532
|
}
|
|
533
533
|
cb();
|
|
534
534
|
if (isRoot) {
|
|
535
|
-
var _a =
|
|
536
|
-
|
|
535
|
+
var _a = context4, errorThrown = _a.errorThrown, error = _a.error;
|
|
536
|
+
context4 = null;
|
|
537
537
|
if (errorThrown) {
|
|
538
538
|
throw error;
|
|
539
539
|
}
|
|
@@ -545,9 +545,9 @@ var require_errorContext = __commonJS({
|
|
|
545
545
|
__name(errorContext, "errorContext");
|
|
546
546
|
exports$1.errorContext = errorContext;
|
|
547
547
|
function captureError(err) {
|
|
548
|
-
if (config_1.config.useDeprecatedSynchronousErrorHandling &&
|
|
549
|
-
|
|
550
|
-
|
|
548
|
+
if (config_1.config.useDeprecatedSynchronousErrorHandling && context4) {
|
|
549
|
+
context4.errorThrown = true;
|
|
550
|
+
context4.error = err;
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
__name(captureError, "captureError");
|
|
@@ -8844,7 +8844,7 @@ __name(hrTimeToNanosNumber, "hrTimeToNanosNumber");
|
|
|
8844
8844
|
|
|
8845
8845
|
// package.json
|
|
8846
8846
|
var package_default = {
|
|
8847
|
-
version: "1.0.4-alpha.
|
|
8847
|
+
version: "1.0.4-alpha.4"};
|
|
8848
8848
|
|
|
8849
8849
|
// src/const.ts
|
|
8850
8850
|
var AppEnv = /* @__PURE__ */ (function(AppEnv2) {
|
|
@@ -8876,57 +8876,6 @@ function convertAttributesToString(attributes) {
|
|
|
8876
8876
|
}
|
|
8877
8877
|
__name(convertAttributesToString, "convertAttributesToString");
|
|
8878
8878
|
|
|
8879
|
-
// src/core/sniping-config.ts
|
|
8880
|
-
var SnipingConfigManager = class _SnipingConfigManager {
|
|
8881
|
-
static {
|
|
8882
|
-
__name(this, "SnipingConfigManager");
|
|
8883
|
-
}
|
|
8884
|
-
static CONFIG_HEADER_NAME = "x-force-observability-pointkill";
|
|
8885
|
-
static config = {
|
|
8886
|
-
logs: {
|
|
8887
|
-
modules: []
|
|
8888
|
-
},
|
|
8889
|
-
traces: {
|
|
8890
|
-
modules: []
|
|
8891
|
-
},
|
|
8892
|
-
metrics: {
|
|
8893
|
-
modules: []
|
|
8894
|
-
}
|
|
8895
|
-
};
|
|
8896
|
-
static getConfig() {
|
|
8897
|
-
return _SnipingConfigManager.config;
|
|
8898
|
-
}
|
|
8899
|
-
static setConfig(configStr) {
|
|
8900
|
-
console.log("configStr", configStr);
|
|
8901
|
-
if (!configStr) return;
|
|
8902
|
-
try {
|
|
8903
|
-
const res = JSON.parse(configStr);
|
|
8904
|
-
const { logs: logs2, traces, metrics } = res ?? {};
|
|
8905
|
-
if (res) {
|
|
8906
|
-
_SnipingConfigManager.config = {
|
|
8907
|
-
logs: {
|
|
8908
|
-
modules: Array.isArray(logs2?.modules) ? logs2.modules : []
|
|
8909
|
-
},
|
|
8910
|
-
traces: {
|
|
8911
|
-
modules: Array.isArray(traces?.modules) ? traces.modules : []
|
|
8912
|
-
},
|
|
8913
|
-
metrics: {
|
|
8914
|
-
modules: Array.isArray(metrics?.modules) ? metrics.modules : []
|
|
8915
|
-
}
|
|
8916
|
-
};
|
|
8917
|
-
}
|
|
8918
|
-
} catch (error) {
|
|
8919
|
-
console.error("Failed to parse sniping config:", error);
|
|
8920
|
-
}
|
|
8921
|
-
}
|
|
8922
|
-
static updateFromHeaders(headers) {
|
|
8923
|
-
const snipingConfig = headers[_SnipingConfigManager.CONFIG_HEADER_NAME] || headers[_SnipingConfigManager.CONFIG_HEADER_NAME.toLowerCase()];
|
|
8924
|
-
if (snipingConfig) {
|
|
8925
|
-
_SnipingConfigManager.setConfig(snipingConfig);
|
|
8926
|
-
}
|
|
8927
|
-
}
|
|
8928
|
-
};
|
|
8929
|
-
|
|
8930
8879
|
// src/core/log-exporter.ts
|
|
8931
8880
|
var CustomExporter = class {
|
|
8932
8881
|
static {
|
|
@@ -8937,19 +8886,12 @@ var CustomExporter = class {
|
|
|
8937
8886
|
constructor() {
|
|
8938
8887
|
}
|
|
8939
8888
|
export(logs2, resultCallback) {
|
|
8940
|
-
const
|
|
8941
|
-
console.log("snipingConfig", snipingConfig);
|
|
8942
|
-
if (snipingConfig.logs.modules.includes("*")) {
|
|
8943
|
-
resultCallback({
|
|
8944
|
-
code: core.ExportResultCode.SUCCESS
|
|
8945
|
-
});
|
|
8946
|
-
return;
|
|
8947
|
-
}
|
|
8889
|
+
const pointKillConfig = api.context.active().getValue(POINT_KILL_TAG);
|
|
8948
8890
|
const filteredLogs = logs2.filter((log) => {
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8891
|
+
if (!pointKillConfig) return true;
|
|
8892
|
+
const moduleName = log.attributes?.module;
|
|
8893
|
+
if (pointKillConfig.logs?.modules?.includes("*")) return false;
|
|
8894
|
+
if (moduleName && pointKillConfig.logs?.modules?.includes(moduleName)) return false;
|
|
8953
8895
|
return true;
|
|
8954
8896
|
});
|
|
8955
8897
|
if (filteredLogs.length === 0) {
|
|
@@ -8969,19 +8911,23 @@ var CustomExporter = class {
|
|
|
8969
8911
|
...defaultResourceAttr
|
|
8970
8912
|
}
|
|
8971
8913
|
},
|
|
8972
|
-
logRecords: filteredLogs.map((log) =>
|
|
8973
|
-
|
|
8974
|
-
observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
|
|
8975
|
-
severityNumber: log.severityNumber,
|
|
8976
|
-
severityText: log.severityText,
|
|
8977
|
-
body: log.body,
|
|
8978
|
-
attributes: convertAttributesToString({
|
|
8914
|
+
logRecords: filteredLogs.map((log) => {
|
|
8915
|
+
const rawAttributes = {
|
|
8979
8916
|
...defaultAttributes,
|
|
8980
8917
|
...log.attributes ?? {}
|
|
8981
|
-
}
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8918
|
+
};
|
|
8919
|
+
delete rawAttributes["__point_kill_logs"];
|
|
8920
|
+
return {
|
|
8921
|
+
timeUnixNano: hrTimeToNanosNumber(log.hrTime),
|
|
8922
|
+
observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
|
|
8923
|
+
severityNumber: log.severityNumber,
|
|
8924
|
+
severityText: log.severityText,
|
|
8925
|
+
body: log.body,
|
|
8926
|
+
attributes: convertAttributesToString(rawAttributes),
|
|
8927
|
+
traceID: log.spanContext?.traceId,
|
|
8928
|
+
spanID: log.spanContext?.spanId
|
|
8929
|
+
};
|
|
8930
|
+
})
|
|
8985
8931
|
};
|
|
8986
8932
|
console.log(this.logPrefix + JSON.stringify(otlpLikeStructure) + this.logSuffix);
|
|
8987
8933
|
resultCallback({
|
|
@@ -9028,25 +8974,17 @@ var CustomTraceExporter = class {
|
|
|
9028
8974
|
tracePrefix = "force-trace-prefix";
|
|
9029
8975
|
traceSuffix = "force-trace-suffix";
|
|
9030
8976
|
export(spans, resultCallback) {
|
|
9031
|
-
const snipingConfig = SnipingConfigManager.getConfig();
|
|
9032
|
-
console.log("snipingConfig", snipingConfig);
|
|
9033
|
-
if (snipingConfig.traces.modules.includes("*")) {
|
|
9034
|
-
resultCallback({
|
|
9035
|
-
code: core.ExportResultCode.SUCCESS
|
|
9036
|
-
});
|
|
9037
|
-
return;
|
|
9038
|
-
}
|
|
9039
8977
|
const isDev = process.env.NODE_ENV === "development";
|
|
9040
8978
|
const defaultAttributes = {
|
|
9041
8979
|
uuid: idGenerator.generateTraceId(),
|
|
9042
8980
|
app_env: isDev ? AppEnv.Dev : AppEnv.Prod
|
|
9043
8981
|
};
|
|
9044
8982
|
const finalSpans = spans.filter((span) => {
|
|
8983
|
+
const pointKillConfig = api.context.active().getValue(POINT_KILL_TAG);
|
|
9045
8984
|
if ((span.attributes ?? {})[TraceDropToken]) return false;
|
|
9046
|
-
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
}
|
|
8985
|
+
if (pointKillConfig?.traces?.modules?.includes("*")) return false;
|
|
8986
|
+
const moduleName = span.attributes?.module;
|
|
8987
|
+
if (moduleName && pointKillConfig?.traces?.modules?.includes(moduleName)) return false;
|
|
9050
8988
|
return true;
|
|
9051
8989
|
});
|
|
9052
8990
|
if (!finalSpans.length) {
|
|
@@ -9095,7 +9033,36 @@ function isObservable(input) {
|
|
|
9095
9033
|
}
|
|
9096
9034
|
__name(isObservable, "isObservable");
|
|
9097
9035
|
|
|
9036
|
+
// src/utils/getSnippingConfig.ts
|
|
9037
|
+
function processSnipConfig(configStr) {
|
|
9038
|
+
if (!configStr) return;
|
|
9039
|
+
try {
|
|
9040
|
+
const res = JSON.parse(configStr);
|
|
9041
|
+
const { logs: logs2, traces, metrics } = res ?? {};
|
|
9042
|
+
if (res) {
|
|
9043
|
+
return {
|
|
9044
|
+
logs: {
|
|
9045
|
+
modules: Array.isArray(logs2?.modules) ? logs2.modules : []
|
|
9046
|
+
},
|
|
9047
|
+
traces: {
|
|
9048
|
+
modules: Array.isArray(traces?.modules) ? traces.modules : []
|
|
9049
|
+
},
|
|
9050
|
+
metrics: {
|
|
9051
|
+
modules: Array.isArray(metrics?.modules) ? metrics.modules : []
|
|
9052
|
+
}
|
|
9053
|
+
};
|
|
9054
|
+
} else {
|
|
9055
|
+
return void 0;
|
|
9056
|
+
}
|
|
9057
|
+
} catch (error) {
|
|
9058
|
+
console.error("Failed to parse sniping config:", error);
|
|
9059
|
+
return void 0;
|
|
9060
|
+
}
|
|
9061
|
+
}
|
|
9062
|
+
__name(processSnipConfig, "processSnipConfig");
|
|
9063
|
+
|
|
9098
9064
|
// src/core/sdk.ts
|
|
9065
|
+
var POINT_KILL_TAG = /* @__PURE__ */ Symbol("__point_kill");
|
|
9099
9066
|
var AppOTelSDK = class _AppOTelSDK {
|
|
9100
9067
|
static {
|
|
9101
9068
|
__name(this, "AppOTelSDK");
|
|
@@ -9136,13 +9103,13 @@ var AppOTelSDK = class _AppOTelSDK {
|
|
|
9136
9103
|
* wrapper 形式
|
|
9137
9104
|
*/
|
|
9138
9105
|
startContext(headers, name, fn) {
|
|
9139
|
-
SnipingConfigManager.updateFromHeaders(headers);
|
|
9140
9106
|
const carrier = {};
|
|
9141
9107
|
const customTraceId = headers["rpc-persist-apaas-observability-trace"];
|
|
9142
9108
|
if (customTraceId && _AppOTelSDK.CUSTOM_FORMAT_REGEX.test(customTraceId)) {
|
|
9143
9109
|
carrier["traceparent"] = `00-${customTraceId}-01`;
|
|
9144
9110
|
}
|
|
9145
9111
|
const activeContext = api.propagation.extract(api.context.active(), carrier);
|
|
9112
|
+
activeContext.setValue(POINT_KILL_TAG, processSnipConfig(headers["x-force-observability-pointkill"]));
|
|
9146
9113
|
const tracer = api.trace.getTracer("app-core");
|
|
9147
9114
|
tracer.startActiveSpan(name, {}, activeContext, (span) => {
|
|
9148
9115
|
fn(span);
|