Calls 지표와 모니터링

Mattermost v11.11번역일: 2026-09-02원본 보기

Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.

이 가이드는 지표와 관측성 도구를 통해 Mattermost Calls의 성능과 상태를 모니터링하는 방법을 상세히 설명합니다. 통화 품질을 최적으로 유지하고 발생하는 문제에 신속히 대응하려면 효과적인 모니터링이 필수적입니다.

지표 개요

Mattermost Calls는 Calls 플러그인과 RTCD(실시간 통신 데몬) 서비스 모두에 대해 Prometheus를 통한 지표를 제공합니다. 이 지표를 통해 다음을 추적할 수 있습니다.

  • 활성 통화 세션과 참가자
  • 미디어 트랙 통계
  • 연결 상태와 오류
  • 리소스 사용량(CPU, 메모리, 네트워크)
  • WebSocket 연결과 이벤트

지표는 다음 HTTP 엔드포인트를 통해 노출됩니다.

  • Calls 플러그인: /plugins/com.mattermost.calls/metrics
  • RTCD 서비스: /metrics(기본값) 또는 설정된 엔드포인트

리소스 사용량 지표(CPU, 메모리, 네트워크)는 주로 외부 서비스(node-exporter)가 제공합니다.

Calls 플러그인의 지표는 기존 Mattermost 서버 지표 엔드포인트 아래의 /plugins/com.mattermost.calls/metrics 하위 경로를 통해 노출됩니다. 이는 Listen address for performance 설정으로 제어되며, 기본 포트는 8067입니다. 예: http://localhost:8067/plugins/com.mattermost.calls/metrics

RTCD 서비스의 /metrics 엔드포인트는 HTTP API를 통해 노출됩니다(예: http://localhost:8045/metrics).

모니터링 설정

Mattermost용 Prometheus와 Grafana 배포 방법은 성능 모니터링을 위한 Prometheus 및 Grafana 배포 가이드를 참고하세요.

Prometheus와 Grafana를 설정했다면, Calls 관련 서비스에서 지표를 수집하도록 Prometheus를 구성해야 합니다.

Prometheus 스크레이프 설정

prometheus.yml 설정 파일에 다음 잡을 추가합니다.

scrape_configs:
  - job_name: 'calls-plugin'
    metrics_path: /plugins/com.mattermost.calls/metrics
    static_configs:
      - targets: ['MATTERMOST_SERVER_IP:8067']
        labels:
          service_name: 'calls-plugin'

  - job_name: 'rtcd'
    metrics_path: /metrics
    static_configs:
      - targets: ['RTCD_SERVER_IP:8045']
        labels:
          service_name: 'rtcd'

  - job_name: 'rtcd-node-exporter'
    metrics_path: /metrics
    static_configs:
      - targets: ['RTCD_SERVER_IP:9100']
        labels:
          service_name: 'rtcd'

  - job_name: 'calls-offloader-node-exporter'
    metrics_path: /metrics
    static_configs:
      - targets: ['CALLS_OFFLOADER_SERVER_IP:9100']
        labels:
          service_name: 'offloader'

자리 표시자 IP 주소를 실제 서버 주소로 교체합니다.

  • MATTERMOST_SERVER_IP: Mattermost 서버의 IP 주소
  • RTCD_SERVER_IP: RTCD 서버의 IP 주소
  • CALLS_OFFLOADER_SERVER_IP: calls-offloader 서버의 IP 주소(배포한 경우)
중요

지표 설정 안내: 위 설정에 나온 대로 service_name 레이블을 사용하세요. 이 레이블은 대시보드에서 지표를 정리하고 서비스를 올바르게 식별하는 데 도움이 됩니다.

참고
  • node_exporter: 선택 사항이지만 시스템 수준 지표(CPU, 메모리, 디스크, 네트워크)를 위해 권장합니다. 설치 방법은 node_exporter 설정 가이드를 참고하세요.
  • calls-offloader: 통화 녹화·전사를 사용하는 경우에만 필요합니다.

Mattermost Calls Grafana 대시보드

이 지표를 시각화하려면 공식 Mattermost Calls Performance Monitoring 대시보드를 사용할 수 있습니다.

  • Grafana에 직접 가져오려면 대시보드 ID 23225를 사용하세요.
  • 수동 가져오기나 커스터마이즈를 위해 Mattermost 성능 자산 저장소에서 JSON 소스로도 받을 수 있습니다.

모니터링해야 할 핵심 지표

RTCD 지표

프로세스 지표

다음 지표는 RTCD 프로세스의 상태와 리소스 사용량을 모니터링하는 데 도움이 됩니다.

  • rtcd_process_cpu_seconds_total: 총 CPU 사용 시간
  • rtcd_process_open_fds: 열려 있는 파일 디스크립터 수
  • rtcd_process_max_fds: 파일 디스크립터 최대 개수
  • rtcd_process_resident_memory_bytes: 메모리 사용량(바이트)
  • rtcd_process_virtual_memory_bytes: 사용 중인 가상 메모리

WebRTC 연결 지표

다음 지표는 WebRTC 연결과 미디어 흐름을 추적합니다.

  • rtcd_rtc_conn_states_total{state="X"}: 상태별 연결 수
  • rtcd_rtc_errors_total{type="X"}: 유형별 RTC 오류 수
  • rtcd_rtc_rtp_tracks_total{direction="X"}: RTP 트랙 수(수신/송신)
  • rtcd_rtc_sessions_total: 활성 RTC 세션 총수

WebSocket 지표

다음 지표는 시그널링 채널을 추적합니다.

  • rtcd_ws_connections_total: 활성 WebSocket 연결 총수. 이는 RTCD와 Mattermost 사이의 연결이므로, 연결 수는 Mattermost 노드 수와 일치해야 합니다.
  • rtcd_ws_messages_total{direction="X"}: WebSocket 메시지 수(송신/수신)

Calls 플러그인 지표

Calls 플러그인에도 다음 접두사로 유사한 지표가 제공됩니다.

  • 프로세스 지표: mattermost_plugin_calls_process_*
  • WebRTC 연결 지표: mattermost_plugin_calls_rtc_*
  • WebSocket 지표: mattermost_plugin_calls_websocket_*
  • 스토어 지표: mattermost_plugin_calls_store_ops_total

성능 기준치

다음 성능 벤치마크는 다양한 부하 조건과 설정에서 측정한 RTCD 배포의 기준 지표를 제공합니다.

배포 사양

  • 1x r6i.large nginx 프록시
  • 3x c5.large Mattermost 앱 노드(HA)
  • 2x db.x2g.xlarge RDS Aurora MySQL v8(쓰기 1대, 읽기 1대)
  • 1x (c7i.xlarge, c7i.2xlarge, c7i.4xlarge) RTCD
  • 2x c7i.2xlarge 부하 테스트 에이전트

애플리케이션 사양

  • Mattermost v9.6
  • Mattermost Calls v0.28.0
  • RTCD v0.16.0
  • 부하 테스트 에이전트 v0.28.0

미디어 사양

  • 음성 샘플 비트레이트: 80Kbps
  • 화면 공유 샘플 비트레이트: 1.6Mbps

결과

다음은 내부 성능 테스트를 기반으로 한 상세 벤치마크입니다.

통화 수 통화당 참가자 통화당 음소거 해제 화면 공유 CPU(평균) 메모리(평균) 대역폭(수신/송신) 인스턴스 유형(RTCD)
1 1000 2 아니요 47% 1.46GB 1Mbps / 194Mbps c7i.xlarge
1 800 1 예 64% 1.43GB 2.7Mbps / 1.36Gbps c7i.xlarge
1 1000 1 예 79% 1.54GB 2.9Mbps / 1.68Gbps c7i.xlarge
10 100 1 예 74% 1.56GB 18.2Mbps / 1.68Gbps c7i.xlarge
100 10 2 아니요 49% 1.46GB 18.7Mbps / 175Mbps c7i.xlarge
100 10 1 예 84% 1.73GB 171Mbps / 1.53Gbps c7i.xlarge
1 1000 2 아니요 20% 1.44GB 1.4Mbps / 194Mbps c7i.2xlarge
1 1000 2 예 49% 1.53GB 3.6Mbps / 1.79Gbps c7i.2xlarge
2 1000 1 예 73% 2.38GB 5.7Mbps / 3.06Gbps c7i.2xlarge
100 10 2 예 60% 1.74GB 181Mbps / 1.62Gbps c7i.2xlarge
150 10 1 예 72% 2.26GB 257Mbps / 2.30Gbps c7i.2xlarge
150 10 2 예 79% 2.34GB 271Mbps / 2.41Gbps c7i.2xlarge
250 10 2 아니요 58% 2.66GB 47Mbps / 439Mbps c7i.2xlarge
1000 2 2 아니요 78% 2.31GB 178Mbps / 195Mbps c7i.2xlarge
2 1000 2 예 41% 2.6GB 7.23Mbps / 3.60Gbps c7i.4xlarge
3 1000 2 예 63% 3.53GB 10.9Mbps / 5.38Gbps c7i.4xlarge
4 1000 2 예 83% 4.40GB 14.5Mbps / 7.17Gbps c7i.4xlarge
250 10 2 예 79% 3.49GB 431Mbps / 3.73Gbps c7i.4xlarge
500 2 2 예 71% 2.54GB 896Mbps / 919Mbps c7i.4xlarge

지표 수집 문제 해결

RTCD 지표가 수집되고 있는지 확인

Prometheus가 RTCD 지표를 정상적으로 수집하고 있는지 확인하려면 다음 명령을 사용합니다.

curl http://PROMETHEUS_IP:9090/api/v1/label/__name__/values | jq '.' | grep rtcd

이 명령은 Prometheus에서 사용 가능한 모든 지표 이름을 조회한 뒤 RTCD 관련 지표만 필터링합니다.

RTCD 지표가 하나도 나오지 않으면 다음을 확인하세요.

  1. RTCD가 실행 중인지
  2. Prometheus가 RTCD 지표 엔드포인트를 스크레이프하도록 설정되어 있는지
  3. Prometheus에서 RTCD 지표 포트에 접근할 수 있는지(기본값: 8045)

Prometheus 스크레이프 대상 확인

Calls 관련 서비스가 모두 정상적으로 스크레이프되고 있는지 확인하려면 다음과 같이 합니다.

  1. Prometheus 웹 인터페이스를 엽니다(보통 http://PROMETHEUS_IP:9090).
  2. Status > Targets로 이동합니다.
  3. 설정한 Calls 서비스를 찾습니다.
    • Mattermost 서버(Calls 플러그인 지표용)
    • RTCD 서비스

각 대상은 상태가 초록색 "UP"으로 표시되어야 합니다. 대상이 "DOWN"이거나 오류를 표시한다면 다음을 확인하세요.

  • 해당 서비스가 실행 중인지 확인
  • Prometheus와 대상 사이의 네트워크 연결 확인
  • 지표 엔드포인트에 접근할 수 있는지 확인

그 밖의 Calls 문서

참고:

디스크 사용량과 보존 기간의 균형을 맞추어 Prometheus 스토리지를 설정하세요. 스토리지 여유가 빠듯하다면 보존 기간을 짧게 잡을 수 있고, 스토리지가 넉넉하다면 보존 기간을 더 길게 유지할 수 있습니다.