우선순위 인사이트 검색 결과가 표시되지 않는 이유는 무엇인가요?

우선순위 인사이트 을 사용하여 IBM® Cloud Logs 에서 검색할 때 예상한 결과가 표시되지 않습니다. 내 로그에서 검색하려는 필드가 존재한다는 것을 알고 있지만 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 을 검색하는 우선순위 인사이트 은 매핑 예외로 인해 결과를 반환하지 않습니다.

매핑 예외가 있는지 확인하려면 IBM Cloud Logs UI를 사용하세요.

매핑 예외를 식별하려면 다음 단계를 완료하세요:

  1. 로그 수 옆에 있는 아이콘이 있는 IBM Cloud Logs UI를 확인하세요.

    매핑 예외 아이콘
    매핑 예외 아이콘

    아이콘 위에 마우스를 올리면 선택한 기간 내 쿼리 결과에서 매핑 예외가 있는 로그의 수가 표시됩니다.

  2. 적절하게 인덱싱되지 않은 특정 로그를 식별하려면 Show Mapping errors 옵션을 활성화하세요.

     매핑 오류를 표시하는 방법을 선택합니다. 설정을 클릭한 다음 매핑 오류 표시를 클릭합니다.
    매핑 오류를 표시하는 방법 선택

  3. 이 옵션을 활성화한 후 브라우저를 새로 고칩니다.

    매핑 예외가 있고 인덱싱되지 않은 필드에는 느낌표가 표시됩니다.

    매핑 예외가 있는 필드 플래깅
    매핑 예외가 있는 필드 플래깅

    매핑 예외가 있는 필드를 빠르게 식별하는 또 다른 방법은 _exists_: coralogix.failed_reason 쿼리를 실행하는 것입니다.

    매핑 예외를 표시하는 쿼리
    매핑 예외를 표시하는 쿼리입니다.

    이 쿼리는 선택한 기간에 대한 매핑 예외가 있는 로그 줄만 반환합니다.

매핑 예외를 해결하는 방법은 두 가지가 있습니다.

  • 옵션 1: 인덱싱 없이 검색

    매핑 예외로 인해 쿼리 시 필드를 찾을 수 없는 경우, All Logs Priority Insights ' 대신 'code1'에서 검색할 수 있습니다. All Logs 에서 검색할 때 인덱싱 및 매핑 예외는 검색을 통해 우회됩니다.

  • 옵션 2: 수집 시 로그 레코드를 수정합니다.

    필드 이름은 같지만 데이터 유형이 다른 새 로그 레코드가 수집되는 것을 방지할 수 있습니다.

    1. 필드 이름을 적절한 접미사로 바꾸려면 RegEx 표현식을 만듭니다. 예를 들어, 다음과 같습니다.

      field_obj
      IBM Cloud Logs 이 문자열을 기대했지만 객체를 찾은 경우:
      • 정규식: ("field"\s*:\s*{)
      • 바꿀 문자열: "field_obj":{
      field_arr
      IBM Cloud Logs 이 문자열을 기대했지만 배열을 찾은 경우:
      • 정규식: ("field"\s*:\s*[)
      • 바꿀 문자열: "field_arr":[
      field_str
      IBM Cloud Logs 이 객체를 기대했지만 문자열을 찾은 경우:
      • 정규식: ("field"\s*:\s*")
      • 바꿀 문자열: "field_str":"
    2. RegEx 사용하여 새로운 로그를 수정하기 위한 구문 분석 바꾸기 규칙을 만듭니다.