0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ログからMermaidシーケンス図を自動生成して可視化してみた

Posted at

はじめに

マイクロサービスや組み込みの不具合解析においてログを見ることが多いのですが、情報量が多いため時間がかかることがあります。そこで、シーケンス図を自動作成し俯瞰的に見ることで解析時間の削減を狙おうというツールになります。

ツールは以下になります。
https://github.com/yusan25c/log2mermaid/

仕組み

  1. キーワードをmatch.csvに登録する
  2. ログを1行ずつ読み出してmatch.csvに登録されているキーワードがあるかチェックする
  3. キーワードがあればmermaid形式でシーケンス図を出力する
    • match.csvのsrcからdstに向かってメッセージを出す
    • 元のログも残すためシーケンスからログを参照しやすい

mermaid形式シーケンス図
https://docs.mermaidchart.com/mermaid-oss/syntax/sequenceDiagram.html

実際に使ってみる

キーワードをmatch.csvに登録
csv.png

対象のログ(log.txt)を準備

Nov  2 12:34:56 : [12345678.012345] hogehoge function exec
Nov  2 12:34:56 : [12345678.012345] Component1 func:1245 hogehoge val 1
Nov  2 12:34:56 : [12345678.012345] hogehoge2 func exec
Nov  2 12:34:56 : [12345678.012345] Component2 func:1245 str=abc val 1
Nov  2 12:34:56 : [12345678.012345] Component2 func:1245 str=def val 2
Nov  2 12:34:56 : [12345678.012345] hogehoge function ret: 0

スクリプトを実行

python3 log2mermaid.py log.txt match.csv > diagram.mmd
cat diagram.mmd

sequenceDiagram
    participant P1 as "API Server"
    participant Client
    P1 ->> Client: hogeFunc1
    Note over P1,Client: Nov  2 12:34:56 : [12345678.012345] Component1 func:1245 hogehoge val 1
    Client ->> P1: hogeFunc2
    Note over Client,P1: Nov  2 12:34:56 : [12345678.012345] Component2 func:1245 str=abc val 1

diagram.mmdをmermaid live editor等で変換かける

result.png

ポイント

キーワードには正規表現を使うことができます。例えば以下のようなログの場合「func」と「abc」でマッチさせたいことがあります。

Nov  2 12:34:56 : [12345678.012345] Component2 func:1245 str=abc val 1

その場合は以下をキーワードとして使えばマッチします。

func.*abc

最後に

シンプルな作りにしているため本スクリプトを参考に別の用途でも使えるかもしれません。何かのお役に立てれば幸いです。また、不具合や機能の要望などあればコメントorGithubのIssueでいただければ対応するかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?