

# 文字列操作プロセッサ
<a name="string-processors"></a>

文字列プロセッサは、ケース変換、トリミング、パターン一致などの操作を通じて、ログイベント内のテキスト値を変更します。

## lowercase\$1string プロセッサ
<a name="lowercase-string-processor"></a>

指定したフィールドを小文字に変換します。

**設定**  
以下のパラメータを使用して lowercase\$1string プロセッサを設定します。

```
processor:
  - lowercase_string:
      with_keys: ["status", "method"]
```パラメータ

`with_keys` (必須)  
小文字に変換するフィールド名の配列。文字列値のみを処理します。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## uppercase\$1string プロセッサ
<a name="uppercase-string-processor"></a>

指定したフィールドを大文字に変換します。

**設定**  
次のパラメータを使用して uppercase\$1string プロセッサを設定します。

```
processor:
  - uppercase_string:
      with_keys: ["status_code", "method"]
```パラメータ

`with_keys` (必須)  
大文字に変換するフィールド名の配列。文字列値のみを処理します。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## trim\$1string プロセッサ
<a name="trim-string-processor"></a>

指定したフィールドから先頭と末尾の空白を削除します。

**設定**  
以下のパラメータを使用して trim\$1string プロセッサを設定します。

```
processor:
  - trim_string:
      with_keys: ["message", "user_input"]
```パラメータ

`with_keys` (必須)  
空白をトリミングするフィールド名の配列。文字列値のみを処理します。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## substitute\$1string プロセッサ
<a name="substitute-string-processor"></a>

正規表現を使用して文字列の置換を行います。

**設定**  
次のパラメータを使用して substitute\$1string プロセッサを設定します。

```
processor:
  - substitute_string:
      entries:
        - source: "message"
          from: "ERROR"
          to: "WARN"
```パラメータ

`entries` (必須)  
各ログイベントに対して実行する置換操作の配列。

`entries[].source` (必須)  
文字列置換を実行するフィールド。

`entries[].from` (必須)  
一致したら置換を行う正規表現パターン。

`entries[].to` (必須)  
一致したパターンの置換文字列。

`when` (オプション)  
プロセッサレベルの条件式。指定すると、式が false と評価された場合、プロセッサ全体がスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when` (オプション)  
エントリレベルの条件式。指定すると、式が false と評価された場合、このエントリのみがスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when_else` (オプション)  
同じプロセッサ内の他の `when` 条件のいずれも一致しない場合にのみ実行されるフォールバックエントリ。式値は、どの `when` 条件を考慮するかを識別します。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## truncate プロセッサ
<a name="truncate-processor"></a>

フィールド値を指定した長さに切り詰めます。

**設定**  
次のパラメータを使用して、truncate プロセッサを設定します。

```
processor:
  - truncate:
      source_keys: ["message", "description"]
      length: 100
      start_at: 0
```パラメータ

`source_keys` (必須)  
切り詰めるフィールド名の配列。各フィールド名の最大文字数は 128 文字です。

`length` (オプション)  
切り詰め後の最大長。範囲は 1～8192 です。

`start_at` (オプション)  
切り捨ての開始位置。範囲は 0～8192 です。デフォルトは 0 です。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## extract\$1value プロセッサ
<a name="extract-value-processor"></a>

正規表現を使用して値を抽出します。

**設定**  
次のパラメータを使用して extract\$1value プロセッサを設定します。

```
processor:
  - extract_value:
      entries:
        - source: "message"
          target: "extracted_data"
          from: "user=(?<user>\\w+)"
          to: "${user}"
          target_type: "string"
```パラメータ

`entries` (必須)  
抽出操作の配列。最大 20 エントリ。

`entries[].source` (必須)  
抽出元のフィールド。最大 128 文字

`entries[].target` (必須)  
抽出された値のターゲットフィールド。最大 128 文字

`entries[].from` (必須)  
正規表現パターン。最大 128 文字

`entries[].to` (必須)  
キャプチャグループを使用した置換パターン。最大 128 文字

`entries[].target_type` (オプション)  
ターゲットデータ型 (「integer」、「double」、「string」、「boolean」)

`when` (オプション)  
プロセッサレベルの条件式。指定すると、式が false と評価された場合、プロセッサ全体がスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when` (オプション)  
エントリレベルの条件式。指定すると、式が false と評価された場合、このエントリのみがスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when_else` (オプション)  
同じプロセッサ内の他の `when` 条件のいずれも一致しない場合にのみ実行されるフォールバックエントリ。式値は、どの `when` 条件を考慮するかを識別します。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## convert\$1entry\$1type プロセッサ
<a name="convert-entry-type-processor"></a>

異なるデータ型間でフィールド値を変換します。

**設定**  
次のパラメータを使用して convert\$1entry\$1type プロセッサを設定します。

```
processor:
  - convert_entry_type:
      key: "count"
      type: "integer"
```パラメータ

`key` (必須)  
変換する単一のフィールド名。

`type` (必須)  
ターゲットデータ型。オプション:「integer」、「double」、「string」、「boolean」

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## date プロセッサ
<a name="date-processor"></a>

日付/時刻フィールドを解析してフォーマットします。

**設定**  
次のパラメータを使用して date プロセッサを設定します。

```
processor:
  - date:
      match:
        - key: "timestamp"
          patterns: ["yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"]
      destination: "@timestamp"
      source_timezone: "UTC"
      destination_timezone: "America/New_York"
```パラメータ

`match` (必須)  
日付一致設定の配列。最大 10 エントリ。

`match[].key` (必須)  
日付文字列を含むフィールド。最大 128 文字

`match[].patterns` (必須)  
試行する日付形式パターンの配列。最大 5 つのパターン、各パターンの最大文字数は 256 文字です。

`destination` (オプション)  
解析されたすべての日付用の単一のターゲットフィールド。最大 128 文字

`source_timezone` (オプション)  
解析用のソースタイムゾーン。

`destination_timezone` (オプション)  
出力用のターゲットタイムゾーン。

`output_format` (オプション)  
出力日付形式。最大 64 文字

`destination_type` (オプション)  
出力タイプ –「timestampz」、「long」、または「string」

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## dissect プロセッサ
<a name="dissect-processor"></a>

パターン一致を使用して構造化データを抽出します。

**設定**  
次のパラメータを使用して dissect プロセッサを設定します。

```
processor:
  - dissect:
      map:
        message: "%{timestamp} %{level}"
```パラメータ

`map` (必須)  
dissect パターンを使用したフィールドマッピング。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## list\$1to\$1map プロセッサ
<a name="list-to-map-processor"></a>

配列フィールドをマップ構造に変換します。

**設定**  
次のパラメータを使用して list\$1to\$1map プロセッサを設定します。

```
processor:
  - list_to_map:
      source: "tags"
      key: "name"
      value_key: "value"
      target: "tag_map"
```パラメータ

`source` (必須)  
配列データを含むフィールド。最大 128 文字

`key` (必須)  
マップキーとして使用するフィールド名。最大 128 文字

`value_key` (オプション)  
マップ値として使用するフィールド名。最大 128 文字

`target` (オプション)  
マップ構造のターゲットフィールド。最大 128 文字

`flatten` (オプション)  
生成されたマップをフラット化するかどうかの選択。

`flattened_element` (オプション)  
フラット化するときに使用する要素 (「first」または「last」）。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## rename\$1keys プロセッサ
<a name="rename-keys-processor"></a>

ログイベントのフィールドの名前を変更します。

**設定**  
次のパラメータを使用して rename\$1keys プロセッサを設定します。

```
processor:
  - rename_keys:
      entries:
        - from_key: "old_name"
          to_key: "new_name"
          overwrite_if_to_key_exists: true
```パラメータ

`entries` (必須)  
名前変更操作の配列。最大 5 エントリ。

`entries[].from_key` (必須)  
現在のフィールド名。最大 128 文字

`entries[].to_key` (必須)  
新しいフィールド名。最大 128 文字

`entries[].overwrite_if_to_key_exists` (オプション)  
既存のターゲットフィールドを上書きするかどうかの選択。

`when` (オプション)  
プロセッサレベルの条件式。指定すると、式が false と評価された場合、プロセッサ全体がスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when` (オプション)  
エントリレベルの条件式。指定すると、式が false と評価された場合、このエントリのみがスキップされます。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

`entries[].when_else` (オプション)  
同じプロセッサ内の他の `when` 条件のいずれも一致しない場合にのみ実行されるフォールバックエントリ。式値は、どの `when` 条件を考慮するかを識別します。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## select\$1entries プロセッサ
<a name="select-entries-processor"></a>

イベントから指定したフィールドのみを選択します。

**設定**  
次のパラメータを使用して select\$1entries プロセッサを設定します。

```
processor:
  - select_entries:
      include_keys: ["timestamp", "level", "message"]
```パラメータ

`include_keys` (必須)  
保持するフィールド名の配列。最大 50 個のキー、各キーの最大文字数は 128 文字です。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。

## translate プロセッサ
<a name="translate-processor"></a>

ルックアップテーブルを使用してフィールド値を翻訳します。

**設定**  
次のパラメータを使用して translate プロセッサを設定します。

```
processor:
  - translate:
      mappings:
        - source: "status_code"
          targets:
            - target: "status_text"
              map:
                "200": "OK"
                "404": "Not Found"
```パラメータ

`mappings` (必須)  
翻訳設定の配列。最大 10 個のマッピング。

`mappings[].source` (必須)  
翻訳するフィールド。最大 128 文字

`mappings[].targets` (必須)  
ターゲット設定の配列。最大 10 個のターゲット。

`mappings[].targets[].target` (必須)  
ターゲットフィールド名。最大 128 文字

`mappings[].targets[].map` (必須)  
翻訳マッピング。最大 100 エントリ、各値の最大文字数は 512 文字。

`when` (オプション)  
このプロセッサを実行するかどうかを決定する条件式。最大長は 256 文字です。「[条件付き処理の式構文](conditional-processing.md)」を参照してください。