@lark-apaas/nestjs-logger 1.0.2-alpha.17 → 1.0.2-alpha.18
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 +341 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +333 -127
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -63663,10 +63663,14 @@ import { Global, Module } from "@nestjs/common";
|
|
|
63663
63663
|
// ../observable-server/dist/index.js
|
|
63664
63664
|
var import_sdk_node = __toESM(require_src12(), 1);
|
|
63665
63665
|
init_esm6();
|
|
63666
|
+
var import_sdk_trace_node = __toESM(require_src2(), 1);
|
|
63666
63667
|
init_esm5();
|
|
63668
|
+
init_esm();
|
|
63667
63669
|
init_esm4();
|
|
63668
63670
|
init_esm3();
|
|
63669
|
-
|
|
63671
|
+
init_esm4();
|
|
63672
|
+
init_esm3();
|
|
63673
|
+
init_esm();
|
|
63670
63674
|
import { randomBytes } from "crypto";
|
|
63671
63675
|
var __defProp = Object.defineProperty;
|
|
63672
63676
|
var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name", {
|
|
@@ -63729,6 +63733,11 @@ var AppEnv = /* @__PURE__ */ (function(AppEnv2) {
|
|
|
63729
63733
|
AppEnv2["Prod"] = "runtime";
|
|
63730
63734
|
return AppEnv2;
|
|
63731
63735
|
})({});
|
|
63736
|
+
var defaultResourceAttr = {
|
|
63737
|
+
"sdk_version": "1.0.1-alpha.18",
|
|
63738
|
+
"sdk_type": "client-backend",
|
|
63739
|
+
"sdk_language": "node"
|
|
63740
|
+
};
|
|
63732
63741
|
var safeStringify = /* @__PURE__ */ __name2((obj) => {
|
|
63733
63742
|
try {
|
|
63734
63743
|
return JSON.stringify(obj);
|
|
@@ -63745,19 +63754,6 @@ function convertAttributesToString(attributes) {
|
|
|
63745
63754
|
}
|
|
63746
63755
|
__name(convertAttributesToString, "convertAttributesToString");
|
|
63747
63756
|
__name2(convertAttributesToString, "convertAttributesToString");
|
|
63748
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
63749
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
63750
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
63751
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
63752
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
63753
|
-
}
|
|
63754
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
63755
|
-
__name2(_ts_decorate, "_ts_decorate");
|
|
63756
|
-
function _ts_metadata(k, v) {
|
|
63757
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
63758
|
-
}
|
|
63759
|
-
__name(_ts_metadata, "_ts_metadata");
|
|
63760
|
-
__name2(_ts_metadata, "_ts_metadata");
|
|
63761
63757
|
var CustomExporter = class {
|
|
63762
63758
|
static {
|
|
63763
63759
|
__name(this, "CustomExporter");
|
|
@@ -63775,30 +63771,145 @@ var CustomExporter = class {
|
|
|
63775
63771
|
uuid: idGenerator.generateTraceId(),
|
|
63776
63772
|
app_env: isDev ? AppEnv.Dev : AppEnv.Prod
|
|
63777
63773
|
};
|
|
63778
|
-
const
|
|
63779
|
-
|
|
63780
|
-
|
|
63781
|
-
attributes
|
|
63782
|
-
}
|
|
63783
|
-
|
|
63784
|
-
|
|
63785
|
-
|
|
63786
|
-
|
|
63787
|
-
|
|
63788
|
-
|
|
63789
|
-
|
|
63790
|
-
|
|
63791
|
-
|
|
63792
|
-
|
|
63793
|
-
|
|
63794
|
-
|
|
63795
|
-
|
|
63796
|
-
|
|
63797
|
-
|
|
63798
|
-
|
|
63799
|
-
|
|
63774
|
+
const otlpLikeStructures = logs2.map((log) => {
|
|
63775
|
+
const rawAttributes = {
|
|
63776
|
+
...defaultAttributes,
|
|
63777
|
+
...log.attributes ?? {}
|
|
63778
|
+
};
|
|
63779
|
+
const attributes = convertAttributesToString(rawAttributes);
|
|
63780
|
+
return {
|
|
63781
|
+
resource: {
|
|
63782
|
+
attributes: {
|
|
63783
|
+
...defaultResourceAttr
|
|
63784
|
+
}
|
|
63785
|
+
},
|
|
63786
|
+
logRecords: [
|
|
63787
|
+
{
|
|
63788
|
+
timeUnixNano: hrTimeToNanosNumber(log.hrTime),
|
|
63789
|
+
observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
|
|
63790
|
+
severityNumber: log.severityNumber,
|
|
63791
|
+
severityText: log.severityText,
|
|
63792
|
+
body: log.body,
|
|
63793
|
+
attributes,
|
|
63794
|
+
traceId: log.spanContext?.traceId,
|
|
63795
|
+
spanId: log.spanContext?.spanId
|
|
63796
|
+
}
|
|
63797
|
+
]
|
|
63798
|
+
};
|
|
63799
|
+
});
|
|
63800
|
+
otlpLikeStructures.forEach((structure) => {
|
|
63801
|
+
console.log(this.logPrefix + JSON.stringify(structure) + this.logSuffix);
|
|
63802
|
+
});
|
|
63803
|
+
resultCallback({
|
|
63804
|
+
code: ExportResultCode.SUCCESS
|
|
63805
|
+
});
|
|
63806
|
+
}
|
|
63807
|
+
async shutdown() {
|
|
63808
|
+
}
|
|
63809
|
+
};
|
|
63810
|
+
function mapSeverity(level) {
|
|
63811
|
+
switch (level.toLowerCase()) {
|
|
63812
|
+
case "trace":
|
|
63813
|
+
return SeverityNumber.TRACE;
|
|
63814
|
+
case "debug":
|
|
63815
|
+
return SeverityNumber.DEBUG;
|
|
63816
|
+
case "info":
|
|
63817
|
+
return SeverityNumber.INFO;
|
|
63818
|
+
case "warn":
|
|
63819
|
+
return SeverityNumber.WARN;
|
|
63820
|
+
case "error":
|
|
63821
|
+
return SeverityNumber.ERROR;
|
|
63822
|
+
case "fatal":
|
|
63823
|
+
return SeverityNumber.FATAL;
|
|
63824
|
+
default:
|
|
63825
|
+
return SeverityNumber.INFO;
|
|
63826
|
+
}
|
|
63827
|
+
}
|
|
63828
|
+
__name(mapSeverity, "mapSeverity");
|
|
63829
|
+
__name2(mapSeverity, "mapSeverity");
|
|
63830
|
+
function mapSeverityText(level) {
|
|
63831
|
+
switch (level.toLowerCase()) {
|
|
63832
|
+
case "trace":
|
|
63833
|
+
return "INFO";
|
|
63834
|
+
case "debug":
|
|
63835
|
+
return "DEBUG";
|
|
63836
|
+
case "info":
|
|
63837
|
+
return "INFO";
|
|
63838
|
+
case "warn":
|
|
63839
|
+
return "WARN";
|
|
63840
|
+
case "error":
|
|
63841
|
+
return "ERROR";
|
|
63842
|
+
case "fatal":
|
|
63843
|
+
return "ERROR";
|
|
63844
|
+
default:
|
|
63845
|
+
return "INFO";
|
|
63846
|
+
}
|
|
63847
|
+
}
|
|
63848
|
+
__name(mapSeverityText, "mapSeverityText");
|
|
63849
|
+
__name2(mapSeverityText, "mapSeverityText");
|
|
63850
|
+
var CustomTraceExporter = class {
|
|
63851
|
+
static {
|
|
63852
|
+
__name(this, "CustomTraceExporter");
|
|
63853
|
+
}
|
|
63854
|
+
static {
|
|
63855
|
+
__name2(this, "CustomTraceExporter");
|
|
63856
|
+
}
|
|
63857
|
+
tracePrefix = "force-trace-prefix";
|
|
63858
|
+
traceSuffix = "force-trace-suffix";
|
|
63859
|
+
requestContextService;
|
|
63860
|
+
constructor(contextProvider) {
|
|
63861
|
+
this.requestContextService = contextProvider;
|
|
63862
|
+
}
|
|
63863
|
+
export(spans, resultCallback) {
|
|
63864
|
+
const isDev = process.env.NODE_ENV === "development";
|
|
63865
|
+
const defaultAttributes = {
|
|
63866
|
+
uuid: idGenerator.generateTraceId(),
|
|
63867
|
+
app_env: isDev ? AppEnv.Dev : AppEnv.Prod
|
|
63800
63868
|
};
|
|
63801
|
-
|
|
63869
|
+
const ctx = this.requestContextService.getContext();
|
|
63870
|
+
const contextAttributes = ctx ? {
|
|
63871
|
+
user_id: ctx.userId,
|
|
63872
|
+
tenant_id: ctx.tenantId,
|
|
63873
|
+
app_id: ctx.appId,
|
|
63874
|
+
method: ctx.method,
|
|
63875
|
+
path: ctx.path
|
|
63876
|
+
} : {
|
|
63877
|
+
user_id: void 0,
|
|
63878
|
+
tenant_id: void 0,
|
|
63879
|
+
app_id: void 0
|
|
63880
|
+
};
|
|
63881
|
+
const otlpLikeStructures = spans.map((span) => {
|
|
63882
|
+
const rawAttributes = {
|
|
63883
|
+
...defaultAttributes,
|
|
63884
|
+
...contextAttributes,
|
|
63885
|
+
...span.attributes ?? {}
|
|
63886
|
+
};
|
|
63887
|
+
const attributes = convertAttributesToString(rawAttributes);
|
|
63888
|
+
return {
|
|
63889
|
+
resource: {
|
|
63890
|
+
// 合并 OTel Resource(此处暂留空,真实场景可由 sdk.resource 提供)
|
|
63891
|
+
attributes: {
|
|
63892
|
+
...defaultResourceAttr
|
|
63893
|
+
}
|
|
63894
|
+
},
|
|
63895
|
+
spans: [
|
|
63896
|
+
{
|
|
63897
|
+
startTimeUnixNano: hrTimeToNanosNumber(span.startTime),
|
|
63898
|
+
endTimeUnixNano: hrTimeToNanosNumber(span.endTime),
|
|
63899
|
+
name: span.name,
|
|
63900
|
+
attributes,
|
|
63901
|
+
traceId: span.spanContext().traceId,
|
|
63902
|
+
spanId: span.spanContext().spanId,
|
|
63903
|
+
parentSpanID: span.parentSpanContext?.spanId,
|
|
63904
|
+
status: span.status,
|
|
63905
|
+
spanKind: SpanKind.SERVER
|
|
63906
|
+
}
|
|
63907
|
+
]
|
|
63908
|
+
};
|
|
63909
|
+
});
|
|
63910
|
+
otlpLikeStructures.forEach((structure) => {
|
|
63911
|
+
console.log(this.tracePrefix + JSON.stringify(structure) + this.traceSuffix);
|
|
63912
|
+
});
|
|
63802
63913
|
resultCallback({
|
|
63803
63914
|
code: ExportResultCode.SUCCESS
|
|
63804
63915
|
});
|
|
@@ -63806,20 +63917,20 @@ var CustomExporter = class {
|
|
|
63806
63917
|
async shutdown() {
|
|
63807
63918
|
}
|
|
63808
63919
|
};
|
|
63809
|
-
|
|
63810
|
-
Injectable(),
|
|
63811
|
-
_ts_metadata("design:type", Function),
|
|
63812
|
-
_ts_metadata("design:paramtypes", [])
|
|
63813
|
-
], CustomExporter);
|
|
63814
|
-
var AppOTelLoggerSDK = class {
|
|
63920
|
+
var AppOTelSDK = class _AppOTelSDK {
|
|
63815
63921
|
static {
|
|
63816
|
-
__name(this, "
|
|
63922
|
+
__name(this, "_AppOTelSDK");
|
|
63817
63923
|
}
|
|
63818
63924
|
static {
|
|
63819
|
-
__name2(this, "
|
|
63925
|
+
__name2(this, "AppOTelSDK");
|
|
63820
63926
|
}
|
|
63821
63927
|
sdk = null;
|
|
63822
63928
|
logProcessor = null;
|
|
63929
|
+
spanProcessor = null;
|
|
63930
|
+
static CUSTOM_FORMAT_REGEX = /^[0-9a-fA-F]{32}-[0-9a-fA-F]{16}$/;
|
|
63931
|
+
contextProvider = {
|
|
63932
|
+
getContext: /* @__PURE__ */ __name2(() => ({}), "getContext")
|
|
63933
|
+
};
|
|
63823
63934
|
start() {
|
|
63824
63935
|
const resource = detectResources({
|
|
63825
63936
|
detectors: [
|
|
@@ -63831,22 +63942,68 @@ var AppOTelLoggerSDK = class {
|
|
|
63831
63942
|
scheduledDelayMillis: 2e3,
|
|
63832
63943
|
maxExportBatchSize: 10
|
|
63833
63944
|
});
|
|
63945
|
+
const traceExporter = new CustomTraceExporter(this.contextProvider);
|
|
63946
|
+
this.spanProcessor = new import_sdk_trace_node.BatchSpanProcessor(traceExporter, {
|
|
63947
|
+
scheduledDelayMillis: 1e3,
|
|
63948
|
+
maxExportBatchSize: 1
|
|
63949
|
+
});
|
|
63834
63950
|
this.sdk = new import_sdk_node.NodeSDK({
|
|
63835
63951
|
resource,
|
|
63836
63952
|
logRecordProcessor: this.logProcessor,
|
|
63837
|
-
|
|
63953
|
+
spanProcessor: this.spanProcessor
|
|
63838
63954
|
});
|
|
63839
63955
|
this.sdk.start();
|
|
63840
63956
|
}
|
|
63841
63957
|
/**
|
|
63842
|
-
*
|
|
63843
|
-
*
|
|
63958
|
+
* [框架专用 API] 开启一个根 Span (Root Span)
|
|
63959
|
+
* 该方法专供 Middleware/Interceptor 使用,不建议用户直接调用
|
|
63960
|
+
*/
|
|
63961
|
+
startContext(headers, name, fn) {
|
|
63962
|
+
const carrier = {};
|
|
63963
|
+
const customTraceId = headers["x-apaas-observability"];
|
|
63964
|
+
if (customTraceId && _AppOTelSDK.CUSTOM_FORMAT_REGEX.test(customTraceId)) {
|
|
63965
|
+
carrier["traceparent"] = `00-${customTraceId}-01`;
|
|
63966
|
+
} else {
|
|
63967
|
+
carrier["traceparent"] = `00-${idGenerator.generateTraceId()}-${idGenerator.generateSpanId()}-01`;
|
|
63968
|
+
}
|
|
63969
|
+
const activeContext = propagation.extract(context.active(), carrier);
|
|
63970
|
+
const tracer = trace.getTracer("app-core");
|
|
63971
|
+
tracer.startActiveSpan(name, {}, activeContext, (span) => {
|
|
63972
|
+
fn(span);
|
|
63973
|
+
});
|
|
63974
|
+
}
|
|
63975
|
+
/**
|
|
63976
|
+
* [用户专用 API] 手动打点 (Child Span)
|
|
63977
|
+
* 用户在 Service 中调用此方法,会自动挂载到 Middleware 创建的 Root Span 下
|
|
63978
|
+
*/
|
|
63979
|
+
async trace(name, fn) {
|
|
63980
|
+
const tracer = trace.getTracer("user-trace");
|
|
63981
|
+
return tracer.startActiveSpan(name, async (span) => {
|
|
63982
|
+
try {
|
|
63983
|
+
const res = await fn(span);
|
|
63984
|
+
span.setStatus({
|
|
63985
|
+
code: SpanStatusCode.OK
|
|
63986
|
+
});
|
|
63987
|
+
return res;
|
|
63988
|
+
} catch (e) {
|
|
63989
|
+
span.recordException(e);
|
|
63990
|
+
span.setStatus({
|
|
63991
|
+
code: SpanStatusCode.ERROR
|
|
63992
|
+
});
|
|
63993
|
+
throw e;
|
|
63994
|
+
} finally {
|
|
63995
|
+
span.end();
|
|
63996
|
+
}
|
|
63997
|
+
});
|
|
63998
|
+
}
|
|
63999
|
+
/**
|
|
64000
|
+
* [Log API] 自动关联 TraceContext
|
|
63844
64001
|
*/
|
|
63845
64002
|
log(level, message, extra = {}) {
|
|
63846
64003
|
const logger2 = logs.getLogger("app-logger");
|
|
63847
|
-
const severityNumber =
|
|
63848
|
-
const severityText =
|
|
63849
|
-
const
|
|
64004
|
+
const severityNumber = mapSeverity(level);
|
|
64005
|
+
const severityText = mapSeverityText(level);
|
|
64006
|
+
const attributes = {
|
|
63850
64007
|
...extra || {},
|
|
63851
64008
|
pid: process.pid
|
|
63852
64009
|
};
|
|
@@ -63854,76 +64011,65 @@ var AppOTelLoggerSDK = class {
|
|
|
63854
64011
|
body: message,
|
|
63855
64012
|
severityNumber,
|
|
63856
64013
|
severityText,
|
|
63857
|
-
attributes
|
|
63858
|
-
timestamp: /* @__PURE__ */ new Date()
|
|
64014
|
+
attributes,
|
|
64015
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
64016
|
+
// 自动关联当前上下文
|
|
64017
|
+
context: context.active()
|
|
63859
64018
|
});
|
|
63860
64019
|
}
|
|
64020
|
+
/**
|
|
64021
|
+
* [框架专用] 强制刷新
|
|
64022
|
+
*/
|
|
63861
64023
|
async flush() {
|
|
63862
|
-
|
|
63863
|
-
|
|
63864
|
-
|
|
63865
|
-
|
|
63866
|
-
mapSeverity(level) {
|
|
63867
|
-
switch (level.toLowerCase()) {
|
|
63868
|
-
case "trace":
|
|
63869
|
-
return SeverityNumber.TRACE;
|
|
63870
|
-
case "debug":
|
|
63871
|
-
return SeverityNumber.DEBUG;
|
|
63872
|
-
case "info":
|
|
63873
|
-
return SeverityNumber.INFO;
|
|
63874
|
-
case "warn":
|
|
63875
|
-
return SeverityNumber.WARN;
|
|
63876
|
-
case "error":
|
|
63877
|
-
return SeverityNumber.ERROR;
|
|
63878
|
-
case "fatal":
|
|
63879
|
-
return SeverityNumber.FATAL;
|
|
63880
|
-
default:
|
|
63881
|
-
return SeverityNumber.INFO;
|
|
63882
|
-
}
|
|
63883
|
-
}
|
|
63884
|
-
mapSeverityText(level) {
|
|
63885
|
-
switch (level.toLowerCase()) {
|
|
63886
|
-
case "trace":
|
|
63887
|
-
return "INFO";
|
|
63888
|
-
case "debug":
|
|
63889
|
-
return "DEBUG";
|
|
63890
|
-
case "info":
|
|
63891
|
-
return "INFO";
|
|
63892
|
-
case "warn":
|
|
63893
|
-
return "WARN";
|
|
63894
|
-
case "error":
|
|
63895
|
-
return "ERROR";
|
|
63896
|
-
case "fatal":
|
|
63897
|
-
return "ERROR";
|
|
63898
|
-
default:
|
|
63899
|
-
return "INFO";
|
|
63900
|
-
}
|
|
64024
|
+
await Promise.all([
|
|
64025
|
+
this.logProcessor?.forceFlush(),
|
|
64026
|
+
this.spanProcessor?.forceFlush()
|
|
64027
|
+
]);
|
|
63901
64028
|
}
|
|
63902
64029
|
};
|
|
63903
|
-
var appSdk = new
|
|
64030
|
+
var appSdk = new AppOTelSDK();
|
|
64031
|
+
function Trace(name) {
|
|
64032
|
+
return function(target, propertyKey, descriptor) {
|
|
64033
|
+
const originalMethod = descriptor.value;
|
|
64034
|
+
if (!originalMethod) {
|
|
64035
|
+
return descriptor;
|
|
64036
|
+
}
|
|
64037
|
+
descriptor.value = async function(...args) {
|
|
64038
|
+
const spanName = name || `${target?.constructor?.name}.${String(propertyKey)}`;
|
|
64039
|
+
return await appSdk.trace(spanName, async (_) => {
|
|
64040
|
+
const result = await originalMethod.apply(this, args);
|
|
64041
|
+
return result;
|
|
64042
|
+
});
|
|
64043
|
+
};
|
|
64044
|
+
return descriptor;
|
|
64045
|
+
};
|
|
64046
|
+
}
|
|
64047
|
+
__name(Trace, "Trace");
|
|
64048
|
+
__name2(Trace, "Trace");
|
|
63904
64049
|
|
|
63905
64050
|
// ../nestjs-observable/dist/index.js
|
|
63906
64051
|
import { CommonModule } from "@lark-apaas/nestjs-common";
|
|
63907
|
-
import { Injectable
|
|
64052
|
+
import { Injectable } from "@nestjs/common";
|
|
63908
64053
|
import { RequestContextService } from "@lark-apaas/nestjs-common";
|
|
64054
|
+
import { Injectable as Injectable2 } from "@nestjs/common";
|
|
63909
64055
|
var __defProp2 = Object.defineProperty;
|
|
63910
64056
|
var __name3 = /* @__PURE__ */ __name((target, value) => __defProp2(target, "name", {
|
|
63911
64057
|
value,
|
|
63912
64058
|
configurable: true
|
|
63913
64059
|
}), "__name");
|
|
63914
|
-
function
|
|
64060
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
63915
64061
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
63916
64062
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
63917
64063
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
63918
64064
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
63919
64065
|
}
|
|
63920
|
-
__name(
|
|
63921
|
-
__name3(
|
|
63922
|
-
function
|
|
64066
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
64067
|
+
__name3(_ts_decorate, "_ts_decorate");
|
|
64068
|
+
function _ts_metadata(k, v) {
|
|
63923
64069
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
63924
64070
|
}
|
|
63925
|
-
__name(
|
|
63926
|
-
__name3(
|
|
64071
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
64072
|
+
__name3(_ts_metadata, "_ts_metadata");
|
|
63927
64073
|
var ObservableService = class {
|
|
63928
64074
|
static {
|
|
63929
64075
|
__name(this, "ObservableService");
|
|
@@ -63943,31 +64089,35 @@ var ObservableService = class {
|
|
|
63943
64089
|
...attributes
|
|
63944
64090
|
});
|
|
63945
64091
|
}
|
|
64092
|
+
/** 记录链路 */
|
|
64093
|
+
trace(name, fn) {
|
|
64094
|
+
return appSdk.trace(name, fn);
|
|
64095
|
+
}
|
|
63946
64096
|
/** 手动刷新(FaaS/请求结束时可调用) */
|
|
63947
64097
|
async flush() {
|
|
63948
64098
|
await appSdk.flush();
|
|
63949
64099
|
}
|
|
63950
64100
|
};
|
|
63951
|
-
ObservableService =
|
|
63952
|
-
|
|
63953
|
-
|
|
63954
|
-
|
|
64101
|
+
ObservableService = _ts_decorate([
|
|
64102
|
+
Injectable(),
|
|
64103
|
+
_ts_metadata("design:type", Function),
|
|
64104
|
+
_ts_metadata("design:paramtypes", [
|
|
63955
64105
|
typeof RequestContextService === "undefined" ? Object : RequestContextService
|
|
63956
64106
|
])
|
|
63957
64107
|
], ObservableService);
|
|
63958
|
-
function
|
|
64108
|
+
function _ts_decorate2(decorators, target, key, desc) {
|
|
63959
64109
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
63960
64110
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
63961
64111
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
63962
64112
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
63963
64113
|
}
|
|
63964
|
-
__name(
|
|
63965
|
-
__name3(
|
|
63966
|
-
function
|
|
64114
|
+
__name(_ts_decorate2, "_ts_decorate2");
|
|
64115
|
+
__name3(_ts_decorate2, "_ts_decorate");
|
|
64116
|
+
function _ts_metadata2(k, v) {
|
|
63967
64117
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
63968
64118
|
}
|
|
63969
|
-
__name(
|
|
63970
|
-
__name3(
|
|
64119
|
+
__name(_ts_metadata2, "_ts_metadata2");
|
|
64120
|
+
__name3(_ts_metadata2, "_ts_metadata");
|
|
63971
64121
|
var NestjsObservableModule = class _NestjsObservableModule {
|
|
63972
64122
|
static {
|
|
63973
64123
|
__name(this, "_NestjsObservableModule");
|
|
@@ -63987,7 +64137,7 @@ var NestjsObservableModule = class _NestjsObservableModule {
|
|
|
63987
64137
|
appSdk.start();
|
|
63988
64138
|
}
|
|
63989
64139
|
};
|
|
63990
|
-
NestjsObservableModule =
|
|
64140
|
+
NestjsObservableModule = _ts_decorate2([
|
|
63991
64141
|
Global(),
|
|
63992
64142
|
Module({
|
|
63993
64143
|
imports: [
|
|
@@ -64000,18 +64150,71 @@ NestjsObservableModule = _ts_decorate22([
|
|
|
64000
64150
|
ObservableService
|
|
64001
64151
|
]
|
|
64002
64152
|
}),
|
|
64003
|
-
|
|
64004
|
-
|
|
64153
|
+
_ts_metadata2("design:type", Function),
|
|
64154
|
+
_ts_metadata2("design:paramtypes", [])
|
|
64005
64155
|
], NestjsObservableModule);
|
|
64156
|
+
var SpanStatusCode2;
|
|
64157
|
+
(function(SpanStatusCode22) {
|
|
64158
|
+
SpanStatusCode22[SpanStatusCode22["UNSET"] = 0] = "UNSET";
|
|
64159
|
+
SpanStatusCode22[SpanStatusCode22["OK"] = 1] = "OK";
|
|
64160
|
+
SpanStatusCode22[SpanStatusCode22["ERROR"] = 2] = "ERROR";
|
|
64161
|
+
})(SpanStatusCode2 || (SpanStatusCode2 = {}));
|
|
64162
|
+
function _ts_decorate3(decorators, target, key, desc) {
|
|
64163
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
64164
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
64165
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
64166
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64167
|
+
}
|
|
64168
|
+
__name(_ts_decorate3, "_ts_decorate3");
|
|
64169
|
+
__name3(_ts_decorate3, "_ts_decorate");
|
|
64170
|
+
var ObservableTraceMiddleware = class {
|
|
64171
|
+
static {
|
|
64172
|
+
__name(this, "ObservableTraceMiddleware");
|
|
64173
|
+
}
|
|
64174
|
+
static {
|
|
64175
|
+
__name3(this, "ObservableTraceMiddleware");
|
|
64176
|
+
}
|
|
64177
|
+
use(req, res, next) {
|
|
64178
|
+
const spanName = `${req.method} ${req.originalUrl || req.url}`;
|
|
64179
|
+
appSdk.startContext(req.headers, spanName, (span) => {
|
|
64180
|
+
res.on("finish", () => {
|
|
64181
|
+
const status = res.statusCode;
|
|
64182
|
+
span.setAttribute("http_status_code", status);
|
|
64183
|
+
if (status >= 500) {
|
|
64184
|
+
span.setStatus({
|
|
64185
|
+
code: SpanStatusCode2.ERROR,
|
|
64186
|
+
message: `Server Error ${status}`
|
|
64187
|
+
});
|
|
64188
|
+
} else if (status >= 400) {
|
|
64189
|
+
span.setStatus({
|
|
64190
|
+
code: SpanStatusCode2.UNSET
|
|
64191
|
+
});
|
|
64192
|
+
} else {
|
|
64193
|
+
span.setStatus({
|
|
64194
|
+
code: SpanStatusCode2.OK
|
|
64195
|
+
});
|
|
64196
|
+
}
|
|
64197
|
+
span.end();
|
|
64198
|
+
appSdk.flush().catch((err) => {
|
|
64199
|
+
console.error("[OtelMiddleware] Flush failed:", err);
|
|
64200
|
+
});
|
|
64201
|
+
});
|
|
64202
|
+
next();
|
|
64203
|
+
});
|
|
64204
|
+
}
|
|
64205
|
+
};
|
|
64206
|
+
ObservableTraceMiddleware = _ts_decorate3([
|
|
64207
|
+
Injectable2()
|
|
64208
|
+
], ObservableTraceMiddleware);
|
|
64006
64209
|
|
|
64007
64210
|
// src/service/app-logger.service.ts
|
|
64008
|
-
function
|
|
64211
|
+
function _ts_decorate4(decorators, target, key, desc) {
|
|
64009
64212
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
64010
64213
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
64011
64214
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
64012
64215
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64013
64216
|
}
|
|
64014
|
-
__name(
|
|
64217
|
+
__name(_ts_decorate4, "_ts_decorate");
|
|
64015
64218
|
function _ts_metadata3(k, v) {
|
|
64016
64219
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
64017
64220
|
}
|
|
@@ -64305,7 +64508,7 @@ var AppLogger = class extends BasePinoLogger {
|
|
|
64305
64508
|
Logger2.overrideLogger(this);
|
|
64306
64509
|
}
|
|
64307
64510
|
};
|
|
64308
|
-
AppLogger =
|
|
64511
|
+
AppLogger = _ts_decorate4([
|
|
64309
64512
|
Injectable3(),
|
|
64310
64513
|
_ts_param(0, Inject(PINO_ROOT_LOGGER)),
|
|
64311
64514
|
_ts_param(1, Inject(OBSERVABLE_SERVICE_TOKEN)),
|
|
@@ -64364,7 +64567,7 @@ __name(sanitizeValue, "sanitizeValue");
|
|
|
64364
64567
|
var import_config6 = __toESM(require_config2(), 1);
|
|
64365
64568
|
import { Global as Global2, Module as Module2 } from "@nestjs/common";
|
|
64366
64569
|
import { APP_INTERCEPTOR } from "@nestjs/core";
|
|
64367
|
-
import { CommonModule as CommonModule2, RequestContextService as RequestContextService5 } from "@lark-apaas/nestjs-common";
|
|
64570
|
+
import { CommonModule as CommonModule2, OBSERVABLE_SERVICE_TOKEN as OBSERVABLE_SERVICE_TOKEN2, RequestContextService as RequestContextService5 } from "@lark-apaas/nestjs-common";
|
|
64368
64571
|
|
|
64369
64572
|
// src/config/logger.config.ts
|
|
64370
64573
|
var import_config4 = __toESM(require_config2(), 1);
|
|
@@ -64403,13 +64606,13 @@ var import_operators = __toESM(require_operators(), 1);
|
|
|
64403
64606
|
import { Inject as Inject2, Injectable as Injectable4 } from "@nestjs/common";
|
|
64404
64607
|
import { format } from "util";
|
|
64405
64608
|
import { RequestContextService as RequestContextService3 } from "@lark-apaas/nestjs-common";
|
|
64406
|
-
function
|
|
64609
|
+
function _ts_decorate5(decorators, target, key, desc) {
|
|
64407
64610
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
64408
64611
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
64409
64612
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
64410
64613
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64411
64614
|
}
|
|
64412
|
-
__name(
|
|
64615
|
+
__name(_ts_decorate5, "_ts_decorate");
|
|
64413
64616
|
function _ts_metadata4(k, v) {
|
|
64414
64617
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
64415
64618
|
}
|
|
@@ -64479,6 +64682,9 @@ var LoggingInterceptor = class {
|
|
|
64479
64682
|
}
|
|
64480
64683
|
this.appLogger.log(`HTTP request started
|
|
64481
64684
|
url=${req.url}`, "HTTPTraceInterceptor");
|
|
64685
|
+
this.appLogger.log(`header`, {
|
|
64686
|
+
...req.headers
|
|
64687
|
+
}, "HTTPHeaderInfo");
|
|
64482
64688
|
this.traceLogger.logStructured("verbose", "HTTP request started", requestMeta, "HTTPTraceInterceptor");
|
|
64483
64689
|
let logged = false;
|
|
64484
64690
|
res.on("finish", () => {
|
|
@@ -64564,7 +64770,7 @@ duration_ms=${durationMs}`, "HTTPTraceInterceptor");
|
|
|
64564
64770
|
}
|
|
64565
64771
|
}
|
|
64566
64772
|
};
|
|
64567
|
-
LoggingInterceptor =
|
|
64773
|
+
LoggingInterceptor = _ts_decorate5([
|
|
64568
64774
|
Injectable4(),
|
|
64569
64775
|
_ts_param2(0, Inject2(TRACE_LOGGER)),
|
|
64570
64776
|
_ts_param2(2, Inject2(AppLogger)),
|
|
@@ -64632,13 +64838,13 @@ __name(createFileDestination, "createFileDestination");
|
|
|
64632
64838
|
import { Injectable as Injectable5 } from "@nestjs/common";
|
|
64633
64839
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
64634
64840
|
import { RequestContextService as RequestContextService4 } from "@lark-apaas/nestjs-common";
|
|
64635
|
-
function
|
|
64841
|
+
function _ts_decorate6(decorators, target, key, desc) {
|
|
64636
64842
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
64637
64843
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
64638
64844
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
64639
64845
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64640
64846
|
}
|
|
64641
|
-
__name(
|
|
64847
|
+
__name(_ts_decorate6, "_ts_decorate");
|
|
64642
64848
|
function _ts_metadata5(k, v) {
|
|
64643
64849
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
64644
64850
|
}
|
|
@@ -64663,7 +64869,7 @@ var LoggerContextMiddleware = class {
|
|
|
64663
64869
|
next();
|
|
64664
64870
|
}
|
|
64665
64871
|
};
|
|
64666
|
-
LoggerContextMiddleware =
|
|
64872
|
+
LoggerContextMiddleware = _ts_decorate6([
|
|
64667
64873
|
Injectable5(),
|
|
64668
64874
|
_ts_metadata5("design:type", Function),
|
|
64669
64875
|
_ts_metadata5("design:paramtypes", [
|
|
@@ -64672,19 +64878,19 @@ LoggerContextMiddleware = _ts_decorate5([
|
|
|
64672
64878
|
], LoggerContextMiddleware);
|
|
64673
64879
|
|
|
64674
64880
|
// src/module.ts
|
|
64675
|
-
function
|
|
64881
|
+
function _ts_decorate7(decorators, target, key, desc) {
|
|
64676
64882
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
64677
64883
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
64678
64884
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
64679
64885
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
64680
64886
|
}
|
|
64681
|
-
__name(
|
|
64887
|
+
__name(_ts_decorate7, "_ts_decorate");
|
|
64682
64888
|
var LoggerModule = class {
|
|
64683
64889
|
static {
|
|
64684
64890
|
__name(this, "LoggerModule");
|
|
64685
64891
|
}
|
|
64686
64892
|
};
|
|
64687
|
-
LoggerModule =
|
|
64893
|
+
LoggerModule = _ts_decorate7([
|
|
64688
64894
|
Global2(),
|
|
64689
64895
|
Module2({
|
|
64690
64896
|
imports: [
|
|
@@ -64714,7 +64920,7 @@ LoggerModule = _ts_decorate6([
|
|
|
64714
64920
|
inject: [
|
|
64715
64921
|
RequestContextService5,
|
|
64716
64922
|
logger_config_default.KEY,
|
|
64717
|
-
|
|
64923
|
+
OBSERVABLE_SERVICE_TOKEN2
|
|
64718
64924
|
]
|
|
64719
64925
|
},
|
|
64720
64926
|
AppLogger,
|