データマッピングの例外管理

IBM Cloud Logsでは、優先順位の洞察データパイプラインを通して取り込まれたデータが、異なるタイプのログレコードから送信された同じフィールドを検出すると、データマッピング例外が発生することがあります。

例えば、アプリケーションから取り込まれたログでは、ストリング型のフィールドが表示され、別のアプリケーションによって生成された別のログでは、同じフィールドが数値または別の型として表示されます。 これにより、マッピング例外が発生します。

以前IBM Cloud Logsによって取り込まれたフィールド名を持つ新しいログフィールドが取り込まれた場合、マッピング例外が発生することがあります。 IBM Cloud Logsが取り込まれたデータをインデックスするとき、フィールドを以下のタイプのいずれかにマップしようとします:

  • String
  • Numeric
  • Object
  • Array

例えば、フィールド user が取り込まれ、最初に受け取った値が "username "であった場合、IBM Cloud Logsはフィールド user に対して string 型のインデックスを作成します:

"user": “username”`

後日、新しいログが取り込まれた場合、そのログには「user」というフィールドがあり、このようなフォーマットになっている:

"user": {
  “email”: “username@yourcompany.com”,
  ”login”: “username”`
}

IBM Cloud Logsにマッピング例外が作成されます。 user というフィールドを探す 優先順位の洞察 検索は、 user フィールドを持つ最初のログを取り込むことから、 string 値を持つことが予想される。

array 型(user.email または user.login )を持つ user を探す 優先順位の洞察 検索は、マッピング例外のため結果を返しません。

マッピング例外の数の確認

マッピング例外の数を確認するには、ナビゲーション・バーで、 「使用状況」 アイコン 「使用状況」アイコン > 「マッピング統計」 をクリックします。 「マッピング例外-今日の数 (Mapping Exceptions-Today 's count)」 セクションで、マッピング例外の日次合計数を取得できます。

マッピング例外のあるフィールドの識別

マッピング例外の原因となったフィールドを識別するために、以下の照会を実行できます。

_exists_:"coralogix.failed_reason"

マッピング例外を含むデータの検索

優先順位の洞察で検索する場合、マッピング例外を含むログレコードはフリーテキストクエリでのみ検索できます。

インスタンスに関連付けられているデータバケットがある場合、All Logs からログを検索できます。 フリーテキストクエリ、またはキーと値のペアを使用して検索することができます。

アラート

アラートはデータマッピング例外の影響を受けず、通常通りトリガーされる。

マッピング例外のあるフィールドの修正

マッピング例外を修正するには、マッピング例外を報告するフィールドと、異なるタイプの同じフィールドを送信するアプリケーションを識別します。 その後、ソースで問題の修正を試みてください。

マッピングの例外を特定するには、以下の手順を実行します:

  1. IBM Cloud LogsのUIで、ログ数の横にアイコンがあるか確認してください:

    マッピング例外アイコン
    マッピング例外アイコン

    アイコンにカーソルを合わせると、選択した時間枠内のクエリ結果内のマッピング例外を含むログの数が表示されます。

  2. 適切にインデックスされなかった特定のログを特定するには、Show Mapping errors オプションを有効にします:

    ![マッピングエラーの表示方法を選択します。 設定]をクリックし、[マッピングエラーを表示]をクリックします。](../images/me_02a.png)

  3. このオプションを有効にしたら、ブラウザを更新してください。

    マッピング例外があり、インデックスが作成されなかったフィールドには感嘆符が表示されます。

    マッピング例外のあるフィールドのフラグ
    マッピング例外のあるフィールドのフラグ

    どのフィールドにマッピング例外があるかを素早く特定するもう一つの方法は、クエリを実行することです:_exists_: coralogix.failed_reason

    マッピングの例外を表示するクエリ
    マッピングの例外を表示するクエリ。

    このクエリは、選択した時間枠にマッピング例外があるログ行のみを返します。

マッピングの例外を解決する方法は2つある:

  • オプション1:インデックスを作成せずに検索する。

    マッピングの例外のためにフィールドが見つからない場合は、Priority Insights の代わりに All Logs で検索することができます。 All Logs で検索する場合、インデックスとマッピングの例外は検索によってバイパスされます。

  • オプション2:取り込み時にログレコードを修正する。

    同じフィールド名でデータ型が異なる新しいログレコードが取り込まれるのを修正することができます。

    1. RegEx 式 を作成し、フィールド名を適切なsufixに置き換える。 以下に例を示します。

      field_obj
      IBM Cloud Logsが文字列を期待していたのにオブジェクトが見つかった場合:
      • 正規表現:("field"\s*:\s*{)
      • 置換する文字列(R): "field_obj":{
      field_arr
      IBM Cloud Logsが文字列を期待していたのに配列が見つかった場合:
      • 正規表現:("field"\s*:\s*[)
      • 置換する文字列(R): "field_arr":[
      field_str
      IBM Cloud Logsがオブジェクトを期待していたのに文字列が見つかった場合:
      • 正規表現:("field"\s*:\s*")
      • 置換する文字列(R): "field_str":"
    2. RegExを使用して新しいログを修正するために、解析 置換ルール を作成します。