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

더 많은 정보는 분산 추적 기능의 이력을 참조하십시오.

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

시작하기 전에

이 튜토리얼을 따라하기 위해서는 다음이 필요합니다:

  • GitLab.com 또는 GitLab 자체 관리용 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 java 에이전트 파일을 OpenTelemetry 리포지토리에서 다운로드하십시오.

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

환경 변수 정의

OpenTelemetry 자동구성 라이브러리는 환경 변수에서 구성 내용을 읽습니다.

  1. 오른쪽 상단 메뉴에서 구성 편집…을 선택하십시오:

    구성 편집

  2. 구성 메뉴에서 환경 변수 필드의 아이콘을 선택하십시오.

    구성 메뉴

  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. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 모니터를 선택한 다음 로그, 메트릭 또는 추적 중 하나를 선택합니다.