1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| 전체 흐름 설명
- curl로 Kafka Connect의 커넥터 정보와 상태를 가져옵니다.
- jq로 JSON 데이터를 변환하여, 각 커넥터의 타입, 이름, 상태, 작업 상태, 클래스 정보를 추출하고, 이를 ":|:"로 구분된 문자열로 만듭니다.
- column 명령어로 출력 결과를 테이블 형식으로 예쁘게 정렬합니다.
- sed 명령어로 큰따옴표를 제거하여 출력 결과를 깔끔하게 만듭니다.
- sort로 알파벳 순으로 결과를 정렬하여 출력합니다.
1. curl -s "http://localhost:8083/connectors?expand=info&expand=status"
curl 명령어는 Kafka Connect REST API로 HTTP 요청을 보내서 커넥터 목록과 그 상태를 가져옵니다.
-s 옵션은 curl의 출력을 "조용하게" 만들어서 진행 정보를 숨깁니다.
?expand=info&expand=status는 각각 커넥터의 **설정 정보(info)**와 **상태(status)**를 함께 요청합니다.
2. jq '. | to_entries[] | [ .value.info.type, .key, .value.status.connector.state, .value.status.tasks[].state, .value.info.config."connector.class"] | join(":|:")'
jq는 JSON 데이터를 처리하는 도구입니다. 이 부분은 JSON 데이터를 다음과 같이 처리합니다:
to_entries[]: JSON 객체를 키-값 쌍의 배열로 변환합니다. 각 커넥터에 대해 하나씩 처리합니다.
[ .value.info.type, .key, .value.status.connector.state, .value.status.tasks[].state, .value.info.config."connector.class"]: 각 항목에 대해 커넥터 타입, 커넥터 이름, 커넥터의 상태, 각 작업(task)의 상태, 커넥터 클래스 정보를 추출합니다.
join(":|:"): 각 항목을 ":|:"로 구분된 하나의 문자열로 연결합니다. 이 구분자는 나중에 출력 결과를 보기 좋게 만들기 위해 사용됩니다.
3. column -s : -t
column 명령어는 텍스트를 테이블 형식으로 정렬하여 출력합니다.
-s :는 각 항목을 : 구분자로 분리하라는 의미입니다.
-t는 테이블 형식으로 출력하도록 지정합니다.
4. sed 's/\"//g'
sed 명령어는 텍스트를 수정하는 데 사용됩니다. 여기서는 "\"" (큰따옴표)을 모두 제거합니다.
이는 출력 결과에서 불필요한 따옴표를 제거하여 좀 더 깔끔하게 보여주기 위한 처리입니다.
5. sort
sort 명령어는 결과를 알파벳 순으로 정렬합니다.
|