통합된 오류 추적
이 가이드는 여러 가지 언어의 예시를 사용하여 프로젝트에 통합된 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다.
GitLab Observability에 의한 오류 추적은 Sentry SDK를 기반으로 합니다. 응용 프로그램에서 Sentry SDK를 사용하는 방법에 대한 자세한 정보와 예시는 Sentry SDK 문서를 참조하세요.
프로젝트에 대한 오류 추적 활성화
사용하는 프로그래밍 언어에 관계없이 먼저 GitLab 프로젝트에 대한 오류 추적을 활성화해야 합니다. 이 가이드에서는 GitLab.com
인스턴스를 사용합니다.
전제 조건: - 오류 추적을 활성화하려는 프로젝트가 있어야 합니다. 프로젝트 생성 방법은 프로젝트 생성을 확인하세요.
GitLab을 백엔드로 사용하여 오류 추적을 활성화하려면 다음 단계를 따르세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 모니터로 이동합니다.
- 오류 추적을 확장합니다.
- 오류 추적 활성화에서 활성을 선택합니다.
- 오류 추적 백엔드에서 GitLab를 선택합니다.
- 변경 사항 저장을 선택합니다.
- Data Source Name (DSN) 문자열을 복사합니다. SDK 구현을 구성하는 데 필요합니다.
사용자 추적 구성
오류로 영향을 받는 사용자 수를 추적하려면:
- 계기 코드에 각 사용자를 고유하게 식별하는 것이 중요합니다. 사용자 ID, 이름, 이메일 주소 또는 IP 주소를 사용하여 사용자를 식별할 수 있습니다.
예를 들어, Python을 사용하는 경우, 이메일을 사용하여 사용자를 식별할 수 있습니다:
Sentry.setUser({ email: "john.doe@example.com" });
사용자 식별에 대한 자세한 정보는 Sentry 문서를 참조하세요.
추적된 오류 보기
응용 프로그램이 Sentry SDK를 통해 오류를 Error Tracking API에 방출한 후, 해당 오류는 GitLab UI에서 확인할 수 있습니다. 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
-
모니터 > 오류 추적으로 이동하여 열린 오류 목록을 확인합니다:
-
오류를 선택하여 오류 상세 보기를 확인합니다:
이 페이지에는 예외의 더 많은 세부 정보가 표시됩니다. - 발생 횟수 전체. - 영향을 받는 전체 사용자. - 처음으로 본 날짜: 날짜 및 커밋 (). - 최종 확인된 날짜는 상대적인 날짜로 표시됩니다. 타임스탬프를 보려면 날짜 위에 마우스를 올립니다. - 시간당 오류 빈도의 막대 그래프. 특정 시간대의 총 오류 횟수를 보려면 막대 위에 마우스를 올립니다. - 스택 트레이스.
오류에서 이슈 생성
오류와 관련된 작업을 추적하려면, 오류에서 직접 이슈를 만들 수 있습니다:
- 오류 상세 보기에서 이슈 만들기를 선택합니다.
이슈가 생성됩니다. 이슈 설명에는 오류 스택 트레이스가 포함됩니다.
오류 세부 정보 분석
오류의 전체 타임스탬프를 보려면:
- 오류 상세 페이지에서 최종 확인된 날짜 위로 마우스를 올립니다.
다음 예시에서는 오류가 CEST로 11:41에 발생했습니다:
최종 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에 대한 작업 예시는 지원되는 언어 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 DSN)를 가져옵니다. 최신으로 생성된 Sentry DSN이 제대로 있는지 확인합니다.
<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일 유지 기간 제한을 가지고 있습니다.