FSAgent — FreeSWITCH メトリクス収集エージェント
概要
FSAgentは、FreeSWITCHのESLを通じて複数のFreeSWITCHノードからRTCPやQoSに関するリアルタイムメトリクスを集約し、OpenTelemetry Collectorへ転送するGo製のエージェントです。軽量設計と高スループットを目標に実装されており、コンテナ化(Dockerfileあり)して運用環境へ組み込みやすく、YAMLベースの設定で監視対象や出力先を柔軟に定義できます。MITライセンスで公開され、FreeSWITCHの通話品質監視やSLAの可視化に適しています。(約300字)
リポジトリの統計情報
- スター数: 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
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字)
リポジトリ情報:
- 名前: fsagent
- 説明: 説明なし
- スター数: 19
- 言語: Go
- URL: https://github.com/luongdev/fsagent
- オーナー: luongdev
- アバター: https://avatars.githubusercontent.com/u/28823018?v=4