본문으로 건너뛰기

Sentry수출업체

OpenTelemetry 의미 체계 규칙을 사용하여 AI 추적 및 모니터링을 위해 추적 데이터를 Sentry로 보냅니다.

건설자
건설자에 대한 직접 링크

new SentryExporter(config: SentryExporterConfig)

SentryExporterConfig
sentryexporterconfig에 대한 직접 링크

interface SentryExporterConfig extends BaseExporterConfig {
dsn?: string
environment?: string
tracesSampleRate?: number
release?: string
options?: Partial<Sentry.NodeOptions>
}

BaseExporterConfig를 확장하며, 포함되는 항목은 다음과 같습니다.

  • logger?: IMastraLogger- 로거 인스턴스
  • logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'- 로그 수준(기본값: INFO)

행동 양식
행동 양식에 대한 직접 링크

exportTracingEvent
exporttracingevent에 대한 직접 링크

async exportTracingEvent(event: TracingEvent): Promise<void>

추적 이벤트를 Sentry로 내보냅니다. SPAN_STARTED, SPAN_UPDATED 및 SPAN_ENDED 이벤트를 처리합니다.

플러시
플러시에 대한 직접 링크

async flush(): Promise<void>

강제로 내보내기를 종료하지 않고 보류 중인 모든 스팬을 Sentry로 플러시합니다. 보류 중인 데이터가 전송될 때까지 최대 2초 동안 기다립니다. 런타임이 종료되기 전에 범위를 내보내야 하는 서버리스 환경에 유용합니다.

일시 휴업
일시 휴업에 대한 직접 링크

async shutdown(): Promise<void>

모든 활성 범위를 종료하고 내부 상태를 지우고 Sentry 연결을 닫습니다. 보류 중인 데이터가 전송될 때까지 최대 2초 동안 기다립니다.

용법
용법에 대한 직접 링크

Zero-Config(환경 변수 사용)
Zero-Config(환경 변수 사용)에 대한 직접 링크

import { SentryExporter } from '@mastra/sentry'

// Reads from SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_RELEASE
const exporter = new SentryExporter()

명시적 구성
명시적 구성에 대한 직접 링크

import { SentryExporter } from '@mastra/sentry'

const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
tracesSampleRate: 1.0,
release: '1.0.0',
})

샘플링 포함
샘플링 포함에 대한 직접 링크

const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
tracesSampleRate: 0.1, // Send 10% of transactions to Sentry (recommended for high-load backends)
})

맞춤형 센트리 옵션 포함
맞춤형 센트리 옵션 포함에 대한 직접 링크

const exporter = new SentryExporter({
dsn: process.env.SENTRY_DSN,
environment: 'production',
options: {
integrations: [
// Custom Sentry integrations
],
beforeSend: event => {
// Custom event processing
return event
},
},
})

스팬 매핑
스팬 매핑에 대한 직접 링크

Mastra 범위 유형은 Sentry 작업에 매핑됩니다.

마스트라 스팬타입센트리 작전
AGENT_RUNgen_ai.invoke_agent
MODEL_GENERATIONgen_ai.chat
MODEL_STEP(skipped)
MODEL_CHUNK(skipped)
TOOL_CALLgen_ai.execute_tool
MCP_TOOL_CALLgen_ai.execute_tool
PROVIDER_TOOL_CALLgen_ai.execute_tool
WORKFLOW_RUNworkflow.run
WORKFLOW_STEPworkflow.step
WORKFLOW_CONDITIONALworkflow.conditional
WORKFLOW_CONDITIONAL_EVALworkflow.conditional
WORKFLOW_PARALLELworkflow.parallel
WORKFLOW_LOOPworkflow.loop
WORKFLOW_SLEEPworkflow.sleep
WORKFLOW_WAIT_EVENTworkflow.wait
PROCESSOR_RUNai.processor
GENERICai.span

추적 계층 구조를 단순화하기 위해 MODEL_STEP 및 MODEL_CHUNK 범위를 건너뜁니다. 해당 데이터는 MODEL_GENERATION 범위로 집계됩니다.

환경변수
환경변수에 대한 직접 링크

내보내기는 다음 환경 변수에서 구성을 읽습니다.

변수설명
SENTRY_DSNData Source Name - SDK가 이벤트를 전송할 위치를 지정
SENTRY_ENVIRONMENT배포 환경 이름
SENTRY_RELEASE배포된 코드의 버전

OpenTelemetry속성
opentelemetry-attributes에 대한 직접 링크

내보내기는 다음과 같은 표준 OpenTelemetry 속성을 설정합니다.

공통 속성(모든 범위):

  • sentry.origin: auto.ai.mastra(Mastra에서 생성된 스팬을 식별)

  • ai.span.type: Mastra 스팬 유형

  • gen_ai.conversation.id: 채팅 스레드 식별자입니다. Sentry의 Conversations 보기에서 스팬을 그룹화하도록 metadata.threadId에서 설정됩니다. MODEL_GENERATION 범위:

  • gen_ai.operation.name: chat

  • gen_ai.system: Model 제공자

  • gen_ai.request.model: Model 식별자

  • gen_ai.request.messages: 입력 메시지/Prompt(JSON)

  • gen_ai.response.model: 응답 Model

  • gen_ai.response.text: 출력 텍스트

  • gen_ai.response.tool_calls: 생성 중 발생한 Tool 호출(JSON 배열)

  • gen_ai.usage.input_tokens: 입력 토큰 개수

  • gen_ai.usage.output_tokens: 출력 토큰 개수

  • gen_ai.usage.total_tokens: 총 토큰

  • gen_ai.request.stream: 스트리밍 플래그

  • gen_ai.request.temperature: 온도 매개변수

  • gen_ai.completion_start_time: 첫 번째 토큰 시간

TOOL_CALL 범위:

  • gen_ai.operation.name: execute_tool
  • gen_ai.tool.name: Tool 식별자
  • gen_ai.tool.type: function
  • gen_ai.tool.call.id: Tool 호출 ID
  • gen_ai.tool.input: Tool 입력
  • gen_ai.tool.output: Tool 출력
  • tool.success: 성공 플래그

AGENT_RUN 범위:

  • gen_ai.operation.name: invoke_agent
  • gen_ai.agent.name: Agent 식별자
  • gen_ai.pipeline.name: Agent 이름
  • gen_ai.agent.instructions: Agent 안내
  • gen_ai.response.model: 아동세대 Model
  • gen_ai.response.text: 자식세대의 출력
  • gen_ai.usage.*: 자식 세대의 토큰 사용