최근 MongoDB Atlas Triggers에서 로컬로 광범위한 로그를 다운로드해야 하는 시나리오를 접했습니다. 현재 Atlas에서 로그를 다운로드하는 방법에는 세 가지가 있습니다.
- GUI 사용
- CLI 사용
- App Services Admin API 사용
그러나 GUI 및 CLI 옵션에는 다운로드할 수 있는 로그 양, 특히 최대 10,000개의 로그에 대한 제한이 있습니다.
로그 다운로드를 위한 GUI 및 CLI의 제한 사항
GUI 사용
GUI를 사용하면 사용자는 날짜, 유형, 사용자 ID 또는 요청 ID별로 로그를 필터링할 수 있지만 다운로드 시 로그 제한은 10,000개로 설정됩니다.
CLI 사용
CLI를 사용하면 다음과 같은 명령을 실행할 수 있습니다.
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
하지만 이 역시 로그 다운로드 제한이 10,000개로 동일합니다.
솔루션: 페이지 매김 기능이 있는 App Services Admin API
이러한 다운로드 제한을 극복하기 위해 App Services Admin API는 페이지 매김을 통해 로그에 액세스하는 방법을 제공합니다. 페이지 매김을 구현하면 사용자는 기본 제한인 10K를 초과하는 로그를 가져올 수 있습니다.
API와 함께 페이지 매김을 사용하는 방법에 대한 자세한 지침은 MongoDB 문서: 페이지 매김 로그 가져오기에서 확인할 수 있습니다.
제안된 솔루션: 대용량 로그 다운로드를 위한 자동화된 스크립트
이를 간소화하기 위해 페이지 매김을 사용하여 자동으로 로그를 가져오는 스크립트를 개발했습니다. 이 스크립트는 Atlas App Logs Aggregator의 공개 저장소에서 사용할 수 있습니다.
스크립트의 주요 기능
- 자동 로그 가져오기: 페이지 매김을 통해 대규모 로그 세트를 지원하는 MongoDB Atlas App Services에서 로그를 가져옵니다.
- 유연한 날짜 범위 필터링: start_date 및 end_date 매개변수를 사용하여 선택적 날짜 필터링을 허용합니다.
- ISO 8601 검증: 날짜가 ISO 8601 형식을 따르는지 검증하세요.
- 보안 인증: MongoDB Atlas 공개 및 비공개 API 키를 사용하여 인증을 지원합니다.
- 사용자 ID 필터링 로그를 위한 선택적 user_id입니다.
- 상관 ID 필터링 로그에 대한 선택적 co_id입니다.
- errors_only 옵션을 사용하여 오류 로그만 가져옵니다.
- --filter 옵션을 사용하여 키-값 쌍으로 로그를 필터링합니다.
스크립트는 GET 엔드포인트만 사용하며 데이터를 수정하지 않고 로그를 파일에 집계합니다.
사용방법
요구사항
- Python 3.6 이상.
- 요구 사항.txt 라이브러리 종속성.
설치
가상 환경 만들기
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
종속성 설치
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
용법
명령줄 인수
- project_id (필수): Atlas 프로젝트 ID(16진수 문자열). app_id(필수): 앱 ID(문자열).
- public_api_key(필수): Atlas 공개 API 키(문자열).
- private_api_key(필수): Atlas 개인 API 키(하이픈이 포함된 문자열).
- --start_date(선택 사항): ISO 8601 형식의 시작 날짜(YYYY-MM-DDTHH:MM:SS.MMMZ).
- --end_date(선택 사항): ISO 8601 형식의 종료 날짜(YYYY-MM-DDTHH:MM:SS.MMMZ).
- --type(선택 사항): 지원되는 로그 유형의 쉼표로 구분된 목록입니다. 현재 사용 가능한 유형은 TRIGGER_FAILURE, TRIGGER_ERROR_HANDLER, DB_TRIGGER, AUTH_TRIGGER, SCHEDULED_TRIGGER, FUNCTION, SERVICE_FUNCTION, STREAM_FUNCTION, SERVICE_STREAM_FUNCTION, AUTH, WEBHOOK, ENDPOINT, PUSH, API, API_KEY, GRAPHQL, TION_START, SYNC_CONNECTION_END, SYNC_SESSION_START, SYNC_SESSION_END, SYNC_CLIENT_WRITE, SYNC_ERROR , SYNC_OTHER, SCHEMA_ADDITIVE_CHANGE, SCHEMA_GENERATION, SCHEMA_VALIDATION, LOG_FORWARDER
- --user_id (선택 사항): 해당 user_id와 관련된 로그 메시지만 반환합니다.
- --co_id (선택 사항): 지정된 요청 상관 ID와 연관된 로그 메시지만 반환합니다.
-
--filter(선택 사항): 키-값 쌍으로 로그를 필터링합니다(예: --filter event_subscription_name=
,function_name= ). - --errors_only (선택 사항): 오류 로그 메시지만 반환합니다.
- --verbose (선택 사항): 자세한 로깅 정보를 활성화합니다.
예
pip install -r requirements.txt
선택적 매개변수 사용
python main.py <project_id> <app_id> <public_api_key> <private_api_key> --start_date 2024-10-05T14:30:00.000Z --end_date 2024-10-06T14:30:00.000Z --type TRIGGER_FAILURE,SCHEMA_GENERATION </private_api_key></public_api_key></app_id></project_id>
start_date 및 end_date가 제공되지 않으면 스크립트는 기본적으로 start_date를 현재 시간으로부터 지난 24시간으로 설정합니다.
로그 필터링
--filter 옵션을 사용하면 키-값 쌍으로 로그를 필터링할 수 있습니다. 이 옵션은 공백으로 구분된 여러 키-값 쌍을 허용합니다. 각 키-값 쌍은 키=값 형식이어야 합니다.
키-값 쌍은 엔드포인트에서 반환된 값이어야 합니다. 이렇게 하면 이를 사용하여 필터링하고 일치하는 항목만 유지합니다. 예를 들어 "type": "SCHEDULED_TRIGGER"의 경우 응답 키-값은 다음과 유사합니다.
python main.py <project_id> <app_id> <public_api_key> <private_api_key> --start_date 2024-10-05T14:30:00.000Z --type TRIGGER_FAILURE,SCHEMA_GENERATION --user_id 671d2e2010733ecbaa2bab8f --filter event_subscription_name=getUnpausedClustersMetrics </private_api_key></public_api_key></app_id></project_id>
--filter 옵션에서 이 중 하나를 사용할 수 있습니다(예: --filter event_subscription_name=getUnpausedClustersMetrics)
벌채 반출
이 스크립트는 콘솔과 로그 파일 모두에 대한 로깅을 지원합니다. 기본적으로 로그 파일은 로그 폴더에 저장됩니다. 로그 파일 이름에는 각 실행의 고유성을 보장하기 위한 타임스탬프가 포함됩니다.
--verbose: 이 플래그를 사용하면 로그 수준이 DEBUG로 설정되어 자세한 로깅 정보를 제공합니다. 이 플래그가 없으면 로그 수준은 INFO로 설정됩니다.
로그 파일 위치
로그 파일은 로그 폴더에 저장됩니다. 각 로그 파일의 이름에는 타임스탬프가 지정되어 서로 다른 실행의 로그가 서로 덮어쓰지 않도록 합니다.
로그 파일 이름 예
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
이익
- 자동 로그 검색: 수동 개입 없이 MongoDB Atlas App Services에서 로그를 쉽게 가져옵니다.
- 기간 필터링: 특정 기간에 초점을 맞추기 위해 날짜 범위별로 로그를 필터링합니다.
- 페이지 매김 지원: 페이지 매김을 사용하여 대규모 로그 세트를 효율적으로 처리합니다.
- 검증: 오류를 방지하려면 날짜 입력이 올바른 형식인지 확인하세요.
부인 성명
참고: 이 저장소는 설치, 사용 또는 성능을 포함하되 이에 국한되지 않고 어떠한 종류의 보증도 없이 "있는 그대로" 사용하도록 출시되었습니다. 우리는 비침해, 상품성 및/또는 특정 목적에의 적합성에 대한 보증을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 모든 보증을 부인합니다. 당사는 해당 기술이 귀하의 요구 사항을 충족시키거나 해당 기술의 작동이 중단되지 않거나 오류가 없거나 오류가 수정될 것이라고 보증하지 않습니다.
이러한 스크립트와 도구를 사용하는 데 따른 위험은 사용자 본인이 감수해야 합니다. 유사한 환경에서 철저한 테스트를 거쳤다는 보장은 없으며, 사용으로 인해 발생하는 손상이나 데이터 손실에 대해 당사는 책임을 지지 않습니다.
테스트가 아닌 환경에서 사용하기 전에 실행하는 모든 스크립트를 철저하게 검토하고 테스트할 책임은 귀하에게 있습니다.
위 내용은 GUI 및 CLI 제한을 넘어 MongoDB Atlas 트리거 로그 다운로드 자동화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

드림위버 CS6
시각적 웹 개발 도구
