튜토리얼: Java Spring 애플리케이션에서 GitLab Observability 사용하기

자세한 내용은 분산 추적 기능의 히스토리를 참조하세요.

이 튜토리얼에서는 GitLab Observability 기능을 사용하여 Java Spring 애플리케이션을 생성, 구성, 계측 및 모니터링하는 방법을 배웁니다.

시작하기 전에

이 튜토리얼을 따라 하려면 다음이 필요합니다:

  • GitLab.com 또는 GitLab self-managed를 위한 GitLab Ultimate 구독
  • 로컬에 설치된 Ruby on Rails
  • Git, Java Spring 및 OpenTelemetry의 기본 개념에 대한 기본 지식

GitLab 프로젝트 생성

먼저, GitLab 프로젝트와 해당 액세스 토큰을 생성합니다.

  1. 왼쪽 사이드바에서 상단의 새로 만들기 ( ) 및 새 프로젝트/저장소를 선택합니다.
  2. 템플릿에서 만들기를 선택합니다.
  3. Spring을 선택한 후 템플릿 사용을 선택합니다.
  4. 프로젝트 세부정보를 입력합니다.
    • 프로젝트 이름 필드에 test-spring-o11y와 같은 이름을 입력합니다.
  5. 프로젝트 생성을 선택합니다.
  6. test-sprint-o11y 프로젝트에서 왼쪽 사이드바에서 설정 > 액세스 토큰을 선택합니다.
  7. api 범위와 개발자 역할을 가진 액세스 토큰을 생성합니다. 토큰 값을 안전한 곳에 저장하세요.
    나중에 필요합니다.

애플리케이션 실행

다음으로 애플리케이션을 실행하여 제대로 작동하는지 확인합니다.

  1. GitLab에서 프로젝트를 클론한 후 IntelliJ(또는 선호하는 IDE)에서 엽니다.
  2. src/main/java/com.example.demo/DemoApplication을 열고 애플리케이션을 실행합니다:

    애플리케이션 실행 스크린샷

  3. 초기화 후 애플리케이션은 http://localhost:8000에서 사용할 수 있어야 합니다. 테스트한 후 IDE에서 중지 버튼을 선택합니다.

OpenTelemetry 의존성 추가

자동 계측을 사용하여 애플리케이션을 계측합니다:

  1. pom.xml 파일에 필요한 의존성을 추가합니다:

    <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-api</artifactId>
    </dependency>
    <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
    </dependency>
    <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId>
    </dependency>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.opentelemetry</groupId>
                <artifactId>opentelemetry-bom</artifactId>
                <version>1.40.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  2. Maven 변경 사항 업데이트를 선택하여 의존성을 업데이트합니다:

    Maven 변경 사항 업데이트 UI

  3. OpenTelemetry 저장소에서 OpenTelemetry Java 에이전트 파일을 다운로드합니다.

    curl --location --http1.0 "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar"
    

환경 변수를 정의하세요

OpenTelemetry 자동 구성 라이브러리는 환경 변수에서 구성 정보를 읽습니다.

  1. 오른쪽 상단 메뉴에서 Edit Configurations…를 선택하세요:

    Edit configuration

  2. 구성 메뉴에서 Environment Variables 필드에서 아이콘을 선택하세요.

    Configuration menu

  3. 다음 환경 변수 세트를 추가하고, {{PATH_TO_JAVA_AGENT}}, {{PROJECT_ID}}, {{PROJECT_ACCESS_TOKEN}}{{SERVICE_NAME}}를 올바른 값으로 교체하세요. 셀프 관리 GitLab 인스턴스를 사용하는 경우, gitlab.com을 셀프 관리 인스턴스의 호스트 이름으로 교체하세요.
    • JAVA_TOOL_OPTIONS=-javaagent:{{PATH_TO_JAVA_AGENT}}/opentelemetry-javaagent.jar
    • OTEL_EXPORTER_OTLP_ENDPOINT=https://gitlab.com/api/v4/projects/{{PROJECT_ID}}/observability
    • OTEL_EXPORTER_OTLP_HEADERS=PRIVATE-TOKEN\={{PROJECT_ACCESS_TOKEN}}
    • OTEL_EXPORTER=otlphttp
    • OTEL_METRIC_EXPORT_INTERVAL=15000
    • OTEL_SERVICE_NAME=example-java-application
  4. 애플리케이션을 재시작하고 http://localhost:8000 페이지를 몇 번 새로 고치세요.

GitLab에서 정보 보기

테스트 프로젝트에서 내보낸 정보를 보려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾으세요.

  2. Monitor를 선택한 다음 Logs, Metrics 또는 Traces 중 하나를 선택하세요.