FSAgent — FreeSWITCH メトリクス収集エージェント

DevOps

概要

FSAgentは、FreeSWITCHのESLを通じて複数のFreeSWITCHノードからRTCPやQoSに関するリアルタイムメトリクスを集約し、OpenTelemetry Collectorへ転送するGo製のエージェントです。軽量設計と高スループットを目標に実装されており、コンテナ化(Dockerfileあり)して運用環境へ組み込みやすく、YAMLベースの設定で監視対象や出力先を柔軟に定義できます。MITライセンスで公開され、FreeSWITCHの通話品質監視やSLAの可視化に適しています。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 19
  • フォーク数: 0
  • ウォッチャー数: 19
  • コミット数: 10
  • ファイル数: 8
  • メインの言語: Go

主な特徴

  • FreeSWITCHのESL接続でリアルタイムにRTCP/QoSメトリクスを収集
  • OpenTelemetryフォーマットでCollectorへエクスポート(OTLP等の統合が容易)
  • Goによる高性能・軽量実装、Dockerイメージ化によるデプロイの簡易化
  • YAML設定で複数インスタンスの監視対象を柔軟に指定可能

技術的なポイント

FSAgentはGo言語で実装され、ESL(Event Socket Library)を通じてFreeSWITCHからイベントとメトリクスを購読します。収集対象は主にRTCP(パケットロス、ジッタ、遅延など)とQoSに関する指標で、これらをOpenTelemetryのメトリクスフォーマットにマッピングしてCollectorへ送信します。アーキテクチャは複数のFreeSWITCH接続を並列に扱う設計で、各接続ごとに専用のgoroutineとチャネルでイベント処理を行い、高スループットかつ低レイテンシを実現します。設定はconfig.example.yamlによりYAMLで管理され、監視対象のホスト、ESLポート、認証、Exporterのエンドポイントなどを明示できます。エクスポートはOTLPやCollector互換のエンドポイントを想定しており、バッファリングやリトライ、バックプレッシャーへの配慮が組み込まれている設計思想が読み取れます。またDockerfileを提供しており、コンテナベースで簡単にデプロイ可能、CIやKubernetesのサイドカー/デーモンセットとして組み込みやすい点も実運用で有利です。MITライセンスのため改変や組み込みが容易で、通話品質の可視化やSLA監視の導入に適したコンポーネントです。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .dockerignore: file
  • .gitignore: file
  • Dockerfile: file
  • README.md: file
  • config.example.yaml: file

…他 3 ファイル

※ READMEの冒頭抜粋:

FSAgent - FreeSWITCH Metrics Collection Agent

Go Version License

FSAgent is a high-performance Golang application that connects to multiple FreeSWITCH instances via ESL (Event Socket Library), collects real-time RTCP and QoS metrics, and exports them to OpenTelemetry Collector. It provides comprehensive call quality monitoring with support…

まとめ

FreeSWITCHの通話品質監視をシンプルに実装できる、実運用向けの軽量OpenTelemetryエージェントです。(約50字)

リポジトリ情報: