본문 바로가기
WIKI 기술 지식 베이스

Truncate processor

원문 보기 위키 갱신

출처: 문서

본문

Truncate processor

truncate 프로세서는 프로세서 구성에 따라 키 값의 문자열을 시작, 끝 또는 양쪽에서 잘라요. 키 값이 리스트인 경우 문자열 리스트의 각 멤버가 잘려요. 리스트의 문자열이 아닌 멤버는 잘리지 않아요. truncate_when 옵션이 제공되면 처리 중인 이벤트에 대해 지정된 조건이 true인 경우에만 입력이 잘려요.

구성

다음 옵션을 사용하여 truncate 프로세서를 구성할 수 있어요.

옵션 필수 유형 설명
entries Yes String list 이벤트에 추가할 항목 목록이에요.
source_keys No String list 프로세서가 수정할 소스 키 목록이에요. 기본값은 빈 목록이며, 모든 값이 잘린다는 것을 의미해요.
truncate_when No Conditional expression truncate 작업이 수행되는 조건을 지정해요.
start_at No Integer 문자열 값에서 자르기를 시작할 위치예요. 기본값은 0이며, 각 키 값의 시작 부분에서 자르기를 시작하도록 지정해요.
length No Integer 자른 후 문자열의 길이예요. 지정하지 않으면 프로세서는 문자열이 끝나는 위치를 기준으로 길이를 측정해요.

truncate 프로세서가 실행되려면 구성에 start_at 또는 length 옵션이 있어야 해요. 문자열에서 자르기가 발생하는 위치를 추가로 사용자 지정하기 위해 구성에서 두 값을 모두 정의할 수 있어요.

사용법

다음 예제는 pipeline.yaml 파일에서 truncate 프로세서를 구성하는 방법을 보여줘요.

예: 최소 구성

다음 예제는 truncate 프로세서의 최소 구성을 보여줘요.

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - truncate:
        entries:
          - source_keys: ["message1", "message2"]
            length: 5
          - source_keys: ["info"]
            length: 6
            start_at: 4
          - source_keys: ["log"]
            start_at: 5
  sink:
    - stdout:

예를 들어, 다음 이벤트에는 문자열 값이 있는 여러 키가 포함되어 있어요.

{"message1": "hello,world", "message2": "test message", "info", "new information", "log": "test log message"}

truncate 프로세서는 다음과 같은 출력을 생성해요. 여기서:

  • message1 및 message 2 키의 start_at 설정은 0이에요. 이는 문자열 시작 부분에서 자르기가 시작되며 문자열 자체가 길이 5로 잘린다는 것을 나타내요.
  • info 키의 start_at 설정은 4예요. 이는 문자열의 i 문자에서 자르기가 시작되며 문자열이 길이 6으로 잘린다는 것을 나타내요.
  • log 키의 start_at 설정은 5이며 길이가 지정되지 않았어요. 이는 문자열의 l 문자에서 자르기가 시작된다는 것을 나타내요.
{"message1":"hello", "message2":"test ", "info":"inform", "log": "log message"}

예: truncate_when 사용

다음 예제 구성은 truncate_when 옵션이 구성된 truncate 프로세서를 보여줘요.

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - truncate:
        entries:
          - source_keys: ["message"]
            length: 5
            start_at: 8
            truncate_when: '/id == 1'
  sink:
    - stdout:

다음 예제에는 두 개의 이벤트가 포함되어 있어요.

{"message": "hello, world", "id": 1}
{"message": "hello, world,not-truncated", "id": 2}

truncate 프로세서가 이벤트에서 실행되면 id 키에 값 1이 포함되어 있기 때문에 첫 번째 이벤트만 잘려요.

{"message": "world", "id": 1}
{"message": "hello, world,not-truncated", "id": 2}

더 알아보기 (Learn more)