私は Python を使用して、多くのメトリックを収集するシミュレーション エンジンに取り組んでいます。シミュレーションは高速で実行され、1 秒あたり約 100K イベントが生成されます (これらのイベントを 1 秒ごとに統合することで、いくつかの処理を行うことができます)。これらのメトリックを時系列として記録するメカニズムを探しています。
私の要件は次のとおりです。
Graphite などの外部プロセスではなく、シミュレーションと同じプロセスでこのロギング メカニズムを使用したいと考えています。
このメカニズムは、シミュレーションの速度を低下させることなく、1 秒あたり 100K のイベントを処理できる必要があります。
次のようにデータを保存したいと思います: すべてのメトリック関連データは、60 分間は 1 秒の粒度、1 日は 1 分の粒度、2 日間は 5 分の粒度、6 か月は 1 時間の粒度、3 か月は 1 日の粒度で保存する必要があります。期間の年。このメカニズムで、指定された範囲に従ってデータの統合を処理したいと考えています。
理想的には、1 回のシミュレーション実行のメトリック情報を保持する 1 つのファイルを維持したいと考えています。シミュレーションをもう一度実行するには、別のファイルを作成する必要があります。
すぐに利用できる、十分にテストされたライブラリ/モジュールがあると便利です:)
ところで、私は RRDTool をざっと見てみましたが、私が理解していることから、Python ライブラリは RRDTool バイナリの薄いラッパーのようです。可能であれば、より緊密な統合を探しています。
ティア