설정

Sophonz Node.js SDK 설정 레퍼런스 — init()/initSDK()의 SDKConfig 옵션과 SOPHONZ_* / OTEL_* 환경 변수.

SDK는 init() / initSDK()에 전달하는 SDKConfig 옵션 또는 환경 변수로 설정합니다. 옵션이 항상 환경 변수보다 우선하며, 환경 변수는 폴백입니다(그리고 프리로드 바이너리를 설정하는 유일한 방법입니다).

init() vs initSDK()

import { init, initSDK } from '@sophonz/node-sdk';
  • init(config?) — 권장 진입점. Sophonz 기본값(consoleCapture: true, experimentalExceptionCapture: true, sentryIntegrationEnabled: true, programmaticImports: true)을 적용하고 그 위에 사용자 설정을 병합합니다.
  • initSDK(config) — 저수준. 아래 옵션별 기본값만 적용하며 추가적인 동작은 켜지 않습니다. 완전한 제어가 필요할 때 사용하세요.

NOTE — programmaticImports

init()programmaticImports를 켜서 sdk.start() 이후 계측을 재패치합니다. 모듈이 이미 import된 상태(번들러나 TypeScript 트랜스파일에서 흔함)에서도 자동 계측이 동작하게 해 줍니다. initSDK()는 직접 설정하지 않는 한 꺼져 있습니다.

SDKConfig 옵션

핵심

옵션타입기본값설명
servicestringOTEL_SERVICE_NAME 또는 자동 감지모든 텔레메트리에 보고되는 서비스 이름.
apiKeystringSOPHONZ_API_KEY컬렉터에 Authorization 헤더로 전송되는 API 키.

캡처 토글

옵션타입기본값설명
consoleCapturebooleantrueconsole.*를 계측해 로그로 전달. OTEL_LOG_LEVEL=debug이면 자동 비활성화.
experimentalExceptionCapturebooleanfalse*처리되지 않은 예외와 reject 캡처.
sentryIntegrationEnabledbooleanfalse*Sentry SDK 통합 활성화.
advancedNetworkCapturebooleanfalseHTTP 요청/응답 헤더 캡처(OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_*로 구성).

NOTE — * init()과 initSDK()의 기본값 차이

experimentalExceptionCapturesentryIntegrationEnabledinitSDK()에서 false가 기본이지만 init()은 이를 켭니다. 표의 값은 initSDK() 기준 기본값입니다.

시그널 토글

옵션타입기본값설명
disableTracingbooleanfalse트레이스 전송 비활성화.
disableLogsbooleanfalse로그 전송 비활성화.
disableMetricsbooleanfalse메트릭 전송 비활성화.
detectResourcesbooleantrue리소스 속성(호스트, 프로세스, 클라우드 등) 자동 감지.

라이프사이클 & 진단

옵션타입기본값설명
stopOnTerminationSignalsbooleantrueSIGTERM / SIGINT 시 플러시 후 종료. 직접 종료를 관리하려면 false.
disableStartupLogsbooleanfalse시작 스피너와 대시보드 링크 숨김.
enableInternalProfilingbooleanfalse각 계측의 패치 소요 시간 로깅.

고급 / 확장

옵션타입기본값설명
instrumentationsInstrumentationConfigMap{}특정 자동 계측을 재정의하거나 비활성화.
additionalInstrumentationsInstrumentationBase[][]사용자 정의 계측 등록.
metricReaderMetricReaderSophonz 기본값커스텀 메트릭 리더 지정.
programmaticImportsbooleanfalse (init()에서는 true)시작 후 계측을 재패치해 이미 import된 모듈도 계측.

예시

import { initSDK } from '@sophonz/node-sdk';
 
initSDK({
  service: 'checkout-api',
  apiKey: process.env.SOPHONZ_API_KEY,
  consoleCapture: true,
  experimentalExceptionCapture: true,
  advancedNetworkCapture: true,
  disableMetrics: false,
  instrumentations: {
    // 노이즈가 많은 자동 계측 비활성화
    '@opentelemetry/instrumentation-fs': { enabled: false },
  },
});

환경 변수

Sophonz 전용

변수기본값설명
SOPHONZ_API_KEY컬렉터용 API 키.
SOPHONZ_NODE_CONSOLE_CAPTUREtrue콘솔 캡처 활성화.
SOPHONZ_NODE_ADVANCED_NETWORK_CAPTUREfalseHTTP 헤더 캡처.
SOPHONZ_NODE_EXPERIMENTAL_EXCEPTION_CAPTUREfalse처리되지 않은 예외 캡처.
SOPHONZ_NODE_SENTRY_INTEGRATION_ENABLEDfalseSentry 통합 활성화.
SOPHONZ_NODE_STOP_ON_TERMINATION_SIGNALStrueSIGTERM / SIGINT 시 플러시.
SOPHONZ_NODE_BETA_MODEfalse베타 기능 활성화(전역 컨텍스트 전파, 커스텀 로그 메타데이터).
SOPHONZ_NODE_ENABLE_INTERNAL_PROFILINGfalse계측 패치 시간 프로파일링.
SOPHONZ_STARTUP_LOGStrue시작 배너와 대시보드 링크 표시.

OpenTelemetry

변수기본값설명
OTEL_SERVICE_NAME자동 감지서비스 이름.
OTEL_EXPORTER_OTLP_ENDPOINThttps://in-otel.sophonz.comOTLP 기본 엔드포인트(traces/logs/metrics 경로가 여기서 파생).
OTEL_EXPORTER_OTLP_TRACES_ENDPOINThttps://in-otel.sophonz.com/v1/traces트레이스 전송 엔드포인트.
OTEL_EXPORTER_OTLP_HEADERS추가 OTLP 헤더(API 키가 Authorization으로 덧붙음).
OTEL_TRACES_SAMPLERparentbased_always_on트레이스 샘플러.
OTEL_TRACES_SAMPLER_ARG1샘플러 인자.
OTEL_LOG_LEVELSDK 진단 로그 레벨(debug이면 콘솔 캡처 비활성화).
OTEL_LOGS_EXPORTER / OTEL_TRACES_EXPORTER / OTEL_METRICS_EXPORTERnone으로 설정하면 해당 시그널 비활성화.

TIP — 우선순위

disableLogs / disableTracing / disableMetrics 옵션이나 대응하는 OTEL_*_EXPORTER=none 모두 시그널을 끕니다. 둘 다 존재하면 명시적 SDKConfig 옵션이 우선합니다.