( datadog에서는 검색될 값을 용어라고도 부르고 태그라고도 부르는 것 같음 )

데이타독의 로그 검색은 용어와 연산자를 통해서 진행

그리고, 용어에는 두가지 유형이 존재

  • single term ( 단일 용어 )
  • sequence ( 시퀀스, 연속 용어 )

single term

 

띄어 쓰기 단위로 구분된 모든 단어.

예를 들어서 test hello 는 test와 hello 로 이루어진 single term.

다음과 같은 연산자를 사용해 조건을 추가할 수 있다.

연산자 설명 예시

AND 두 용어 모두 포함한 로그 검색 test AND hello
OR 둘 중 하나 용어 포함한 로그 검색 test OR hello
- 이 연산자 다음에 오는 용어는 이벤트에 포함되지 않습니다. (test 는 포함하되, hello 는 포함하지 않는 로그 검색) test AND -hello

 

sequence

 

큰 따옴표로 묶은 단어 그룹

예를 들어서 test hello 를 문자 그대로 검색하고 싶다면 "test hello"로 입력하면 됩니다.

test + "띄어쓰기" + hello 로 구성된 문장이 검색 됩니다.

 

특수문자 검색

 

+ = & | > < ! ( ) { } [ ] ^ " “ ” ~ ? : \ / 같은 특수문자를 검색하려면 \ 이 필요합니다. 또는 sequence 검색을 통해서 문장 전체를 검색하는 방법이 있습니다.

 

와일드카드

 

다중 문자 와일드카드

다중 문자 와일드 카드 검색을 수행하려면 별표 기호 * 를 사용하세요.

  • web* ⇒ web 으로 시작하는 모든 log 검색
  • *web ⇒ web 으로 끝나는 모든 log 검색
  • *web* ⇒ web 이란 문자열을 포함한 모든 log 검색

 

와일드 카드

하나의 문장 자리에, 어떤 문자가 와도 상관 없는 단어를 검색하고 싶은 경우 ? 를 사용합니다.

예를 들어서 4자리의 단어를 검색하는데 맨 앞자리가 f 이고 맨 뒷자리가 m 입니다. 중간 2개의 알파벳은 기억이 나지 않을 때 다음과 같은 문자열을 검색하면 됩니다.

f??m

 

속성검색

 

특정 속성을 검색하려면 @ 키워드를 사용.

예를 들어서 속성 이름이 level이고 level의 값이 INFO 인 데이터를 필터링 하려면 다음과 같이 입력

@level:INFO

 

context, level, logger 등등이 속성이다.

만약, mdc 라는 속성 안에 있는 method 가 "GET" 인 데이터를 찾으려면 아래와 같이 단어를 찾으면 된다.

@mdc.method:GET

이스케이프 문자가 있는 경우

사진 속의 속성인 sessionId 이 !test 인 경우를 찾을 땐, 다음과 같이 두가지 방법으로 찾을 수 있다.

@mdc.sessionId:\!test
  • \ 을 사용
@mdc.sessionId:"!test"
  • 큰 따옴표로 감싸기

 

주의 : 이스케이프 문자를 가진 단어를 포함한 log 검색

속성 검색은 전체 텍스트가 일치하는 경우에만 검색이 됩니다.

따라서 단어 일부를 포함하고 있는 데이터를 검색하고 싶다면 다중 문자 와일드 카드를 사용해서 검색해야 합니다.

// mdc 의 params 속성의 텍스트가 code=YA 를 포함하는 경우 집계
@mdc.params:code=YA

=> @mdc.params:code=YA* 으로 변경하여야 함

특수문자가 들어갔는데, 다중 문자 와일드 카드를 사용하고 싶은 경우 에는 sequence 검색을 사용할 수 없습니다.

// mdc 의 params 속성이 {code=YA, message=null} 을 검색하고 싶은 경우
@mdc.params:{code=YA

=> @mdc.params:\{code=YA* 으로 변경해야 합니다.

sequence 를 사용해서 검색하려면 @mdc.params:"{code=YA, message=null}" 을 사용해야 합니다.

sequence 와 다중 와일드 카드를 섞어 사용할 수는 없습니다. @mdc.params:"{code=YA,"*

 

숫자 검색

 

숫자는 다음과 같이 숫자 연산자를 사용할 수 있습니다. http 응답시간 100ms 를 초과하는 데이터를 검색하고 싶은 경우 다음과 같이 검색할 수 있습니다.

@http.response_time:>100

특정 범위 내의 값을 검색하고 싶은 경우 이렇게 할 수 있습니다.

@http.response_time:[400 TO 499]

응답시간이 400ms 를 초과하고 499 ms 는 넘지 않는 로그 검색

 

태그

 

( datadog에서는 검색될 값을 용어라고도 부르고 태그라고도 부르는 것 같음 )

사용될 값들은 따로 사용하거나, 하나로 묶어서 사용할 수도 있습니다.

  • test : test 문자열을 포함한 log 검색
  • env:(prod OR test) : env 속성이 prod 이거나 test 인 log 검색
  • (env:prod AND -version:beta) : env 속성 값이 prod 이고, version 속성 값이 beta 가 아닌 값 검색