Atlas Stream Processing은 모니터링 및 경고 기능을 제공하여 사용자가 성능 및 상태 인사이트를 활용하여 워크플로를 개선할 수 있도록 합니다.
Atlas UI에서 스트림 프로세서 작업 공간 모니터
각 스트림 처리 작업 공간에서 Atlas UI를 통해 스트림 프로세서를 모니터링할 수 있습니다.
Atlas 에서 프로젝트 의 Stream Processing 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Streaming Data 제목 아래의 Stream Processing를 클릭합니다.
스트림 처리 페이지가 표시됩니다.
Monitoring 탭 클릭합니다.
Monitoring 탭에는 선택한 스트림 프로세서에 대한 다양한 런타임 통계가 표시됩니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.
수집된 메시지 수
성공적으로 처리된 메시지 수
Dead Letter Queue에 전송된 메시지 수
소스 연결이 Apache Kafka인 경우, 주제의 파티션에 대한 브로커의 현재 오프셋과 최신 오프셋 간의 지연 및 모든 파티션 지연의 합계를 모니터링할 수 있습니다.
스트림 프로세서 모니터링 방법
Atlas Stream Processing은 스트림 프로세서에 대한 주문형 보고를 위한 다음과 같은 방법을 제공합니다.
sp.processor.sample() 메서드를 사용하면 현재 실행 중인 선택한 스트림 프로세서에서 출력한 문서의 작은 샘플을 볼 수 있습니다. 사용자는 샘플링된 결과를 예상 결과와 비교하여 집계 파이프라인 설계의 오류를 진단할 수 있습니다.
sp.processor.stats() 메서드는 선택한 스트림 프로세서에 대한 런타임 통계를 반환합니다.
출력 문서에는 다음과 같은 필드가 있습니다.
필드 | 유형 | 설명 |
|---|---|---|
| 문자열 | 스트림 프로세서가 정의된 네임스페이스입니다. |
| 객체 | 스트림 프로세서의 작동 상태를 설명하는 문서입니다. |
| 문자열 | 스트림 프로세서의 이름입니다. |
| 문자열 | 스트림 프로세서의 상태입니다. 이 필드는 다음과 같은 값을 가질 수 있습니다:
|
| integer | 크기 필드가 표시되는 배율입니다. |
| integer | 스트림에 게시된 문서 수입니다. 문서가 전체 파이프라인을 통과할 때가 아니라 |
| integer | 스트림에 게시된 바이트 또는 킬로바이트의 수입니다. 바이트는 전체 파이프라인을 통과할 때가 아니라 |
| integer | 스트림에서 처리한 문서 수입니다. 문서가 전체 파이프라인을 통과하면 스트림에서 '처리'된 것으로 간주됩니다. |
| integer | 스트림에서 처리한 바이트 또는 킬로바이트의 수입니다. 바이트는 전체 파이프라인을 통과하면 스트림에서 '처리'된 것으로 간주됩니다. |
| integer | |
| integer | |
| integer | |
| token | 가장 최근의 변경 스트림 재개 토큰입니다. 변경 스트림 소스가 있는 스트림 프로세서에만 적용됩니다. |
| 문서 | 스트림 프로세서 전체에 대한 지연 시간 통계입니다. Atlas Stream Processing은 |
| integer | 지난 30초 동안 처리된 모든 문서의 추정 50번째 백분위 지연 시간입니다. 파이프라인에 창 단계가 포함된 경우 지연 시간 측정에는 창의 간격이 포함됩니다. 예를 들어 |
| integer | 지난 30초 동안 처리된 모든 문서의 추정 99번째 백분위 지연 시간입니다. 파이프라인에 창 단계가 포함된 경우 지연 시간 측정에는 창의 간격이 포함됩니다. 예를 들어 |
| datetime | 가장 최근의 30초 측정 창이 시작된 실제 시간입니다. |
| datetime | 가장 최근의 30초 측정 창이 종료된 실제 시간입니다. |
| 문자열 | 지연 시간이 측정되는 시간 단위입니다. 이 값은 항상 |
| integer | 가장 최근의 30초 측정 창에서 스트림 프로세서가 처리한 문서의 수입니다. |
| integer | 가장 최근의 30 초 측정 창에서 수행된 모든 개별 지연 시간 측정값의 합계(마이크로초)입니다. |
| integer | Windows에서 프로세서 상태를 저장하는 데 사용하는 바이트 수입니다. |
| 날짜 | 현재 워터마크의 타임스탬프입니다. |
| 배열 | 프로세서 파이프라인의 각 연산자에 대한 통계입니다. Atlas Stream Processing은
|
| integer | 연산자의 최대 메모리 사용량(바이트 또는 킬로바이트)입니다. |
| integer | 연산자의 총 실행 시간(밀리초). |
| 날짜 | 최소 열린 창의 시작 시간입니다. 이 값은 선택 사항입니다. |
| 날짜 | 최대 열린 창의 시작 시간입니다. 이 값은 선택 사항입니다. |
| 배열 | 특정 소스 및 싱크 연산자에 대한 대상별 통계입니다. 이 배열 의 각 요소는 단일 입력 또는 출력 대상(예: 입력 또는 출력 컬렉션 또는 Apache Kafka 주제) 을 나타내는 문서 입니다. 연산자 에 따라 각 문서 다음 필드의 하위 집합이 포함됩니다. Apache Kafka MongoDB 대상은
싱크 연산자(예: MongoDB MongoDB 대상은
Atlas Stream Processing은 Apache Kafka 최대 100개의 서로 다른 목표물에 대한 표적별 통계를 기록합니다. 그 이후로 스트림 프로세서는 |
| 배열 | Apache Kafka 브로커 의 파티션에 대한 오프셋 정보입니다. |
| integer | Apache Kafka 주제 파티션 번호입니다. |
| integer | 지정된 파티션에 대해 스트림 프로세서가 있는 오프셋입니다. 이 값은 스트림 프로세서가 처리한 이전 오프셋에 |
| integer | 스트림 프로세서가 Apache Kafka 브로커에 마지막으로 커밋한 오프셋과 지정된 파티션의 체크포인트. 이 오프셋을 통한 모든 메시지는 마지막 체크포인트 에 기록됩니다. |
| 부울 | 파티션이 유휴 상태인지 여부를 나타내는 플래그입니다. 이 값의 기본값은 |
Stream Processing 로그
Atlas Stream Processing 두 가지 유형의 stream processing 작업 공간 활동 로그를 제공합니다.
- 주로 다음의 동작을 추적 운영 로그
- 개별 스트림 프로세서.
- 주로 인증 및 보안을 추적 감사 로그
- stream processing 작업 공간 수준에서 활동.
Atlas Stream Processing Stream Processing 또는 감사 로그를 다운로드 하려면 다음 단계를 따르세요.
Atlas 에서 프로젝트 의 Stream Processing 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Streaming Data 제목 아래의 Stream Processing를 클릭합니다.
스트림 처리 페이지가 표시됩니다.
로그를 다운로드 할 스트림 처리 작업 공간의 창으로 이동하여 줄임표를 클릭합니다.
모달 창 에서 다운로드 하려는 로그 유형을 선택합니다.
Stream processor 필드 에 로그를 다운로드 하려는 스트림 프로세서의 이름을 입력합니다. 모든 스트림 프로세서에 대한 로그를 다운로드 하려면 이 필드 비워 둡니다.
Time Period 드롭다운에서 로그를 다운로드 할 간격을 선택합니다.
참고
로그를 쿼리할 수 있게 되려면 생성 후 최대 5분이 소요됩니다.
데드 레터 대기열
데드 레터 큐 의 문서를 검토하여 스트림 프로세서의 실패 모드를 분석할 수 있습니다. DLQ에 작성된 문서는 다음 형식을 딱랍니다.
{ "processorName": "<stream-processor-name>", "instanceName": "<workspace-name>", "dlqTime": { "$date": "<datetime>" }, "operatorName": "<stream-operator-name>", "errInfo": { "reason": "<error-description>" }, "doc": { "_id": { "$oid": "<object-id>" }, . . . }, "_stream_meta": { "<stage-metadata>": { "<metadata-field>": "<metadata-value>", . . . }, . . . } }
DLQ 문서에는 다음 필드가 포함되어 있습니다:
필드 | 유형 | 조건부 | 설명 |
|---|---|---|---|
processorName | 문자열 | 항상 | 문서가 시작되는 스트림 프로세서의 이름입니다. |
instanceName | 문자열 | 조건부 | 프로세서가 실행되는 Stream Processing 워크스페이스의 이름입니다. 프로젝트에 여러 개의 워크스페이스가 포함된 경우에만 작성됩니다. |
dlqTime.$date | ISODate | 항상 | Atlas Stream Processing이 문서를 데드 레터 큐에 등록한 날짜 및 시간. |
operatorName | 문자열 | 항상 | |
errInfo.reason | 문자열 | 항상 | 문서 처리 실패 사유. |
doc | 문서 | 항상 | 이 실패 이벤트의 결과로 DLQ에 쓰여진 전체 문서입니다. |
_stream_meta | 문서 | 항상 | 스트림 메타데이터가 포함된 문서입니다. 이 문서의 내용은 주어진 입력에 대한 $meta 단계의 출력과 동일합니다. 자세한 내용은 $meta 구문 참조를 참조하십시오. |
타사 지표 통합
Atlas Stream Processing은 사용자가 사용자 지정 노리 또는 보기를 개발하지 않고도 Stream Processing 성능을 기록하고 분석할 수 있도록 하는 제3자 지표 통합을 지원합니다.
DataDog는 mongodb.atlas.stream_processing 접두사를 사용하여 Atlas Stream Processing 지표를 추적합니다. 통합을 설정하고 사용 가능한 지표를 확인하려면 DataDog 통합을 참조하세요.
OpenTelemetry(OTel) 수집기에 지표를 보내려면 OpenTelemetry(OTel)와 통합을 참조하세요.
스트림 프로세서 경고
Atlas Stream Processing은 프로세서의 상태가 변경되거나 프로세서가 다양한 수집 또는 출력 임계값을 충족할 때 경고를 발생시킵니다. 사용 가능한 Atlas Stream Processing 알림 목록을 보려면 Atlas Stream Processing 경고를 참조하세요. 경고 구성에 대한 자세한 내용은 경고 설정 구성을 참조하세요.
다음과 같은 방법으로 Atlas Stream Processing 경고를 대상으로 지정할 수 있습니다.
프로젝트 내의 모든 스트림 프로세서
구성된 조건자와 일치하는 스트림 처리 작업 공간 내의 모든 스트림 프로세서
이름이 구성된 술어와 일치하는 모든 스트림 프로세서
모든 스트림 프로세서가 아닌 다른 대상의 경우, 동일한 경고에 대해 여러 대상을 구성할 수 있습니다.
Atlas Stream Processing 기본값으로 Stream Processor State is failed 경고 구성합니다. 이는 프로젝트 수준 경고이므로 구성된 프로젝트 내의 모든 stream processing 작업 공간에서 실행되는 모든 스트림 프로세서에 적용됩니다.