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}