통합 오류 추적
이 가이드는 다양한 언어의 예제를 사용하여 프로젝트에 통합 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다.
GitLab Observability에서 제공하는 오류 추적은
Sentry SDK를 기반으로 합니다.
애플리케이션에서 Sentry SDK를 사용하는 방법에 대한 자세한 정보와 예는
Sentry SDK 문서를 참조하세요.
프로젝트에 대한 오류 추적 활성화
사용하는 프로그래밍 언어에 관계없이,
우선 GitLab 프로젝트에 대한 오류 추적을 활성화해야 합니다.
이 가이드는 GitLab.com
인스턴스를 사용합니다.
선행 조건:
- 오류 추적을 활성화할 프로젝트가 있어야 합니다.
프로젝트 생성 방법을 참조하세요.
GitLab을 백엔드로 사용하여 오류 추적을 활성화하려면:
-
왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
설정 > 모니터로 이동합니다.
-
오류 추적을 확장합니다.
-
오류 추적 활성화에서 활성을 선택합니다.
-
오류 추적 백엔드에서 GitLab을 선택합니다.
-
변경 사항 저장을 선택합니다.
-
데이터 소스 이름(DSN) 문자열을 복사합니다. SDK 구현을 구성하는 데 필요합니다.
사용자 추적 구성
오류로 영향을 받는 사용자 수를 추적하려면:
- 계측 코드에서 각 사용자가 고유하게 식별되도록 합니다.
사용자 ID, 이름, 이메일 주소 또는 IP 주소를 사용하여 사용자를 식별할 수 있습니다.
예를 들어,
Python를 사용하는 경우,
이메일로 사용자를 식별할 수 있습니다:
Sentry.setUser({ email: "john.doe@example.com" });
사용자 식별에 대한 자세한 내용은
Sentry 문서를 참조하세요.
추적된 오류 보기
애플리케이션이 Sentry SDK를 통해 오류 추적 API에 오류를 전달한 후,
이 오류는 GitLab UI에서 확인할 수 있습니다. 이를 보려면:
-
왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
모니터 > 오류 추적으로 이동하여 열린 오류 목록을 확인합니다:
-
오류를 선택하여 오류 세부정보 보기를 확인합니다:
이 페이지에는 예외에 대한 자세한 내용이 표시됩니다.
- 총 발생 횟수.
- 영향을 받은 총 사용자 수.
- 처음 발생한 날짜 및 커밋().
- 마지막으로 발생한 날짜는 상대적인 날짜로 표시됩니다. 타임스탬프를 보려면 날짜 위에 마우스를 가져다 대세요.
- 시간당 오류 빈도의 막대 그래프. 특정 시간의 총 오류 수를 보려면 막대 위에 마우스를 가져다 대세요.
- 스택 추적.
오류에서 문제 생성
오류와 관련된 작업을 추적하려면, 오류에서 직접 문제를 생성할 수 있습니다:
- 오류 세부정보 보기에서 문제 생성을 선택합니다.
문제가 생성되고, 문제 설명에는 오류 스택 추적이 포함됩니다.
오류 세부정보 분석
오류의 전체 타임스탬프를 보려면:
- 오류 세부정보 페이지에서 마지막으로 발생한 날짜 위에 마우스를 가져다 대세요.
다음 예에서 오류는 11:41 CEST에 발생했습니다:
지난 24시간 그래프는 이 오류가 시간당 몇 번 발생했는지 측정합니다.
11 am
막대에 마우스를 가리키면 대화 상자가 이 오류가 239번 발생했음을 보여줍니다:
마지막으로 발생한 필드는 전체 시간이 완료될 때까지 업데이트되지 않습니다.
이것은 호출에 사용되는 라이브러리의 때문입니다
import * as timeago from 'timeago.js'
.
오류 발생
지원되는 언어 SDK 및 Sentry 유형
GitLab 오류 추적은 다음 이벤트 유형을 지원합니다:
언어 | 테스트된 SDK 클라이언트와 버전 | 엔드포인트 | 지원되는 항목 유형 |
---|---|---|---|
Go | sentry-go/0.20.0 |
store |
exception , message
|
Java | sentry.java:6.18.1 |
envelope |
exception , message
|
NodeJS | sentry.javascript.node:7.38.0 |
envelope |
exception , message
|
PHP | sentry.php/3.18.0 |
store |
exception , message
|
Python | sentry.python/1.21.0 |
envelope |
exception , message , session
|
Ruby | sentry.ruby:5.9.0 |
envelope |
exception , message
|
Rust | sentry.rust/0.31.0 |
envelope |
exception , message , session
|
이 표의 자세한 버전은 문제 1737에서 확인하세요.
지원되는 언어 SDK에 대한 작동 예제도 참조하세요. 이를 통해 해당 SDK로 예외, 이벤트 또는 메시지를 캡처하는 방법을 보여줍니다.
자세한 정보는 특정 언어에 대한 Sentry SDK 문서를 참고하세요.
생성된 DSN 회전
경고: Sentry DSN, 즉 클라이언트 키는 비밀입니다.
공개적으로 노출하지 마세요. 유출되거나 노출될 경우, Sentry DSN을 회전시키세요.
사전 요구 사항:
- 프로젝트에 대한 프로젝트 ID가 필요합니다.
Sentry DSN을 회전시키려면:
-
api
범위를 가진 액세스 토큰 생성하세요. 이 값을 복사해 두세요. 이후 단계에서 필요합니다. -
오류 추적 API를 사용하여 새로운 Sentry DSN을 생성하세요.
<your_access_token>
및<your_project_number>
를 귀하의 값으로 바꾸세요:curl --request POST \ --header "PRIVATE-TOKEN: <your_access_token>" \ --header "Content-Type: application/json" \ --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys"
-
사용 가능한 클라이언트 키(Sentry DSNs)를 가져오세요. 새로 생성한 Sentry DSN이 제대로 설정되었는지 확인하세요. 오래된 클라이언트 키의 키 ID로 다음 명령을 실행하세요.
<your_access_token>
및<your_project_number>
를 귀하의 값으로 바꾸세요:curl --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys"
-
오래된 클라이언트 키를 삭제하세요:
curl --request DELETE \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/projects/<your_project_number>/error_tracking/client_keys/<key_id>"
SDK 문제 디버깅
Sentry에서 지원하는 대부분의 언어는 초기화의 일환으로 debug
옵션을 제공합니다.
debug
옵션은 오류 전송과 관련된 문제를 디버깅할 때 도움을 줄 수 있습니다.
데이터를 API로 전송하기 전에 JSON을 출력하는 다른 옵션도 있습니다.
데이터 보존
GitLab은 모든 오류에 대해 90일 보존 한도가 있습니다.
오류 추적 관련 버그나 기능에 대한 피드백을 남기려면 피드백 이슈에 댓글을 달거나 new issue를 열어주세요.