すごいログ分析ツール(TWSLA)を改善しています
今朝は、2時前と2時半に助手の猫さんが起こしてくれましたが、もちろん二度寝しました。次の猫さんが起こしに来たのは5時半でした。朝焼けが綺麗なので雨戸を開けてと言いにきました。
ログ分析ツール(TWSLA)を実際に使っていて不便に感じた部分を改善することにしました。
抽出(extract)コマンドのデータのソート
抽出したデータが数値の場合に、ソートを数値として行うように改善しました。今までは文字列でソートしていたので9と10があると10のほうが小さいことになっていまいました。負荷の大きい順に並べるというような時に不便でした。
をソートして
のようにできるようになりました。
複数ファイルのインポート
複数のログファイルが提供されてインポートする時に、現状だとワイルドカードを指定して一括で処理できないことが不便だったので改善することにしました。
-s というオプションでインポートするファイルを指定していましたが、オプションではなく引数にすることで解決できました。読み込むソース(ファイル)を配列にいれて順番に読み込んでいけるようになりました。
$twsla import file*log
のような感じでfile1.log ,file2.log ….
のような複数のログを読み込めます。
RUNEWIDTH_EASTASIAN=0を不要にする
これまで、環境変数 にRUNEWIDTH_EASTASIAN=0を設定する必要がありました。これをどうにか無くしたいと思っていました。今朝、よい方法を見つけました。
package main
import (
"github.com/mattn/go-runewidth"
"github.com/twsnmp/twsla/cmd"
)
var version = "v0.0.0"
var commit = "commit"
var date = ""
func main() {
runewidth.EastAsianWidth = false
runewidth.DefaultCondition.EastAsianWidth = false
cmd.Version = version
cmd.Commit = commit
cmd.Date = date
cmd.Execute()
}
のようにコマンドを実行する前に、
runewidth.EastAsianWidth = false
runewidth.DefaultCondition.EastAsianWidth = false
によって東アジアの文字幅をfalseに設定しています。
の話です。
以前からGO言語のパッケージの初期化前に環境変数を設定する方法を調べていましたが、うまくいきませんでした。
そこで、
の初期化のコードを読んでみると後から変数を変更できそうなことがわかりました。試してみるとうまくいきました。
悲願達成です。 嬉しいです。
その他
もう少し、改善したいことがあります。。
検索のフィルターを複数指定したい
2つのログの間の時間差を測定したい
です。この2つを改善したらリリースしようと思います。
明日に続く