InfoGrab Docs

통합 오류 추적

요약

이 가이드는 다양한 언어의 예시를 사용하여 프로젝트에 통합 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다. GitLab Observability에서 제공하는 오류 추적은 Sentry SDK를 기반으로 합니다.

이 가이드는 다양한 언어의 예시를 사용하여 프로젝트에 통합 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다.

GitLab Observability에서 제공하는 오류 추적은 Sentry SDK를 기반으로 합니다. Sentry SDK를 애플리케이션에서 사용하는 방법에 대한 자세한 정보 및 예시는 Sentry SDK 문서를 참조하십시오.

프로젝트에 대한 오류 추적 활성화#

사용하는 프로그래밍 언어에 관계없이 먼저 GitLab 프로젝트에 대한 오류 추적을 활성화해야 합니다. 이 가이드는 GitLab.com 인스턴스를 사용합니다.

사전 요구사항:

GitLab을 백엔드로 사용하여 오류 추적을 활성화하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 모니터로 이동합니다.
  3. 오류 추적을 확장합니다.
  4. 오류 추적 활성화에서 활성을 선택합니다.
  5. 오류 추적 백엔드에서 GitLab을 선택합니다.
  6. 변경 사항 저장을 선택합니다.
  7. 데이터 소스 이름(DSN) 문자열을 복사합니다. SDK 구현을 구성하는 데 필요합니다.

사용자 추적 구성#

오류의 영향을 받는 사용자 수를 추적하려면:

  • 인스트루먼테이션 코드에서 각 사용자가 고유하게 식별되도록 합니다. 사용자 ID, 이름, 이메일 주소 또는 IP 주소를 사용하여 사용자를 식별할 수 있습니다.

예를 들어 Python을 사용하는 경우 이메일로 사용자를 식별할 수 있습니다:

sentry_sdk.set_user({ email: "john.doe@example.com" });

사용자 식별에 대한 자세한 내용은 Sentry 문서를 참조하십시오.

추적된 오류 보기#

애플리케이션이 Sentry SDK를 통해 오류 추적 API로 오류를 내보내면 해당 오류를 GitLab UI에서 볼 수 있습니다. 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 모니터 > 오류 추적으로 이동하여 열린 오류 목록을 봅니다:

    오류 목록

  3. 오류를 선택하여 오류 세부 정보 보기를 봅니다:

    오류 세부 정보

    이 페이지는 다음을 포함한 예외에 대한 자세한 정보를 표시합니다:

    • 총 발생 횟수.
    • 영향을 받은 총 사용자.
    • 처음 발견: 날짜 및 커밋 ([commit]).
    • 마지막으로 발견된 날짜(상대 날짜로 표시됨). 타임스탬프를 보려면 날짜 위에 마우스를 올립니다.
    • 시간당 오류 빈도의 막대 그래프. 특정 시간의 총 오류 수를 보려면 막대 위에 마우스를 올립니다.
    • 스택 추적.

오류에서 이슈 생성#

오류와 관련된 작업을 추적하려면 오류에서 직접 이슈를 생성할 수 있습니다:

  • 오류 세부 정보 보기에서 이슈 생성을 선택합니다.

이슈가 생성됩니다. 이슈 설명에는 오류 스택 추적이 포함됩니다.

오류의 세부 정보 분석#

오류의 전체 타임스탬프를 보려면:

  • 오류 세부 정보 페이지에서 마지막으로 발견 날짜 위에 마우스를 올립니다.

다음 예시에서 오류는 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 교체#

Warning

Sentry에 따르면 DSN을 공개하는 것은 안전합니다지만, 악의적인 사용자가 Sentry로 정크 이벤트를 보낼 가능성이 있습니다. 따라서 가능하면 DSN을 비밀로 유지해야 합니다. 이는 DSN이 로드되어 사용자의 장치에 저장될 클라이언트 사이드 애플리케이션에는 적용되지 않습니다.

사전 요구사항:

Sentry DSN을 교체하려면:

  1. api 범위로 액세스 토큰을 생성합니다. 이후 단계에서 필요하므로 이 값을 복사해 두십시오.

  2. 오류 추적 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"
    
  3. 사용 가능한 클라이언트 키(Sentry DSN)를 가져옵니다. 새로 생성한 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"
    
  4. 이전 클라이언트 키를 삭제합니다:

    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일 보존 제한이 있습니다.

오류 추적 버그 또는 기능에 대한 피드백을 남기려면 피드백 이슈에 코멘트하거나 새 이슈를 엽니다.

통합 오류 추적

Tier: Free, Premium, Ultimate
Offering: GitLab.com
원문 보기
요약

이 가이드는 다양한 언어의 예시를 사용하여 프로젝트에 통합 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다. GitLab Observability에서 제공하는 오류 추적은 Sentry SDK를 기반으로 합니다.

이 가이드는 다양한 언어의 예시를 사용하여 프로젝트에 통합 오류 추적을 설정하는 방법에 대한 기본 정보를 제공합니다.

GitLab Observability에서 제공하는 오류 추적은 Sentry SDK를 기반으로 합니다. Sentry SDK를 애플리케이션에서 사용하는 방법에 대한 자세한 정보 및 예시는 Sentry SDK 문서를 참조하십시오.

프로젝트에 대한 오류 추적 활성화#

사용하는 프로그래밍 언어에 관계없이 먼저 GitLab 프로젝트에 대한 오류 추적을 활성화해야 합니다. 이 가이드는 GitLab.com 인스턴스를 사용합니다.

사전 요구사항:

GitLab을 백엔드로 사용하여 오류 추적을 활성화하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 모니터로 이동합니다.
  3. 오류 추적을 확장합니다.
  4. 오류 추적 활성화에서 활성을 선택합니다.
  5. 오류 추적 백엔드에서 GitLab을 선택합니다.
  6. 변경 사항 저장을 선택합니다.
  7. 데이터 소스 이름(DSN) 문자열을 복사합니다. SDK 구현을 구성하는 데 필요합니다.

사용자 추적 구성#

오류의 영향을 받는 사용자 수를 추적하려면:

  • 인스트루먼테이션 코드에서 각 사용자가 고유하게 식별되도록 합니다. 사용자 ID, 이름, 이메일 주소 또는 IP 주소를 사용하여 사용자를 식별할 수 있습니다.

예를 들어 Python을 사용하는 경우 이메일로 사용자를 식별할 수 있습니다:

sentry_sdk.set_user({ email: "john.doe@example.com" });

사용자 식별에 대한 자세한 내용은 Sentry 문서를 참조하십시오.

추적된 오류 보기#

애플리케이션이 Sentry SDK를 통해 오류 추적 API로 오류를 내보내면 해당 오류를 GitLab UI에서 볼 수 있습니다. 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 모니터 > 오류 추적으로 이동하여 열린 오류 목록을 봅니다:

    오류 목록

  3. 오류를 선택하여 오류 세부 정보 보기를 봅니다:

    오류 세부 정보

    이 페이지는 다음을 포함한 예외에 대한 자세한 정보를 표시합니다:

    • 총 발생 횟수.
    • 영향을 받은 총 사용자.
    • 처음 발견: 날짜 및 커밋 ([commit]).
    • 마지막으로 발견된 날짜(상대 날짜로 표시됨). 타임스탬프를 보려면 날짜 위에 마우스를 올립니다.
    • 시간당 오류 빈도의 막대 그래프. 특정 시간의 총 오류 수를 보려면 막대 위에 마우스를 올립니다.
    • 스택 추적.

오류에서 이슈 생성#

오류와 관련된 작업을 추적하려면 오류에서 직접 이슈를 생성할 수 있습니다:

  • 오류 세부 정보 보기에서 이슈 생성을 선택합니다.

이슈가 생성됩니다. 이슈 설명에는 오류 스택 추적이 포함됩니다.

오류의 세부 정보 분석#

오류의 전체 타임스탬프를 보려면:

  • 오류 세부 정보 페이지에서 마지막으로 발견 날짜 위에 마우스를 올립니다.

다음 예시에서 오류는 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 교체#

Warning

Sentry에 따르면 DSN을 공개하는 것은 안전합니다지만, 악의적인 사용자가 Sentry로 정크 이벤트를 보낼 가능성이 있습니다. 따라서 가능하면 DSN을 비밀로 유지해야 합니다. 이는 DSN이 로드되어 사용자의 장치에 저장될 클라이언트 사이드 애플리케이션에는 적용되지 않습니다.

사전 요구사항:

Sentry DSN을 교체하려면:

  1. api 범위로 액세스 토큰을 생성합니다. 이후 단계에서 필요하므로 이 값을 복사해 두십시오.

  2. 오류 추적 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"
    
  3. 사용 가능한 클라이언트 키(Sentry DSN)를 가져옵니다. 새로 생성한 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"
    
  4. 이전 클라이언트 키를 삭제합니다:

    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일 보존 제한이 있습니다.

오류 추적 버그 또는 기능에 대한 피드백을 남기려면 피드백 이슈에 코멘트하거나 새 이슈를 엽니다.