Apache Flink 플러그인
TLS 설정 위치
TLS 모드·CA·클라이언트 인증서와 키·서버 이름·인증서 검증 설정은 보안 > TLS에 표시합니다. 주소·포트 등 실제 연결 설정은 기존 구역에 남습니다. 이 분류 변경은 필드 이름, 저장 값, 기본값, 비밀값 처리와 조건부 표시·검증을 바꾸지 않습니다.
기본 접근성 관측
리소스 개요는 메트릭 소스와 별개로 접근 가능·접근 불가·접근 미확인을 표시합니다. 성공한 접속 확인은 전체 멤버, 복제, 파티션이나 작업의 정상 상태를 보장하지 않습니다. 구체적인 도메인 상태는 진단과 도메인 경보에서 확인합니다. 기존 liveness/readiness 정보는 도메인 상세 증거이며 기본 접근성 경보의 조건이 아닙니다. 미확인은 발생 중인 경보를 복구시키지 않습니다.
TLS
연결 설정의 tls_insecure_skip_verify를 켜면 TLS 암호화는 유지하면서 서버 인증서 검증을 생략합니다. 기본값은 꺼짐이며, 검증을 생략할 때 CA 입력은 필요하지 않습니다. 서버가 상호 TLS를 요구하면 클라이언트 인증서와 키는 여전히 필요합니다. 서버 신원을 검증하려면 기존 CA 기반 검증을 사용하세요.
용량 요약은 4개 카드 한 행을 유지합니다. 작업·태스크 워크로드와 JVM 비교는 2열, 복구 추세 4개는 한 행으로 표시하며 라벨과 시계열은 유지합니다. 기존 개인화 배치와 쿼리 정의는 변경하지 않습니다.
개수는 정수로 표시하고 단위 변환된 밀리초 지속 시간은 필요한 소수 자릿수를 유지하며 백분율 게이지는 0–100 범위를 사용합니다. 태스크 처리량 요약은 시리즈를 합산하며 압박, 지연 시간, CPU, 힙 요약은 가장 높은 시리즈를 표시합니다. 메트릭이나 비율 피연산자가 없으면 알 수 없음으로 유지합니다.
숫자 패널 중 단일 수치의 추세가 유효한 항목은 하단 스파크라인을 표시합니다. 현재 값은 기존 즉시 조회를 유지하고, 별도 이력 조회는 시리즈당 구간별 최대 160개 샘플을 요청합니다. 상태 코드와 복합 계산은 제외하며, 이력 조회 실패는 현재 값을 지우지 않고 ‘추세 조회 불가’로 표시합니다.
Apache Flink 플러그인은 Flink 클러스터를 Konduo 리소스로 등록하고 JobManager REST API와 연결된 Prometheus 메트릭을 이용해 작업 실행, 체크포인트, 처리량, 백프레셔 및 JVM 상태를 보여줍니다.
주요 기능
- JobManager REST API로 클러스터와 실행 중인 작업의 현재 상태를 확인합니다.
- 제한된 REST 응답으로 JobManager, TaskManager, 작업, 클러스터 토폴로지와 실제 Flink 소프트웨어 버전을 수집합니다.
- 기존 작업에 대해 관리자 전용의 사전 검증 우선 취소, 세이브포인트, 세이브포인트 동반 중지와 capability 기반 수동 rescale을 제공합니다.
- Prometheus 매핑팩으로 19개 Flink 논리 메트릭을 제공합니다.
- 16개 기본 패널에서 클러스터 용량, 처리량, 체크포인트 및 JVM 자원을 모니터링합니다.
- 현재 상태와 제한된 기간의 메트릭 근거를 분리해 진단합니다.
- 백프레셔, Task Slot, 체크포인트, 작업 재시작 및 JVM 압박에 대한 관리 경보 규칙을 제공합니다.
등록 전 준비
- Konduo 백엔드에서 접근 가능한 JobManager REST URL을 준비합니다. 기본값은
http://localhost:8081이지만 컨테이너 환경에서localhost는 Konduo 백엔드 컨테이너 자체를 의미할 수 있습니다. - REST API가 Bearer 인증을 요구하면 API 토큰을 준비합니다. 토큰은 민감 설정으로 저장되며 진단 요청의
Authorization헤더에만 사용됩니다. - JobManager와 모든 TaskManager에서 Prometheus reporter를 활성화하고 Prometheus가 해당 엔드포인트를 수집하는지 확인합니다.
- Flink 리소스에 대상 Prometheus 리소스를 메트릭 소스로 연결합니다.
metrics.scope.*또는 reporter 접두어를 변경했다면 기본 매핑팩 대신 환경에 맞는 매핑 규칙을 준비합니다.
연결 설정
| 항목 | 필수 여부 | 기본값 | 설명 |
|---|---|---|---|
endpoint | 필수 | http://localhost:8081 | JobManager REST API의 기준 URL |
api_token | 선택 | 없음 | REST API 요청에 사용하는 Bearer 토큰 |
| 메트릭 소스 연결 | 메트릭 사용 시 필수 | 없음 | 시계열 조회를 수행할 prometheus-plugin 리소스 |
브라우저에서 열리는 URL이라도 Konduo 백엔드 네트워크에서 접근할 수 없으면 진단은 실패합니다. 컨테이너를 사용하는 경우 서비스 DNS 이름, 포트 공개 범위 및 방화벽을 함께 확인하십시오.
등록 및 검증 절차
endpoint와 필요한 경우api_token을 입력하고 연결 테스트를 실행합니다.- 리소스를 저장한 뒤 클러스터 진단에서 Flink 버전, 등록 TaskManager와 전체·사용 가능 Task Slot을 확인합니다.
- Prometheus에서 JobManager와 모든 TaskManager target이
UP인지 확인합니다. - 해당 Prometheus 리소스를 Flink의 메트릭 소스로 연결합니다.
- 실행 중인 작업이 없어도 클러스터와 JVM 패널에 최신 샘플이 표시되는지 확인합니다.
- 시험 작업이 있다면 입력·출력 처리율, busy time, 백프레셔와 체크포인트 패널의 작업·태스크 라벨이 올바른지 확인합니다.
- 관리 경보 9개가 등록되었는지 확인하고, 기본 비활성 상태인 체크포인트 경과 시간·소요 시간 규칙은 워크로드 기준을 정한 뒤 활성화합니다.
- 운영 화면에서 현재 작업 인벤토리를 확인하고, 관리자에게 변경 권한을 부여하기 전에 사전 검증을 실행합니다.
REST 연결 성공과 Prometheus 수집 성공은 별개의 검증입니다. REST 진단이 정상이더라도 reporter 또는 메트릭 소스 연결이 잘못되면 대시보드와 기간 기반 진단은 비어 있을 수 있습니다.
대시보드와 메트릭
대시보드는 기존 패널·쿼리 16개를 유지하면서 개요(용량과 워크로드 8개), 복구(4개), 자원(4개) 화면으로 구성합니다. 용량과 처리량·백프레셔를 함께 확인합니다.
- 클러스터 개요: 등록 TaskManager, 실행 중인 작업, 전체·사용 가능 Task Slot과 사용률
- 워크로드와 백프레셔: 초당 입력·출력 레코드, 태스크 busy time, 백프레셔
- 체크포인트와 복구: 체크포인트 소요 시간·경과 시간·실패 및 작업 재시작
- JVM 자원: JobManager와 TaskManager CPU 및 힙 사용률
작업·태스크 수가 늘어도 범례를 읽을 수 있도록 워크로드 차트는 절반 그리드 폭을 사용합니다. TaskManager CPU와 힙 비교도 절반 폭을 사용합니다. 기존 작업·태스크 라벨 범위와 집계 의미는 바뀌지 않으며 저장된 표시, 행 위치, 순서, 크기가 새 기본값보다 우선합니다.
Task Slot과 JVM 힙 비율은 양수 제한값이 보고되어야 합니다. 제한값이 없거나 0 이하이면 데이터 없음으로 표시하며, 100%를 넘는 값은 익스포터 근거로 그대로 표시합니다.
작업, 태스크 및 체크포인트 패널은 실행 중인 작업이 없을 때 정상적으로 데이터가 없을 수 있습니다. 이 경우 클러스터 개요와 JVM 패널에 데이터가 있다면 전체 메트릭 수집 실패로 판단하지 않습니다.
기본 매핑은 Flink Prometheus reporter의 flink_ 접두어와 기본 논리 scope를 가정합니다. 패널 전체 또는 특정 역할의 패널이 비어 있으면 Prometheus target 상태, 실제 메트릭 이름, 라벨과 적용된 매핑팩을 차례로 확인하십시오.
진단 화면
진단 요약은 현재 REST 근거와 메트릭 근거 준비 상태를 함께 보여주며, 상세 화면은 다음 영역으로 나뉩니다.
- 클러스터: JobManager REST 접근성, 등록 TaskManager 및 Task Slot 용량
- 작업: 실행 중인 작업 상태와 실패·재시작 징후
- 체크포인트: 활성 작업의 최근 체크포인트 결과
- 성능 근거: 백프레셔, 처리량, 체크포인트 및 JVM 논리 메트릭
현재 진단은 /overview, /jobs/overview, /jobs/{jobid}/checkpoints를 제한 시간과 응답 크기 한도 안에서 조회합니다. 현재 REST 진단의 전체 제한 시간은 8초이고 응답별 최대 크기는 2 MiB이며, 체크포인트 조회는 활성 작업 최대 10개로 제한됩니다.
FAILED 작업은 과거 상태 맥락으로 표시되지만 그 사실만으로 현재 경고를 만들지 않습니다. FAILING, RESTARTING, SUSPENDED처럼 현재 실행에 영향을 주는 상태가 실시간 안정성 경고 대상입니다. 배치 또는 stateless 작업은 체크포인트를 사용하지 않을 수 있으므로 체크포인트 활동이 없다는 이유만으로 실패로 판정하지 않습니다.
기간 기반 진단은 연결된 Prometheus에 논리 메트릭 조회를 위임합니다. 메트릭 소스가 없거나 조회할 수 없으면 정상으로 추정하지 않고 사용 불가 근거와 후속 조회 경로를 표시합니다.
진단 실행 버튼은 현재 근거를 다시 수집할 뿐 결과 이력을 저장하지 않습니다. 플러그인 재시작 여부와 관계없이 이전 진단 결과를 조회하는 영구 저장소는 제공하지 않습니다.
인벤토리와 작업 운영
클러스터 인벤토리는 /overview, /taskmanagers, /jobs/overview를 결합합니다. 토폴로지 화면은 클러스터, JobManager, TaskManager 및 작업의 각 관계를 뒷받침하는 REST 경로를 함께 기록합니다. 인벤토리 스냅샷은 작업과 TaskManager를 각각 최대 500개로 제한하며, 잘린 경우 이를 명시합니다.
운영 화면은 기존 작업에 대해 다음 작업을 지원합니다.
- 취소:
PATCH /jobs/{jobid}?mode=cancel요청 - 세이브포인트: 작업을 취소하지 않고
POST /jobs/{jobid}/savepoints요청 - 세이브포인트와 함께 중지: 필요하면 소스를 먼저 drain한 뒤
POST /jobs/{jobid}/stop요청 - Rescale:
/config가features.web-rescale=true를 명시적으로 보고한 경우PATCH /jobs/{jobid}/rescaling?parallelism=<값>요청
네 작업은 모두 관리자 역할이 필요하고 기본값은 사전 검증입니다. 사전 검증은 Flink를 변경하지 않고 작업 ID와 현재 상태를 확인합니다. 실제 실행에는 정확한 CANCEL <job-id>, SAVEPOINT <job-id>, STOP <job-id> 또는 RESCALE <job-id> TO <병렬도> 문구와 운영 사유가 필요합니다. 요청 ID와 티켓 ID는 감사 맥락으로 보존됩니다. 세이브포인트 작업에서는 요청 ID로 안정적인 trigger ID를 만들어 Flink가 비동기 요청을 보존하는 동안 안전하게 재시도할 수 있습니다.
Rescale 사전 검증은 현재·요청 병렬도와 증감량, 전체·가용 slot, 예상 부족량, 구성된 상한 및 Flink가 보고한 자원 요구사항 하한·상한을 표시합니다. 현재와 같은 값, 양수가 아닌 값, 상한 초과 값과 RUNNING이 아닌 작업은 거절합니다. web-rescale capability가 없거나 비활성 또는 조회 불가이면 버전 문자열만으로 지원을 추정하지 않고 액션을 비활성 상태로 유지합니다. 용량 변경 전 연결된 경보와 진단 근거를 검토하십시오. 자동 스케일링 정책은 수행하지 않습니다.
운영 상태 요약은 정상 유휴 상태(idle/no_jobs)와 JobManager REST 연결 실패를 구분합니다. 실행 권한이 없거나 현재 작업 상태에서 안전하지 않은 행 작업은 사라지지 않고 비활성 사유를 표시합니다. 취소는 활성 상태에서만, 세이브포인트와 세이브포인트 동반 중지는 RUNNING 상태에서만 사용할 수 있습니다.
상세 보기는 선택한 작업에 대해서만 JobManager REST 근거를 조회합니다. 작업 개요와 vertex, 제한·정제된 최근 예외, 체크포인트 이력, vertex별 백프레셔, subtask와 TaskManager 배치를 각각 독립적으로 표시합니다. Flink 버전에서 특정 endpoint를 지원하지 않거나 일부 요청만 실패하면 나머지 근거는 유지되고 해당 블록만 사용 불가로 표시됩니다. 각 결과의 수집 시각, 원본 REST route, 신선도와 잘림 여부를 함께 확인하십시오. 원시 stack trace는 표시하지 않습니다.
취소와 세이브포인트 요청은 비동기입니다. 수락된 요청은 현재 브라우저 세션의 진행 중·최근 작업 표에 표시됩니다. Konduo는 제한된 시간 동안 operations/status를 조회하고 수동 상태 재확인을 지원하며, 같은 작업과 요청 ID로 아직 결론이 나지 않은 요청을 다시 실행하지 못하게 합니다. 세이브포인트, 세이브포인트 동반 중지와 rescale은 작업별 경합 범위도 공유하므로 같은 브라우저 세션에서 하나가 미결이면 다른 작업을 시작할 수 없습니다. 페이지를 닫으면 조회와 세션 목록이 종료되므로 영구 이력은 플랫폼 감사 로그에서 확인하십시오. 요청 전달 후 연결이 끊기면 Konduo는 결과 불명으로 보고합니다. 실패로 단정해 다시 요청하지 말고 먼저 상태를 조정해야 합니다.
세이브포인트 카탈로그와 폐기
Konduo가 세이브포인트 또는 세이브포인트 동반 중지 요청의 완료를 확인하면 운영 화면의 리소스 범위 카탈로그에 항목을 추가합니다. 각 항목은 작업, 형식, trigger와 execution ID, 요청자, 사유, 티켓, 생성 시각, 수명주기 상태, 용도, 보존 보호, 마지막 관측 시각과 신선도를 표시합니다. 작업, 생성 기간, 형식 또는 상태로 필터링할 수 있습니다. 원본 location은 코어가 암호화하고 화면에는 scheme과 fingerprint를 조합한 마스킹 값만 표시합니다.
카탈로그는 의도적으로 Konduo 관측 범위로 표시됩니다. Flink에는 전체 세이브포인트 목록 endpoint가 없고 Konduo도 HDFS나 object storage를 탐색하지 않습니다. 관측이 최신이라는 표시는 비동기 Flink 결과를 최근에 조정했다는 뜻이며 저장소 객체가 지금도 존재함을 증명하지 않습니다. Konduo 밖에서 만든 세이브포인트를 수동 등록할 수 없습니다.
메타데이터에서 항목을 업그레이드 후보, 롤백 후보 또는 임시 항목으로 지정하고 보존 잠금이나 보존 예정 시각을 설정할 수 있습니다. 후보, 잠금, 미래까지 보존, available이 아닌 상태 또는 이미 폐기 진행 중인 항목은 폐기할 수 없습니다.
폐기는 별도 capability이며 operations_savepoint_disposal_enabled=true를 명시적으로 설정하기 전에는 비활성입니다. 폐기 가능한 카탈로그 항목에서 관리자는 먼저 사전 검증을 실행하고 사유와 선택적 티켓을 입력한 뒤 사전 검증을 끄고 정확히 DISPOSE <savepoint-id>를 입력하여 최종 확인해야 합니다. 실제 location은 암호화된 코어 provenance로 해석하므로 요청자가 임의 경로를 제출할 수 없습니다. 특히 timeout 또는 결과 불명 이후에는 다시 실행하기 전에 운영 화면에서 비동기 결과를 조정하십시오.
경보 규칙
flink-alert-rules-v1은 다음 9개 규칙을 제공합니다.
| 규칙 | 심각도 | 기본 조건 | 지속 조건 | 기본 상태 |
|---|---|---|---|---|
| 태스크 백프레셔 높음 | 경고 | 5분 구간에서 50% 초과 | 3분 | 활성 |
| Task Slot 사용률 높음 | 경고 | 10분 구간에서 90% 이상 | 5분 | 활성 |
| 체크포인트 실패 감지 | 심각 | 5분 구간에서 1회 이상 증가 | 1분 | 활성 |
| 작업 재시작 감지 | 경고 | 10분 구간에서 1회 이상 증가 | 2분 | 활성 |
| 최근 체크포인트 경과 시간 높음 | 경고 | 10분 구간에서 900초 이상 | 5분 | 비활성 |
| 체크포인트 소요 시간 높음 | 경고 | 10분 구간에서 60초 이상 | 5분 | 비활성 |
| TaskManager JVM 힙 사용률 높음 | 경고 | 5분 구간에서 85% 이상 | 3분 | 활성 |
| JobManager JVM 힙 사용률 높음 | 경고 | 5분 구간에서 85% 이상 | 3분 | 활성 |
| JobManager JVM CPU 사용률 높음 | 경고 | 10분 구간에서 90% 이상 | 5분 | 활성 |
체크포인트 경과 시간과 소요 시간 규칙은 작업별 주기와 상태 크기에 따라 정상 범위가 크게 달라 기본적으로 비활성화됩니다. 활성화하기 전에 대상 작업의 체크포인트 주기, 상태 백엔드와 정상 소요 시간을 기준으로 임계값을 조정하십시오.
경보는 단독 결론이 아니라 조사 시작점입니다. 예를 들어 백프레셔 경보는 다운스트림 처리량, busy time, 체크포인트 소요 시간과 TaskManager 용량을 함께 확인해야 합니다.
대표 점검 절차
작업이 반복해서 재시작될 때
- 작업 상세에서 현재 상태와 최근 예외를 확인합니다.
- 최근 체크포인트 실패와 마지막 성공 체크포인트 시각을 확인합니다.
- 체크포인트 스토리지 지연과 접근성을 확인합니다.
- TaskManager CPU·힙과 백프레셔가 같은 시각에 증가했는지 비교합니다.
- 근거를 확인한 후 재시작 전략 또는 병렬도를 조정합니다.
처리량이 감소할 때
- 입력과 출력 레코드 비율을 비교합니다.
- 백프레셔가 높은 연산자와 busy time이 높은 태스크를 찾습니다.
- Task Slot 여유와 TaskManager별 자원 편차를 확인합니다.
- sink 또는 외부 의존 서비스의 지연을 확인한 뒤 확장 여부를 결정합니다.
체크포인트가 느리거나 실패할 때
- 영향을 받는 작업과 최근 성공·실패 체크포인트를 확인합니다.
- 체크포인트 소요 시간, 경과 시간 및 실패 증가량을 함께 봅니다.
- 상태 크기, 정렬 지연, 백프레셔와 스토리지 상태를 비교합니다.
- 실패 원인을 확인하기 전에는 반복 재시작으로 문제를 숨기지 않습니다.
관리 경계
- CE 플러그인은 기존 작업에 대해 보호된 취소, 세이브포인트, 세이브포인트 동반 중지, capability 기반 수동 rescale과 명시적으로 활성화한 세이브포인트 폐기를 제공합니다. 작업 배포, 제출, 재시작, 복원, 자동 rescale, 외부 세이브포인트 등록, 저장소 탐색 또는 무인 보존 삭제는 지원하지 않습니다.
- 메트릭이 없다는 사실을 Flink 장애로 단정하지 않습니다. REST 상태와 메트릭 수집 상태를 분리해 판단합니다.
- API 토큰을 진단 결과, 로그 또는 화면 설명에 노출하지 않습니다.
- 기본 경보 임계값은 출발점입니다. 워크로드 특성에 맞게 검토한 뒤 변경하십시오.
문제 해결
| 증상 | 확인 순서 |
|---|---|
| REST 진단만 실패 | endpoint, JobManager 상태, 백엔드 네트워크 경로와 방화벽을 확인 |
REST가 401 또는 403 반환 | Bearer 토큰 값, 만료, 앞단 프록시의 인증 전달과 대상 REST 경로 권한을 확인 |
| REST 진단 제한 시간 초과 | 백엔드에서 JobManager까지의 연결 지연, 프록시, JobManager 부하를 확인; 진단 제한 시간은 8초 |
| 응답 형식 오류 | 프록시 오류 페이지가 JSON 대신 반환되는지, REST API 버전과 응답 크기가 2 MiB 한도를 넘는지 확인 |
| 모든 메트릭 패널이 비어 있음 | Prometheus target, JobManager·TaskManager reporter와 메트릭 소스 연결을 확인 |
| 작업·체크포인트 패널만 비어 있음 | 실행 중인 작업과 체크포인트 사용 여부를 확인; 유휴 클러스터에서는 정상일 수 있음 |
| 일부 역할 또는 작업만 비어 있음 | 실제 metrics.scope.*, flink_ 접두어, 라벨과 매핑팩 규칙을 확인 |
| 기간 진단이 사용 불가 | Prometheus 연결과 해당 논리 메트릭의 범위 조회 가능 여부를 확인 |
Apache Flink Enterprise 확장
TLS 설정 위치
TLS 모드·CA·클라이언트 인증서와 키·서버 이름·인증서 검증 설정은 보안 > TLS에 표시합니다. 주소·포트 등 실제 연결 설정은 기존 구역에 남습니다. 이 분류 변경은 필드 이름, 저장 값, 기본값, 비밀값 처리와 조건부 표시·검증을 바꾸지 않습니다.
기본 접근성 관측
리소스 개요는 메트릭 소스와 별개로 접근 가능·접근 불가·접근 미확인을 표시합니다. 성공한 접속 확인은 전체 멤버, 복제, 파티션이나 작업의 정상 상태를 보장하지 않습니다. 구체적인 도메인 상태는 진단과 도메인 경보에서 확인합니다. 기존 liveness/readiness 정보는 도메인 상세 증거이며 기본 접근성 경보의 조건이 아닙니다. 미확인은 발생 중인 경보를 복구시키지 않습니다.
TLS
연결 설정의 tls_insecure_skip_verify를 켜면 TLS 암호화는 유지하면서 서버 인증서 검증을 생략합니다. 기본값은 꺼짐이며, 검증을 생략할 때 CA 입력은 필요하지 않습니다. 서버가 상호 TLS를 요구하면 클라이언트 인증서와 키는 여전히 필요합니다. 서버 신원을 검증하려면 기존 CA 기반 검증을 사용하세요.
용량 요약은 4개 카드 한 행을 유지합니다. 작업·태스크 워크로드와 JVM 비교는 2열, 복구 추세 4개는 한 행으로 표시하며 라벨과 시계열은 유지합니다. 기존 개인화 배치와 쿼리 정의는 변경하지 않습니다.
개수는 정수로 표시하고 단위 변환된 밀리초 지속 시간은 필요한 소수 자릿수를 유지하며 백분율 게이지는 0–100 범위를 사용합니다. 태스크 처리량 요약은 시리즈를 합산하며 압박, 지연 시간, CPU, 힙 요약은 가장 높은 시리즈를 표시합니다. 메트릭이나 비율 피연산자가 없으면 알 수 없음으로 유지합니다.
16개 대시보드 패널을 개요(용량과 워크로드 8개)·복구(4개)·리소스(4개)로 구분합니다. 용량과 처리량·백프레셔를 함께 확인합니다. 작업·태스크 추세와 TaskManager 자원 비교에는 절반 폭을 사용하며 조회 범위·집계·저장된 개인화를 유지합니다.
숫자 패널 중 단일 수치의 추세가 유효한 항목은 하단 스파크라인을 표시합니다. 현재 값은 기존 즉시 조회를 유지하고, 별도 이력 조회는 시리즈당 구간별 최대 160개 샘플을 요청합니다. 상태 코드와 복합 계산은 제외하며, 이력 조회 실패는 현재 값을 지우지 않고 ‘추세 조회 불가’로 표시합니다.
Apache Flink Enterprise 확장은 Community Flink 리소스 플러그인에 다중 신호 이상징후 규칙과 읽기 전용 MCP 설명자를 추가합니다. 연결, JobManager REST 진단, 대시보드, 논리 메트릭, 매핑 팩과 관리 경보는 Community 플러그인이 계속 소유합니다.
메트릭 해석
Task Slot과 JVM 힙 비율은 양수 제한값이 보고되어야 합니다. 제한값이 없거나 0 이하이면 데이터 없음으로 표시하며, 100%를 넘는 값은 익스포터 근거로 그대로 표시합니다.
등록 전 확인
- Community 매뉴얼에 따라 JobManager REST 연결과 선택적인 Bearer 인증을 구성합니다.
- JobManager와 모든 TaskManager의 메트릭을 수집하는 Prometheus 리소스를 Flink 리소스에 연결합니다.
- Enterprise 라이선스에서
mcp.gateway와anomaly.engine기능이 활성화되어 있는지 확인합니다. - 이상징후 규칙 조회자에게 리소스 조회자 또는 리소스 운영자 권한을 부여합니다.
- 상관분석 조회자에게 리소스 조회자 또는 리소스 운영자 권한을 부여합니다. 메트릭 근거에는 RFC 3339 관측 시각과, 사용하는 경우 유효한 시간 범위를 포함해야 합니다.
- MCP 호출자에게 허용된 MCP 읽기 범위와 대상 Flink 리소스 인스턴스 접근 권한을 함께 부여합니다.
MCP와 이상징후 분석은 Flink REST 연결을 대체하지 않습니다. REST 상태, Prometheus 수집과 논리 메트릭 매핑을 각각 검증해야 합니다.
이상징후 규칙
flink-anomaly-rules-v1은 모든 조건을 함께 만족할 때 규칙을 일치시키는 5개 규칙을 제공합니다.
| 규칙 키 | 심각도·점수 | 조건 | 우선 확인 |
|---|---|---|---|
flink.worker_availability_risk | 심각·0.98 | 실행 작업 1개 이상, 등록 TaskManager 1개 미만 | TaskManager 등록·heartbeat·네트워크, JobManager 리더십과 Task Slot |
flink.checkpoint_restart_cascade | 심각·0.94 | 체크포인트 실패 증가량 0 초과, 작업 재시작 증가량 0 초과 | 작업 예외, 최근 성공·실패 체크포인트, 체크포인트 스토리지 |
flink.backpressure_capacity_saturation | 경고·0.86 | 백프레셔 50% 이상, Task Slot 사용률 90% 이상 | 병목 연산자, 업스트림·다운스트림 처리량, Slot과 병렬도 |
flink.taskmanager_resource_pressure | 경고·0.82 | TaskManager CPU 90% 이상, 힙 사용률 85% 이상 | TaskManager별 편차, GC, busy time과 백프레셔 |
flink.throughput_stall_pattern | 경고·0.80 | 입력 1건/초 이상, 출력 0.001건/초 이하, busy time 85% 이상 | sink, 비동기 I/O, 연산자 예외와 태스크별 쏠림 |
이 규칙은 Community 관리 경보를 대체하지 않습니다. 관리 경보는 개별 임계값과 지속 조건을 평가하고, Enterprise 규칙은 같은 평가 맥락에서 여러 논리 메트릭을 결합해 장애 분류 근거를 제공합니다.
모든 규칙은 관계 기반 근거 경로로 correlation/runtime-risk를 가리키며 누락되거나 오래된 입력에는 unknown_no_trigger 정책을 사용합니다. 실행 작업이 없는 유휴 클러스터에서는 작업·체크포인트 메트릭이 없을 수 있습니다. 누락된 시계열이나 해석할 수 없는 매핑을 정상 또는 0으로 간주하지 말고 메트릭 소스와 매핑 상태를 먼저 확인합니다.
MCP 리소스와 도구
MCP 카탈로그는 11개 읽기 리소스와 13개 읽기 도구를 제공합니다.
| 종류 | 제공 항목 |
|---|---|
| 리소스 | 모니터링 개요, 클러스터 인벤토리, 토폴로지, 현재 진단, 이력 진단, 메트릭 카탈로그, 매핑 팩 카탈로그, 관리 경보 규칙, 이상징후 규칙, 소프트웨어 인벤토리, 런타임 위험 상관분석 |
| 진단 도구 | 모니터링 개요, 클러스터 인벤토리와 토폴로지, 진단 요약, 클러스터, 작업, 체크포인트 및 성능 진단 읽기 |
| 메트릭 도구 | 논리 메트릭 쿼리 해석, 매핑 팩 해석 |
| 분석·규칙 도구 | 런타임 위험 상관분석, 관리 경보 규칙과 Enterprise 이상징후 규칙 읽기 |
metrics_query_resolve 도구는 다음 입력을 사용합니다.
| 입력 | 필수 여부 | 값 |
|---|---|---|
logical_metric_key | 필수 | Community Flink 메트릭 카탈로그에 있는 논리 키 |
query_mode | 선택 | instant 또는 range |
runtime_risk_correlation 도구는 선택적으로 metric_values_json, metric_observed_at, window_start, window_end와 제한된 최대 근거 수명을 받습니다. Community Flink 논리 메트릭 카탈로그의 키만 사용하며 알 수 없는 키, 비밀값과 원시 업스트림 응답 본문은 반환하지 않습니다.
MCP 설명자는 조회 경로만 제공합니다. diagnostics/summary/run 진단 새로고침은 쓰기 권한이 필요한 별도 작업이므로 읽기 전용 MCP 카탈로그에 포함되지 않습니다. 작업 배포, 취소, savepoint, savepoint와 함께 중지, rescale도 MCP에서 제공하지 않습니다. 지원되는 변경 작업은 Community 운영 화면에서 RBAC, 확인 문구, dry-run과 감사 제어를 거쳐 실행합니다.
런타임 위험 상관분석
correlation/runtime-risk는 제한된 Community 인벤토리, 토폴로지와 체크포인트 근거를 읽고 선택적으로 최신 메트릭 값과 결합합니다. 워커 가용성, Slot 압박, 체크포인트 실패와 경과 시간, 재시작 연쇄, 백프레셔와 Slot 압박, 처리량 정체 및 TaskManager JVM 압박을 보고합니다. 각 결과에는 근거 경로, 관측 시각, 시간 범위, 최신성, 완전성, 엔티티 역할, 신뢰도, 예상 영향과 권장 후속 확인이 포함됩니다.
결과는 참고용입니다. 부분 REST 수집, 잘못된 메트릭 JSON, 오래된 관측 시각, 누락 메트릭 키와 불완전한 토폴로지는 unknown으로 유지하며 정상으로 변환하지 않습니다. Flink REST 토폴로지는 역할 수준 관계를 보여 주지만 태스크와 TaskManager의 직접 배치를 입증하지는 않습니다.
운영 위험 및 영향
Enterprise operations/schema contribution은 Community 운영 페이지에 읽기 전용 위험 및 영향 탭과 작업별 요약 액션을 추가합니다. 이 contribution은 flink.correlation.runtime_risk capability를 사용하며 Enterprise overlay 또는 리소스 조회자·운영자 권한이 없으면 일반 라이선스·접근 필터링으로 제거됩니다. Community 작업 목록, 사전 검증, RBAC, 확인 문구, 감사 필드, 액션 payload와 mutation handler는 변경하지 않습니다.
작업의 위험 및 영향을 열면 30분 동안 유지되는 제한된 프로세스 내부 기준 스냅샷을 만듭니다. 취소, savepoint, savepoint 동반 중지 또는 rescale이 성공하면 실행 ID가 위험 탭으로 전달됩니다. 탭이 활성화된 동안 일반 화면 새로고침과 수동 새로고침으로 운영 상태와 현재 위험을 다시 읽으며 플러그인 백그라운드 worker는 만들지 않습니다. 실행이 종료되고 두 스냅샷이 모두 완전할 때만 improved, degraded, unchanged로 분류합니다. 기준 누락·만료, 미종료 또는 잘못된 실행 ID와 unknown/partial 근거는 낙관적으로 해석하지 않고 indeterminate로 표시합니다.
각 보호 액션 대화상자에는 예상 영향과 실행 후 확인 항목이 표시됩니다. 사전 검증 전에 작업별 위험 및 영향 요약을 검토하고 같은 요청 맥락으로 실제 실행한 뒤 실행 ID가 연결된 탭에서 작업 상태, Slot, 체크포인트, 백프레셔, 처리량과 JVM 압박을 확인하십시오. 기준 캐시는 제한된 프로세스 내부 근거일 뿐 영구 감사 이력이 아닙니다. 영구 기록은 플랫폼 감사 로그와 운영 아티팩트 카탈로그를 사용합니다.
운영 절차
워커 가용성 위험
- 현재 실행 작업과 등록 TaskManager 수를 확인합니다.
- JobManager REST 진단에서 TaskManager 등록과 Task Slot을 확인합니다.
- TaskManager 프로세스, heartbeat, 네트워크와 리소스 상태를 점검합니다.
- 워커 복구 후 사용 가능한 Slot과 작업 복구 상태를 확인한 뒤 재시작 여부를 결정합니다.
체크포인트·재시작 연쇄
- 영향받은 작업과 최근 예외를 확인합니다.
- 최근 성공·실패 체크포인트, 소요 시간과 스토리지 접근성을 비교합니다.
- 같은 구간의 백프레셔, TaskManager CPU·힙과 재시작 증가량을 확인합니다.
- 원인을 확인하기 전에 재시작 전략이나 병렬도를 반복 변경하지 않습니다.
처리량 정체
- 작업·태스크별 입력, 출력과 busy time을 같은 시간 구간에서 비교합니다.
- 출력이 멈춘 연산자 체인의 sink, 비동기 I/O와 외부 의존 서비스를 확인합니다.
- 백프레셔와 Slot 여유를 확인한 뒤 태스크 쏠림인지 전체 용량 부족인지 구분합니다.
문제 해결
| 증상 | 확인 순서 |
|---|---|
| EE 확장 또는 MCP 항목이 보이지 않음 | Enterprise 라이선스, mcp.gateway, anomaly.engine, 플러그인 버전과 contribution 로딩 상태를 확인 |
| 이상징후 규칙 조회가 거부됨 | 대상 리소스의 조회자 또는 운영자 권한 확인 |
| 상관분석 조회가 거부됨 | 대상 리소스의 조회자 또는 운영자 권한 확인 |
| 상관분석 결과가 unknown으로 남음 | 표시된 REST 근거 경로를 복구하거나 카탈로그에 있는 메트릭 값과 최신 RFC 3339 관측 시각, 유효한 시간 범위를 제공 |
| 실행 전후 비교가 indeterminate임 | 실행 전에 작업별 위험 및 영향 요약을 열고 30분 이내에 실행하며, 운영 상태가 종료될 때까지 기다린 뒤 unknown 또는 partial 원천을 복구 |
| 모든 규칙이 평가되지 않음 | Prometheus 리소스 연결, Flink reporter target, 논리 메트릭 매핑과 범위 조회를 확인 |
| 작업 관련 규칙만 평가되지 않음 | 실행 중인 작업, checkpoint 사용 여부, job/task 라벨과 기본 scope를 확인 |
| MCP 메트릭 해석 실패 | logical_metric_key가 현재 카탈로그에 있는지 확인하고 query_mode를 instant 또는 range로 지정 |
| MCP에서 진단 새로고침을 찾을 수 없음 | 의도된 읽기 전용 경계이며 Konduo의 RBAC 보호 진단 실행 경로를 사용 |
에디션 경계
이상징후 규칙 팩, 운영 위험 contribution, MCP 설명자와 Enterprise 현지화는 EE overlay에 있습니다. Flink 작업 변경과 진단 실행은 읽기 전용 MCP를 우회하지 않으며 기존 Konduo API, RBAC, 감사와 운영 아티팩트 경계를 따릅니다. Rescale, 비동기 추적, savepoint 카탈로그, 보존과 폐기 동작은 Community 매뉴얼을 기준으로 합니다.
MCP argument and result contracts
Diagnostic summary and performance tools accept lookback (or lookback_window) and optional metric_source_id. Mapping-pack resolution accepts target_metric_source_plugin_id or metric_source_plugin_id. Metric resolution describes the supported instance and label selectors. Fixed cluster inventory, topology, current diagnostic detail, overview, and rule tools accept {}.
Argument-bearing routes retain compatible dynamic filters where the plugin passes an open query filter map; the advertised properties describe useful inputs without removing existing aliases. Unknown fields are rejected for explicitly argument-free tools.
Results contain route-specific diagnostic evidence, vendor inventory, optional fields, and availability states. These dynamic result shapes intentionally omit outputSchema; clients should inspect the returned structured content and status rather than assume a fixed success-only result. Tools and resources use the same instance scope, authorization, and masking. Resource-only catalogs remain available through resources/read; tools-only clients can inspect tool-backed operational routes but need resource support for the remaining metadata catalogs.