본문 바로가기
Monitoring/Signoz

오픈 소스 APM도구 SIGNOZ (1)

by abstract.jiin 2025. 2. 5.

signoz ?

  • Opentelemetry를 사용해 데이터를 수집하고, 집계. 대시보드와 애플리케이션으로 관련 모든 지표와 추척 관찰 가능 한 APM 오픈소스
  • Log, Metric, Traces 등의 시스템이 생성하는 데이터 항목을 기반으로 시스템의 현재 상태를 측정
  • dataDog의 대안으로 불리기도 함
  • Opentelemetry가 지원하는 모든 프레임워크와 언어 지원

기능

Services

  • 등록한 어플리케이션의 ServiceName으로 Metric 정보 확인 가능
  • 기본적으로 signoz-otel-collector를 통해 각 애플리케이션의 데이터를 수집하여 제공
  • 메트릭 정보
    • P99 latency(in ms): 애플리케이션이 가장 빠른 99%의 요청을 각각 처리하는데 소비하는 시간
    • Error Rate(% of total): 실패한 request의 백분율, 총 요청에 대한 오류 요청의 비율
    • Operations Per Second: 애플리케이션이 초당 처리하는 request 수

 

Traces

  • 앞서 Services에서 측정된 애플리케이션의 데이터를 기반으로 분산추적 데이터 및 Span 구성 - 요청의 전체 흐름

 

Logs

  • signoz는 Open Telemetry를 통해 수집된 데이터를 clickhouse에 저장하기 위해 OTLP 형식으로 데이터를 처리하고 전송
  • 수신 방식 (Receiver)
    • OTLP / Filelog / Fluent Forward / TCP / UDP /Syslog Receiver
    • 더 자세한 log 수집 방식에 대해서는 다음 글 (2)에서 설명 드리겠습니다

DashBoards

3가지 방식으로 DashBoards 작성 가능

  • Query Builder
    • 드롭다운으로 작성하는 QueryBuilder
  • PromQL
    • Prometheus 쿼리 언어 사용
  • Clickhouse Queries
    • Signoz 데이터 모델 및 형식을 준수하는 Clickhouse 쿼리

 

Alerts

  • 만들어진 Dashboard에서 Alert Query를 지정해서 Alert 기능 수행

Exceptions

  • 시간대 별, application 별 집계
  • Error Message를 별도로 확인하고 TraceID, spanID 추적
  • Error가 최초 발생한 시간과 마지막으로 발생한 시간, 발생 횟수 집계

 

ServiceMap

 

참고자료

infograb gitlab 밋업으로 알아보는 Observability 이야기 https://insight.infograb.net/blog/2023/05/25/gitlab-korea-observability/

signoz 공식 홈페이지 https://signoz.io/