見出し画像

すごいログ分析ツール(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つを改善したらリリースしようと思います。

明日に続く

いいなと思ったら応援しよう!

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