Pipeline Model 구성
- Vector의 Pipeline Model은 여러 데이터 처리 컴포넌트로 구성되어 DAG(Directed Acyclic Graph)를 기반으로 설계됐습니다. 각 처리 컴포넌트는 전체 프로세스에서 특정 기능(Source, Transform, Sink)을 독립적으로 수행합니다.
- 각 파이프라인은 YAML, TOML, JSON 포맷의 형태로 정의할 수 있고, 템플릿화를 구현하기 위해 Jsonnet이나 CUE를 이용할 수 있습니다.
- Vector에서는 SIGHUP 프로세스를 기반으로 Hot reloading을 지원해 별도의 재기동 없이 파이프라인 설정을 업데이트 할 수 있습니다.
DAG(Directed Acyclic Graph)
- 비순환성을 가지는 그래프 구조로 각 노드 간의 일반향 연결을 나타냅니다. 즉, 방향성은 있지만 사이클이 없는 그래프를 나타냅니다.
- 이 같은 DAG는 프로세스나 워크플로우 전체에 적용할 수 있습니다. 그래프 내에는 노드와 노드를 잇는 엣지가 각각 존재합니다. 각 엣지는 방향성을 가지며 처음 시작한 노드는 전체 프로세스가 끝날 때까지 돌아오지 않습니다.
SIGHUP
- SIGHUP은 "hangup"의 약자로, Unix 계열 운영 체제에서 사용되는 시그널(signal)의 한 종류입니다.
- 전통적으로 SIGHUP은 사용자의 터미널 세션이나 네트워크 연결이 끊어졌을 때 해당 프로세스에 전달되는 신호로만 사용되었습니다.
- 기술이 발전됨에 따라 SIGHUP 시그널을 자체적으로 처리할 수 있는 커스텀 핸들링이 가능해져 데몬이나 백그라운드 서비스 프로세스를 재구성하는데 사용할 수 있게 되었습니다. 이 경우 SIGHUP을 프로세스에서 수신하면 설정 파일을 다시 읽거나 로그 파일을 재개방 하는 등 작업을 수행할 수 있습니다.
참조
https://vector.dev/docs/about/under-the-hood/architecture/pipeline-model/