설치

Sophonz Node.js SDK 설치 및 초기화 — init()을 사용한 프로그래밍 방식 또는 opentelemetry-instrument 프리로드 바이너리 방식.

@sophonz/node-sdk를 설치하고 애플리케이션의 나머지 코드가 로드되기 전에 초기화하세요. 진입 파일 최상단에서 init()을 호출하거나, 프리로드 바이너리를 사용해 모든 모듈보다 먼저 계측을 적용할 수 있습니다.

설치

bun add @sophonz/node-sdk
# 또는
pnpm add @sophonz/node-sdk
# 또는
npm install @sophonz/node-sdk

TIP — API 키 발급

Sophonz 콘솔에 로그인해 서비스를 등록하고 발급된 키를 복사하세요. apiKey 옵션 또는 SOPHONZ_API_KEY 환경 변수로 전달합니다. API 키(그리고 OTEL_EXPORTER_OTLP_HEADERS)가 없으면 SDK는 경고를 남기고 초기화를 건너뜁니다.

프로그래밍 방식 초기화

init()은 가능한 한 빨리 — 진입 파일의 첫 import로 — 호출해 프레임워크와 데이터베이스 클라이언트가 로드되기 전에 실행되도록 하세요.

// instrument.ts (가장 먼저 import)
import { init } from '@sophonz/node-sdk';
 
init({
  service: 'my-app',
  apiKey: process.env.SOPHONZ_API_KEY,
});
// index.ts
import './instrument';
import express from 'express';
 
const app = express();
// ...

init()은 기본 SDK 위에 Sophonz 권장 기본값(콘솔 캡처, 실험적 예외 캡처, Sentry 통합, 계측 재패치)을 적용합니다. 모든 옵션을 직접 제어하려면 initSDK()를 사용하세요. 설정을 참고하세요.

정상 종료

기본적으로 SDK는 SIGTERM / SIGINT 시 텔레메트리를 플러시합니다. stopOnTerminationSignals: false로 비활성화했다면 종료 전에 직접 플러시하세요.

import { shutdown } from '@sophonz/node-sdk';
 
process.on('SIGTERM', async () => {
  await shutdown();
  process.exit(0);
});

프리로드 바이너리 (코드 변경 없음)

애플리케이션 코드를 건드리지 않고 계측하려면 Node의 -r 플래그로 SDK를 프리로드하세요.

node -r @sophonz/node-sdk/build/bin/opentelemetry-instrument.js app.js

또는 번들된 CLI를 사용합니다.

opentelemetry-instrument app.js

이 방식에서는 설정이 환경 변수(SOPHONZ_API_KEY, OTEL_SERVICE_NAME설정 문서에 정리된 변수들)에서 옵니다.

다음 단계

  • 설정 — 모든 SDKConfig 옵션과 환경 변수.
  • 미들웨어 — Express와 Koa에서 요청 스팬 보강하기.
  • API 레퍼런스 — 노출된 함수와 제공되는 공식 OpenTelemetry API.
  • 예제 — 완전한 Express와 Koa 서버 예제.

TIP — 이제 시작입니다

이제 앱을 배포하세요. Sophonz가 실사용자가 겪는 문제를 포착하고, 당신의 앱은 스스로 진화합니다.