見出し画像

シン・TWSNMPのsyslogマジック分析の開発中に正規表現のフリーズで悩む

今朝は4時から開発開始です。助手の猫さんも一緒におきてきました。ご飯を少し食べたあと、しばらくすると、呼びにきました。なでてあげると、かみさんの布団に戻っていきました。

シン・TWSNMPの改善が楽しくなってきて、快調に進んでいると思っていたら、思わぬ落とし穴がありました。
この前、作ったFluentbitのプラグインからCPU使用率を送信して

{"cpu1": 29.00000000372529, "cpu2": 22.999999998137355, "cpu3": 13.99999999301508, "cpu4": 12.121212132614907, "cpu5": 10.000000009313226, "cpu6": 8.000000005587935}

のようなJSON形式のログからマジック分析で情報を取得しようとすると画面がフリーズしてしまいました。調べていくと正規表現で、このログにヒットした時にフリーズしているようです。
いつものようにGoogleさんに聞いてみると

を見つけました。検索する時の正規表現の組み立てかたに問題があったようです。2時間ぐらい試行錯誤の結果、フリーズはしなくなりましたが、正規表現だと情報を取得する動作が遅いことがわかりました。
そこで、JSONとして処理してデータを抽出するようにしました。
JSONとして処理すると変数の名前もちゃんと取得できました。

正規表現だと何十倍も時間がかかって、

のように変数の名前も取得できません。
FluentbitのようにJSONで送るデータを使ったほうが便利だと思いました。

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。