extract

extractコマンドを使用して、正規表現によって既存のフィールドの抜粋を取得します。このコマンドは、正規表現グループに指定された名前を使用して、仮想フィールドに結果の抜粋を取得します。

ノート

  • extractコマンドは、Original Log Contentフィールドでは実行できません。指定しない場合、デフォルト・フィールドはMessageです。

    「元のログ・コンテンツ」フィールドの値でextractコマンドを使用できるようにするには、最初に「元のログ・コンテンツ」フィールドを文字列フィールドにコピーしてから、新しい文字列フィールドでextractを実行します。

  • extractなどの文字列処理コマンドはリソースを大量に消費します。このため、多数のログ・レコードに対してextractコマンドを実行するか、大きいフィールド値を指定することはお薦めしません。かわりに、ログ・ソースの拡張フィールド定義(EFD)またはラベルを使用してこれらの値を抽出します。

構文

extract field = <field_to_parse> (<regular_expression>)

パラメータ

次の表に、このコマンドで使用されるパラメータとその説明を示します。

パラメータ 説明

field_to_parse

正規表現を使用して解析する必要があるフィールドを指定します。

regular_expression

既存のフィールドの解析に使用する正規表現を指定します。

正規表現構成のフォーマットは、RE2Jパターン一致に準拠している必要があり、少なくとも1つの名前付き取得グループが含まれている必要があります。正規表現構文を参照してください。

次のコマンドは、エンティティ・フィールドのコンテンツを2つの部分に分割します。たとえば、パターンを持つエンティティ値host-phx-1.oci.oraclecloud.comは、HostおよびDomainという2つの仮想フィールドに分割され、その値はhost-phx-1およびoci.oraclecloud.comです。

* | extract field = Entity '(?P<Host>\w+)\.?(?P<Domain>.*)'

次のコマンドは、ErrorInfoフィールドの接尾辞を含むErrorCodeという新しい仮想フィールドを作成します。これは、ルックアップ表Error Idsのキーとして使用できます。これを使用して、ルックアップ表の説明および修正ステップを検索し、各エラーの発生回数と修正方法の表形式のサマリーを取得できます。

'Log Source' like '%database%' 
    | extract field = ErrorInfo 'ora-(?P<ErrorCode>.*)' 
    | lookup table="error ids" select error_description, 
        error_remediation using error_id = ErrorCode 
    | stats count, unique(error_description), 
        unique(error_remediation) by ErrorInfo