Docs Menu
Docs Home
/ /
Atlas App Services
/

서비스에 로그 전달

이 페이지의 내용

  • 개요
  • 로그 전달을 구성해야 하는 이유는 무엇인가요?
  • 로그 전달 요금은 어떻게 청구되나요?
  • 로그 전달자 설정
  • 1. 로그 전달자 만들기
  • 2. 전달할 로그 선택
  • 3. 로그 배치 구성
  • 5. 조치 정의
  • 6. 변경 사항 저장 및 배포
  • 일시 중단된 로그 전달자 다시 시작

애플리케이션의 서버 측 로그를 MongoDB collection에 자동으로 저장하거나 외부 서비스로 보내도록 로그 전달자를 구성할 수 있습니다. Atlas App Services는 로그가 생성될 때 개별적으로 전달하거나 로그를 함께 배치하여 오버헤드를 줄일 수 있습니다.

로그 전달자는 다음과 같은 구성 요소로 구성됩니다.

  • App Services가 로그를 전달하는 방법과 위치를 제어하는 조치 입니다.

  • App Services에서 전달할 로그를 제어하는 필터 입니다.

  • App Services에서 로그를 배치할지, 아니면 개별적으로 전달할지 여부를 제어하는 정책 입니다.

다음 중 하나를 수행해야 하는 경우 로그 전달자를 설정하는 것이 좋습니다.

  • App Services의 보존 기간인 10일보다 오랫동안 로그를 저장합니다.

  • 외부 로깅 서비스에 로그 통합

  • Atlas Search, Atlas Online Archive 및 Atlas Charts의 로그에 액세스

개별 로그 또는 배치에서 각 로그 전달 조치 호출은 하나의 App Services 요청으로 청구됩니다.

새 로그 전달자를 만들려면 Logs 페이지로 이동하여 Forwarding 탭 을 선택합니다. 그런 다음 Create a Log Forwarder 버튼을 클릭합니다.

다음 화면에서 로그 전달자의 고유 이름을 지정합니다.

새 로그 전달자를 만들려면 앱 의 log_forwarders 디렉토리 에 새 구성 파일 을 추가합니다. 파일 이름은 구성의 name 필드 에 있는 값과 일치해야 합니다.

/log_forwarders/<name>.json
{
"name": "<name>"
}

App Services는 앱의 모든 로그를 전달하거나 대상 collection 또는 서비스에 하위 집합만 보낼 수 있습니다. 로그 유형에 대한 필터를 정의하여 각 로그 전달자에 대해 이 하위 집합을 제어합니다(예: 기능, 동기화 등) 및 상태(예: 성공 또는 오류)의 경우 포워더의 조치를 호출합니다.

Log Type 드롭다운에서 전달할 로그 유형을 하나 이상 선택합니다.

전달할 로그 유형을 선택할 수 있는 드롭다운

Log Status 드롭다운에서 전달할 상태를 하나 이상 선택합니다.

전달할 로그 상태를 선택할 수 있는 드롭다운

포워더가 일치시켜 전달할 하나 이상의 유형과 하나 이상의 상태를 지정합니다.

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ]
}

App Services 는 다음 로그 유형 전달을 지원합니다.

  • auth

  • endpoint

  • function

  • graphql

  • push

  • schema

  • service

  • sync

  • trigger

  • trigger_error_handler

App Services 는 다음 로그 상태 전달을 지원합니다.

  • error

  • success

중요

App Services는 특정 로그의 유형 상태가 모두 필터에 지정된 경우에만 로그를 전달합니다.

예를 들어 상태가 errorsync 로그를 필터링하는 전달자를 생각해 보겠습니다.

필터 다음 로그를 전달합니다.

{ "type": "sync", "status": "error", ... }

이 필터는 다음 로그를 전달 하지 않습니다 .

{ "type": "sync", "status": "success", ... }
{ "type": "schema", "status": "error", ... }

App Services는 여러 로그인을 단일 배치 요청으로 결합하여 오버헤드를 줄일 수 있습니다. App Services가 로그를 배치로 그룹화하는 방식은 배치 정책에 의해 제어됩니다.

App Services는 다음과 같은 배치 정책을 지원합니다.

  • 배치 없음: App Services에서 해당 요청이 발생할 때 로그를 개별적으로 전달합니다.

  • 배치: 포워더는 문서를 배치로 그룹화합니다. 각 배치에는 최대 100개의 로그 항목이 포함될 수 있습니다. 배치가 가득 차면 App Services는 단일 요청으로 전체 배치를 전달합니다. App Services는 현재 배치의 로그 수에 관계없이 1분에 한 번 이상 로그를 전달합니다.

배치를 구성하려면 No batch 또는 Batching 정책을 선택합니다.

일괄 처리 정책 선택: '배치 없음' 및 ' 배치'.

일괄 처리를 구성하려면 policy 필드 에 정책 유형 single 또는 batch 을 지정합니다.

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" }
}

로그 전달자는 연결된 MongoDB collection에 로그를 자동으로 저장하거나 로그를 외부 서비스로 전송하는 사용자 지정 함수를 호출할 수 있습니다.

컬렉션에 로그를 저장하려면 To Collection 작업을 선택하고 전달된 로그를 보관해야 하는 연결된 클러스터, 데이터베이스 및 컬렉션의 이름을 입력합니다.

클러스터, 데이터베이스 및 컬렉션 이 지정된 'To Collection' 조치 입니다.

컬렉션 에 로그를 저장 하려면 전달된 로그를 보관해야 하는 연결된 클러스터, 데이터베이스 및 컬렉션 의 이름을 포함하는 collection 유형의 action 를 지정합니다.

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" },
"action": {
"type": "collection",
"data_source": "<data source name>",
"database": "<database name>",
"collection": "<collection name>"
}
}

로그를 외부 서비스로 전달하려면 로그 객체 배열을 허용하고 API, SDK 또는 라이브러리를 통해 서비스를 호출 하는 함수를 작성하세요 .

참고

배치 정책 및 로그 빈도에 따라 App Services는 최대 100개의 객체 배열을 사용하여 로그 전달 함수를 호출할 수 있습니다.

함수의 서명은 다음 예시와 동일해야 합니다.

/functions/<function name>.js
exports = async function(logs) {
// `logs` is an array of 1-100 log objects
// Use an API or library to send the logs to another service.
await context.http.post({
url: "https://api.example.com/logs",
body: logs,
encodeBodyAsJSON: true
});
}

로그 전달 함수를 작성한 후에는 해당 함수를 이름으로 로그 전달자에 할당할 수 있습니다.

로그 전달자에 함수를 할당하려면 To Function 조치를 선택한 다음 드롭다운 입력에서 함수를 선택합니다.

로그 전달자에 함수를 할당하려면 로그 전달 함수의 이름이 포함된 function 유형의 action 를 지정합니다.

/log_forwarders/<name>.json
{
"name": "<name>",
"log_types": [ "<type>", ... ],
"log_statuses": [ "<status>", ... ],
"policy": { "type": "<single|batch>" },
"action": {
"type": "function",
"name": "<function name>"
}
}

로그 전달자를 구성한 후 Save 을(를) 클릭합니다. 배포 초안을 활성화한 경우 변경 사항을 배포해야 합니다.

로그 전달자를 구성한 후 구성 파일 을 저장한 다음 업데이트된 앱 구성을 푸시합니다.

appservices push

로그 전달자는 네트워크 중단이나 로그를 저장하는 기본 cluster의 변경과 같이 계속할 수 없는 이벤트에 대한 응답으로 일시 중단될 수 있습니다. 일시 중단되면 포워더를 호출할 수 없으며 로그를 전달하지 않습니다.

Realm UI의 Logs > Forwarding 화면에서 일시 중단된 로그 전달자를 다시 시작할 수 있습니다.

참고

로그 전달자가 일시 중단되면 App Services에서 프로젝트 소유자에게 문제를 알리는 이메일을 보냅니다.

돌아가기

애플리케이션 로그 보기