もた日記

くだらないことを真面目にやる

Linuxメモ : GoAccessでリアルタイムにWebログ解析

  • GoAccess
  • インストール
  • 使い方:ターミナル
    • 基本
    • tail -f
    • 複数ファイル
    • キーバインド
  • 使い方:HTML版
    • 基本
    • リアルタイム解析
  • 参考:ダミーログ生成

GoAccess

GoAccess - Visual Web Log Analyzer(公式ページ)

github.com

GoAccessはリアルタイムにWebログを解析するツール(GoAccessという名前だがGoではなくCで書かれているようだ)。インストールすれば複雑な設定不要で利用できるので手軽に解析したいときに便利。ここにHTML版デモページがあるので解析項目等を確認できる。

解析可能なログフォーマットの一覧は下記。

  • Amazon CloudFront (Download Distribution).
  • Amazon Simple Storage Service (S3)
  • AWS Elastic Load Balancing
  • Combined Log Format (XLF/ELF) Apache | Nginx
  • Common Log Format (CLF) Apache
  • Google Cloud Storage.
  • Apache virtual hosts
  • Squid Native Format.
  • W3C format (IIS).

f:id:wonder-wall:20170827163215p:plain

続きを読む

Pythonメモ : pyheatで時間のかかる処理をヒートマップで表示

  • pyheat
    • インストール
    • 使い方
  • pyheatmagic(IPythonで使う場合)
    • インストール
    • 使い方

pyheat

github.com

pyheatはpprofile + matplotlibのようなモジュールで、pprofile(line_profilerのようにコード単位でプロファイリング)のプロファイリング結果をヒートマップで表示することができる。

f:id:wonder-wall:20170826172614p:plain

続きを読む

Linuxメモ : fkill, gkillでインタラクティブにプロセスをkillする

  • fkill
    • インストール
    • 使い方
  • gkill
    • インストール
    • 使い方

プロセスをkillするにはps aux | grep プロセス名としてkillする方法や、pgrep, pkillを使う方法(参考ブログ)があるが、インタラクティブにプロセスをkillできるfkill, gkillというコマンドがあったので試してみる。

fkill


github.com

fkillはmacOS, Linux, Windowsで動作するとのこと。Fabulously kill processesという説明なのでfkillのfはFabulouslyなのだろうか。

f:id:wonder-wall:20170823224647g:plain

続きを読む

Linuxメモ : 「ccat」でcatをシンタックスハイライトする

  • ccat
  • インストール
  • 使い方

ccat


github.com

catlessをシンタックスハイライトさせるにはpygmentssource-highlightを使う方法があるが、ccatというコマンドがあったので試してみる。
サポートしている言語の一覧は下記。

  • JavaScript
  • Java
  • Ruby
  • Python
  • Go
  • C
  • JSON

作者によるとcatccatの処理時間の差はほとんどないとのこと。

$ wc -l main.go
123 main.go
$ time cat main.go > /dev/null
cat main.go > /dev/null  0.00s user 0.00s system 61% cpu 0.005 total
$ time ccat main.go > /dev/null
ccat main.go > /dev/null  0.00s user 0.00s system 78% cpu 0.007 total

f:id:wonder-wall:20170824204634p:plain

続きを読む

Pythonメモ : mimesisでテストデータを生成する

  • mimesis
  • インストール
  • 使い方
  • 作成可能なデータ種別
  • JSONスキーマを指定して出力

mimesis


github.com

mimesisというというPythonライブラリを使用するとテストデータを簡単に生成することができるので試してみる。

f:id:wonder-wall:20170823200211p:plain

特徴としては、

  • fakerなどの他のライブラリに比べて高速
  • 様々なデータを生成可能
  • Python標準ライブラリ以外を必要としないのでシンプル

とのこと。
ここfakerと速度を比較するコードがあったので試したところ確かに高速だった(コードのfrom elizabethfrom mimesisに変更。名前が変わったのだろうか)。

$ python comp.py
[0.87593889s] generate_elizabeth(250000) -> 'Generated 250000'
[130.84236121s] generate_faker(250000) -> 'Generated 250000'
続きを読む