Perché non vedo i risultati delle mie ricerche su Insight priorità?
Quando si effettua una ricerca in IBM® Cloud Logs utilizzando Insight priorità non vengono restituiti i risultati attesi. So che i campi che cerco nei miei registri esistono, ma IBM Cloud Logs non sembra trovarli con le mie ricerche.
La ricerca dei valori dei campi non restituisce i risultati attesi.
Il problema è spesso legato a un'eccezione di mappatura.
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:
StringNumericObjectArray
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.
È possibile determinare se ci sono eccezioni di mappatura usando l'interfaccia utente IBM Cloud Logs.
Per identificare le eccezioni di mappatura, completare i seguenti passaggi:
-
Controllare l'interfaccia utente IBM Cloud Logs per trovare un'icona accanto al conteggio dei log:
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.
-
Per identificare i registri specifici che non sono stati indicizzati correttamente, attivare l'opzione
Show Mapping errors:
Selezione di come mostrare gli errori di mappatura -
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 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. 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 Logsinvece che inPriority Insights. Quando si cerca inAll 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.
-
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":{
- Espressione regolare:
field_arr- Se IBM Cloud Logs si aspetta una stringa, ma ha trovato un array:
- Espressione regolare:
("field"\s*:\s*[) - Sostituisci con:
"field_arr":[
- Espressione regolare:
field_str- Se IBM Cloud Logs si aspettava un oggetto, ma ha trovato una stringa:
- Espressione regolare:
("field"\s*:\s*") - Sostituisci con:
"field_str":"
- Espressione regolare:
-
Creare una regola di parsing replace per correggere i nuovi registri usando la RegEx.
-