@lark-apaas/observable 1.0.3-alpha.2 → 1.0.3-alpha.3

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.cts CHANGED
@@ -30,7 +30,10 @@ declare class AppOTelSDK {
30
30
  /**
31
31
  * [Log API] 自动关联 TraceContext
32
32
  */
33
- log(level: string, message: string, extra?: Record<string, unknown>, parentSpan?: Span): void;
33
+ log(level: string, message: string, extra?: Record<string, unknown>, spanAttr?: {
34
+ traceId: string;
35
+ spanId: string;
36
+ }): void;
34
37
  /**
35
38
  * 启动 Span 的工厂函数
36
39
  * @param {string} name - Span 名称
package/dist/index.d.ts CHANGED
@@ -30,7 +30,10 @@ declare class AppOTelSDK {
30
30
  /**
31
31
  * [Log API] 自动关联 TraceContext
32
32
  */
33
- log(level: string, message: string, extra?: Record<string, unknown>, parentSpan?: Span): void;
33
+ log(level: string, message: string, extra?: Record<string, unknown>, spanAttr?: {
34
+ traceId: string;
35
+ spanId: string;
36
+ }): void;
34
37
  /**
35
38
  * 启动 Span 的工厂函数
36
39
  * @param {string} name - Span 名称
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { NodeSDK } from '@opentelemetry/sdk-node';
2
2
  import { BatchLogRecordProcessor } from '@opentelemetry/sdk-logs';
3
3
  import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-node';
4
4
  import { detectResources } from '@opentelemetry/resources';
5
- import { SpanKind, trace, INVALID_SPAN_CONTEXT, propagation, context, SpanStatusCode } from '@opentelemetry/api';
5
+ import { SpanKind, trace, INVALID_SPAN_CONTEXT, propagation, context, SpanStatusCode, TraceFlags } from '@opentelemetry/api';
6
6
  import { logs, SeverityNumber } from '@opentelemetry/api-logs';
7
7
  import { ExportResultCode } from '@opentelemetry/core';
8
8
  import { randomBytes } from 'crypto';
@@ -9104,7 +9104,7 @@ var AppOTelSDK = class _AppOTelSDK {
9104
9104
  /**
9105
9105
  * [Log API] 自动关联 TraceContext
9106
9106
  */
9107
- log(level, message, extra = {}, parentSpan) {
9107
+ log(level, message, extra = {}, spanAttr) {
9108
9108
  try {
9109
9109
  const logger = logs.getLogger("app-logger");
9110
9110
  const severityNumber = mapSeverity(level);
@@ -9115,9 +9115,14 @@ var AppOTelSDK = class _AppOTelSDK {
9115
9115
  };
9116
9116
  let logContext = context.active();
9117
9117
  try {
9118
- if (parentSpan) {
9119
- const spanInstance = parentSpan;
9120
- logContext = trace.setSpan(context.active(), spanInstance);
9118
+ if (spanAttr) {
9119
+ const spanContext = {
9120
+ ...spanAttr,
9121
+ // 通常设为 SAMPLED (1),表示这是一个被采样的链路,否则日志可能会被后端丢弃
9122
+ traceFlags: TraceFlags.SAMPLED,
9123
+ isRemote: false
9124
+ };
9125
+ logContext = trace.setSpan(context.active(), trace.wrapSpanContext(spanContext));
9121
9126
  }
9122
9127
  } catch {
9123
9128
  logContext = context.active();