Gestione delle eccezioni di mappatura dei dati

In IBM Cloud Logs, è possibile ottenere un'eccezione di mappatura dei dati quando i dati ingeriti attraverso la pipeline di dati Insight priorità rilevano lo stesso campo inviato da diversi record di log con tipi diversi.

Ad esempio, in un log inserito da un'applicazione, viene visualizzato un campo con stringa di tipo e in un altro log generato da un'applicazione differente, lo stesso campo viene gestito come un numero o un tipo diverso. Ciò causa un'eccezione di associazione.

Può verificarsi un'eccezione di mappatura se vengono ingeriti nuovi campi di log con nomi di campi che sono stati precedentemente ingeriti da IBM Cloud Logs, ma con un tipo di valore diverso. Quando IBM Cloud Logs indicizza i dati ingeriti, cerca di mappare i campi a uno dei seguenti tipi:

  • String
  • Numeric
  • Object
  • Array

Se, ad esempio, il campo user è stato ingerito e il primo valore ricevuto è "username", IBM Cloud Logs creerà un indice di tipo string per il campo user:

"user": “username”`

Se in seguito viene ingerito un nuovo log che ha anche un campo chiamato "utente", formattato in questo modo:

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

Viene creata un'eccezione di mappatura in IBM Cloud Logs. Qualsiasi ricerca di Insight priorità alla ricerca di un campo denominato user dovrebbe avere un valore string basato sul primo log ingerito con un campo user.

Qualsiasi ricerca su Insight priorità che cerchi un user con il tipo array (user.email o user.login) non restituirà alcun risultato a causa dell'eccezione di mappatura.

Controllo del numero di eccezioni di associazione

Per controllare il numero di eccezioni di mappatura, nella barra di navigazione, fare clic sull'icona Utilizzo Icona Utilizzo > Statistiche mappatura. È possibile ottenere il numero totale giornaliero di eccezioni di associazione nella sezione Eccezioni di associazione - Conteggio di oggi.

Identificazione di campi con eccezioni di associazione

Per identificare i campi che hanno causato le eccezioni di associazione, è possibile eseguire la seguente query:

_exists_:"coralogix.failed_reason"

Ricerca di dati che includono eccezioni di mappatura

Quando si effettua una ricerca in Insight priorità, i record di log che includono un'eccezione di mappatura possono essere ricercati solo utilizzando una query di testo libero.

Se all'istanza è associato un bucket di dati, è possibile cercare i registri attraverso Tutti i registri. È possibile effettuare la ricerca utilizzando una query di testo libero o utilizzando coppie chiave:valore.

Avvisi

Gli avvisi non sono influenzati dalle eccezioni di mappatura dei dati e continueranno a essere attivati normalmente.

Correzione dei campi con eccezioni di associazione

Per risolvere un'eccezione di mappatura, identificare il campo che riporta un'eccezione di mappatura e le applicazioni che inviano lo stesso campo con tipi differenti. Quindi, provare a risolvere il problema all'origine.

Per identificare le eccezioni di mappatura, completare i seguenti passaggi:

  1. Controllare l'interfaccia utente IBM Cloud Logs per trovare un'icona accanto al conteggio dei log:

    Icona mappatura eccezioni
    Icona mappatura eccezioni

    Passando il mouse sull'icona viene visualizzato il numero di registri con eccezioni di mappatura nei risultati della query nell'intervallo di tempo selezionato.

  2. Per identificare i registri specifici che non sono stati indicizzati correttamente, attivare l'opzione Show Mapping errors:

    Selezione della modalità di visualizzazione degli errori di mappatura. Fare clic su Impostazioni e poi su Mostra errori di mappatura.
    Selezione di come mostrare gli errori di mappatura

  3. Dopo aver attivato questa opzione, aggiornare il browser.

    Un punto esclamativo verrà visualizzato sui campi che presentano eccezioni di mappatura e non sono stati indicizzati.

    Flagging dei campi con eccezioni di mappatura
    Flagging dei campi con eccezioni di mappatura

    Un altro modo per identificare rapidamente quali campi hanno un'eccezione di mappatura è quello di eseguire la query: _exists_: coralogix.failed_reason

    Query per mostrare le eccezioni di mappatura
    Query per mostrare le eccezioni di mappatura.

    Questa query restituisce solo le righe di registro che presentano un'eccezione di mappatura per l'intervallo di tempo selezionato.

Le eccezioni di mappatura possono essere risolte in due modi:

  • Opzione 1: Ricerca senza indicizzazione.

    Se durante l'interrogazione non si trova un campo a causa di eccezioni di mappatura, è possibile cercare in All Logs invece che in Priority Insights. Quando si cerca in All Logs, le eccezioni di indicizzazione e mappatura vengono aggirate dalla ricerca.

  • Opzione 2: Correggere i record di registro durante l'ingestione.

    È possibile correggere l'ingestione di nuovi record di log con gli stessi nomi di campo ma con tipi di dati diversi.

    1. Creare un'espressione RegEx per sostituire il nome del campo con il prefisso appropriato. Ad esempio:

      field_obj
      Se IBM Cloud Logs si aspetta una stringa, ma ha trovato un oggetto:
      • Espressione regolare: ("field"\s*:\s*{)
      • Sostituisci con: "field_obj":{
      field_arr
      Se IBM Cloud Logs si aspetta una stringa, ma ha trovato un array:
      • Espressione regolare: ("field"\s*:\s*[)
      • Sostituisci con: "field_arr":[
      field_str
      Se IBM Cloud Logs si aspettava un oggetto, ma ha trovato una stringa:
      • Espressione regolare: ("field"\s*:\s*")
      • Sostituisci con: "field_str":"
    2. Creare una regola di parsing replace per correggere i nuovi registri usando la RegEx.