発明の詳細な説明【技術分野】 【0001】 本発明は、テンプレート生成方法、テンプレート生成プログラム、及びテンプレート生成システムに関する。 続きを表示(約 1,800 文字)【背景技術】 【0002】 システムのログを用いて異常検知やデータマイニングを行う際に、取り扱いの容易さの観点から、ログは構造化されていることが望ましい。このためシステムが出力した非構造化ログを構造化ログにパースすることが行われている。具体的には、テンプレートと呼ばれるパースのためのデータ構造を予め作成しておき、非構造ログをテンプレートとパターンマッチさせることで非構造ログからパラメータを抽出し、パラメータを基に構造化ログに変換される。 【0003】 かかるテンプレートの作成には、クラスタリングや機械学習を用いて非構造ログを解析することで行われることが多い。 【0004】 しかし、クラスタリングや機械学習を用いて作成されたテンプレートは、あくまで非構造ログからの推測値であり、ログを出力するアプリケーションの開発者の意図に沿っていない可能性がある。また、パラメータのラベル情報が適切に推定されるとは限らない。特にアクセスログのような値のみが列挙されるログでは、ラベル情報の推定は困難である。 【0005】 そこで非特許文献1に開示されるように、アプリケーションのソースコード解析によってテンプレートを生成する手法が提案されている。ソースコードを解析することで、開発者が意図したログの定義が得られるほか、変数名や関数名等からパラメータのラベル情報を適切に推定することも可能となる。 【先行技術文献】 【非特許文献】 【0006】 D. Schipper,M. Aniche and A. van Deursen,“Tracing Back Log Data to its Log Statement:From Research to Practice,”2019 IEEE/ACM 16th International Conference on Mining Software Repositories,2019,pp.545-549. 【発明の概要】 【発明が解決しようとする課題】 【0007】 しかし、ソースコードは多様な書き方が可能である。このため、対象のアプリケーションやソースコードの言語、フレームワーク等を問わず様々なアプリケーションのソースコードから汎用的にログのテンプレートを高精度で生成することが困難であるという問題があった。 【0008】 本発明は、上述の事情を考慮してなされたものであり、多様なアプリケーションのソースコードからログの汎用的なテンプレートを高精度で生成することを目的とする。 【課題を解決するための手段】 【0009】 本発明の一態様では、情報処理システムで稼働するプログラムから出力される構造化されていないログを構造化されたログへ変換するためのテンプレートを作成するテンプレート生成システムが実行するテンプレート生成方法であって、前記テンプレート生成システムは、プロセッサとメモリとを有し、前記プロセッサによって実行される、前記プログラムのソースコード、及び、パラメータを用いて変数化された部分を含んだ既存の前記テンプレートである既存テンプレートの入力を受付ける受付処理と、前記ソースコードの抽象構文木を作成する抽象構文木作成処理と、前記抽象構文木を用いて、前記パラメータへの代入が可能なコード情報を前記ソースコードから抽出する抽出処理と、前記コード情報と前記既存テンプレートとを基に前記抽象構文木を探索する探索処理と、前記コード情報と前記既存テンプレートとの一致を判定する判定処理と、前記一致の判定結果に基づいて前記既存テンプレートに関係する前記ソースコードの位置を特定する特定処理と、前記位置における前記ソースコードの処理内容に基づいて、前記既存テンプレートにおける前記パラメータを検証し、検証結果に基づいて前記既存テンプレートにおける前記パラメータを修正した修正テンプレートを作成する修正テンプレート作成処理と、前記修正テンプレートを出力する出力処理とを含んだことを特徴とする。 【発明の効果】 【0010】 本発明によれば、多様なアプリケーションのソースコードからログの汎用的なテンプレートを高精度で生成できる。 【図面の簡単な説明】 (【0011】以降は省略されています) この特許をJ-PlatPat(特許庁公式サイト)で参照する