InfoGrab DocsInfoGrab Docs

Calls 메트릭 및 모니터링

요약

이 가이드는 메트릭과 관측 도구를 통해 Mattermost Calls의 성능과 상태를 모니터링하는 방법을 자세히 설명합니다. Mattermost Calls는 Calls 플러그인과 RTCD 서비스 모두에 대해 Prometheus를 통해 메트릭을 제공합니다.

사용 가능 플랜: 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 하위 경로로 노출됩니다. 이 경로는 성능용 수신 주소 구성 설정으로 제어되며, 기본값은 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 구성에 다음 작업(job)을 추가하세요.

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 주소(배포한 경우)
Important

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

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

Mattermost Calls Grafana 대시보드#

공식 Mattermost Calls Performance Monitoring 대시보드를 사용하여 이 메트릭을 시각화할 수 있습니다.

  • Grafana로 직접 가져오려면 대시보드 ID 23225를 사용하세요.
  • 이 대시보드는 수동으로 가져오거나 사용자 지정할 수 있도록 Mattermost performance assets 리포지터리에서 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 <-> MM 연결에 대한 값이므로 연결 수는 MM 노드 수와 일치해야 합니다.
  • 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 배포의 기준선 메트릭을 제공합니다.

배포 사양

  • r6i.large nginx 프록시 1대
  • c5.large MM 애플리케이션 노드 3대(HA)
  • db.x2g.xlarge RDS Aurora MySQL v8 2대(라이터 1대, 리더 1대)
  • (c7i.xlarge, c7i.2xlarge, c7i.4xlarge) RTCD 1대
  • c7i.2xlarge 부하 테스트 에이전트 2대

애플리케이션 사양

  • 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 스토리지를 구성하세요. 스토리지가 부족하다면 보존 기간을 짧게 설정할 수 있습니다. 스토리지가 충분하다면 보존 기간을 더 길게 유지할 수 있습니다.

Calls 메트릭 및 모니터링

Mattermost v12.0
원문 보기

요약

이 가이드는 메트릭과 관측 도구를 통해 Mattermost Calls의 성능과 상태를 모니터링하는 방법을 자세히 설명합니다. Mattermost Calls는 Calls 플러그인과 RTCD 서비스 모두에 대해 Prometheus를 통해 메트릭을 제공합니다.

사용 가능 플랜: 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 하위 경로로 노출됩니다. 이 경로는 성능용 수신 주소 구성 설정으로 제어되며, 기본값은 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 구성에 다음 작업(job)을 추가하세요.

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 주소(배포한 경우)
Important

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

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

Mattermost Calls Grafana 대시보드#

공식 Mattermost Calls Performance Monitoring 대시보드를 사용하여 이 메트릭을 시각화할 수 있습니다.

  • Grafana로 직접 가져오려면 대시보드 ID 23225를 사용하세요.
  • 이 대시보드는 수동으로 가져오거나 사용자 지정할 수 있도록 Mattermost performance assets 리포지터리에서 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 <-> MM 연결에 대한 값이므로 연결 수는 MM 노드 수와 일치해야 합니다.
  • 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 배포의 기준선 메트릭을 제공합니다.

배포 사양

  • r6i.large nginx 프록시 1대
  • c5.large MM 애플리케이션 노드 3대(HA)
  • db.x2g.xlarge RDS Aurora MySQL v8 2대(라이터 1대, 리더 1대)
  • (c7i.xlarge, c7i.2xlarge, c7i.4xlarge) RTCD 1대
  • c7i.2xlarge 부하 테스트 에이전트 2대

애플리케이션 사양

  • 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 스토리지를 구성하세요. 스토리지가 부족하다면 보존 기간을 짧게 설정할 수 있습니다. 스토리지가 충분하다면 보존 기간을 더 길게 유지할 수 있습니다.