Rename keys processor
출처: 문서
본문
키 이름 변경 프로세서
rename_keys 프로세서는 이벤트의 키 이름을 변경해요.
구성
rename_keys 프로세서는 다음 옵션으로 구성할 수 있어요.
| 옵션 | 필수 | 설명 |
|---|---|---|
entries |
예 | 이름을 변경할 이벤트 항목의 목록이에요. |
from_key |
예 | 이름을 변경할 항목의 키예요. |
to_key |
예 | 항목의 새 키예요. |
overwrite_if_to_key_exists |
아니요 | true로 설정하면 이벤트에 key가 이미 있을 때 기존 값을 덮어써요. 기본값은 false예요. |
사용법
시작하려면 다음 pipeline.yaml 파일을 생성해요.
rename-keys-nested-pipeline:
source:
http:
path: /logs
ssl: false
processor:
- rename_keys:
entries:
# Top-level rename
- from_key: message
to_key: msg
# Level-2 (nested) renames — use slash paths
- from_key: user/name
to_key: user/username
- from_key: user/id
to_key: user/user_id
- from_key: http/response/code
to_key: http/status_code
# If a target exists already, overwrite it
- from_key: env
to_key: metadata/environment
overwrite_if_to_key_exists: true
sink:
- opensearch:
hosts: ["https://opensearch:9200"]
insecure: true
username: admin
password: admin_password
index_type: custom
index: rename-%{yyyy.MM.dd}
{% include copy.html %}
다음 명령어로 이 파이프라인을 테스트할 수 있어요.
curl -sS -X POST "http://localhost:2021/logs" \
-H "Content-Type: application/json" \
-d '[
{
"message": "hello world",
"user": { "name": "alice", "id": 123 },
"http": { "response": { "code": 200 } },
"env": "prod",
"metadata": { "environment": "staging" }
},
{
"message": "goodbye",
"user": { "name": "bob", "id": 456 },
"http": { "response": { "code": 503 } },
"env": "dev"
}
]'
{% include copy.html %}
OpenSearch에 저장된 문서에는 다음 정보가 포함돼요.
{
...
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1,
"hits": [
{
"_index": "rename-2025.11.04",
"_id": "kq3NTpoBNvg1WLcAJOak",
"_score": 1,
"_source": {
"user": {
"username": "alice",
"user_id": 123
},
"http": {
"response": {},
"status_code": 200
},
"metadata": {
"environment": "prod"
},
"msg": "hello world"
}
},
{
"_index": "rename-2025.11.04",
"_id": "k63NTpoBNvg1WLcAJOak",
"_score": 1,
"_source": {
"user": {
"username": "bob",
"user_id": 456
},
"http": {
"response": {},
"status_code": 503
},
"msg": "goodbye",
"metadata": {
"environment": "dev"
}
}
}
]
}
}
특별 고려 사항
이름 변경 작업은 pipeline.yaml 파일에 키-값 쌍 항목이 나열된 순서대로 수행돼요. 즉, rename_keys 프로세서에서는 키-값 쌍이 순차적으로 이름 변경되는 체이닝이 암시적으로 이루어져요. 다음 예시 pipeline.yaml 파일을 참조하세요.
processor:
- rename_keys:
entries:
- from_key: "message"
to_key: "message2"
- from_key: "message2"
to_key: "message3"
프로세서가 {"message": "hello"}를 수신하면 결과 출력은 다음과 같아요.
{"message3": "hello"}