튜토리얼: 루비 온 레일 애플리케이션과 GitLab Observability 사용하기
이 튜토리얼에서는 GitLab Observability 기능을 사용하여 루비 온 레일 애플리케이션을 생성, 구성, 계측 및 모니터링하는 방법을 배우게 됩니다.
시작하기 전에
잠시 시간을 내어 다음 사항을 확인하세요:
- GitLab.com이나 GitLab Self-Managed용 GitLab Ultimate 구독
- 로컬에 Ruby on Rails 설치
- Git, Ruby on Rails 및 OpenTelemetry의 핵심 개념에 대한 기본 지식
새로운 GitLab 프로젝트 생성
먼저, 새로운 GitLab 프로젝트와 해당 액세스 토큰을 생성하세요.
이 튜토리얼에서는 프로젝트 이름을 animals
로 사용합니다.
- 왼쪽 사이드바에서 맨 위의 새로 만들기 () 및 새 프로젝트/저장소 만들기를 선택하세요.
- 빈 프로젝트 만들기를 선택하세요.
- 프로젝트 세부 정보를 입력하세요.
-
프로젝트 이름 필드에
animals
를 입력하세요.
-
프로젝트 이름 필드에
- 프로젝트 만들기를 선택하세요.
-
animals
프로젝트에서 왼쪽 사이드바에서 설정 > 액세스 토큰을 선택하세요. -
api
범위와 개발자 역할을 가진 액세스 토큰을 생성하세요. 나중에 필요하므로 토큰 값을 안전한 곳에 저장하세요.
Rails 애플리케이션 생성
다음으로 계측할 수 있는 새로운 루비 온 레일 애플리케이션이 필요합니다. 이 튜토리얼에서는 동물 목록을 저장하는 토이 애플리케이션을 생성하겠습니다.
애플리케이션을 생성하려면:
-
명령줄에서 다음을 실행하세요:
rails new animals
-
animals
디렉토리로 이동하고 애플리케이션을 실행하세요:cd animals rails server -p 8080
- 웹 브라우저에서
http://localhost:8080
을 방문하여 애플리케이션이 올바르게 실행 중인지 확인하세요. -
Animal 클래스에 대한 모델 스캐폴드를 생성하고 생성된 데이터베이스 마이그레이션을 실행하세요:
rails generate scaffold Animal species:string number_of_legs:integer dangerous:boolean rails db:migrate
- 애플리케이션을 다시 실행하고
http://localhost:8080/animals
에서 동물 목록을 방문하여 모든 작업이 예상대로 작동하는지 확인하세요. -
Gemfile에 OpenTelemetry 및 dotenv gem을 추가하세요:
bundle add opentelemetry-sdk opentelemetry-instrumentation-all opentelemetry-exporter-otlp dotenv
-
구성을 처리하는 이니셜라이저를 생성하고 환경 변수를 저장할
.env
파일을 추가하세요:touch config/initializers/opentelemetry.rb touch .env
-
config/initializers/opentelemetry.rb
를 편집하고 다음 코드를 추가하세요:require 'opentelemetry/sdk' require 'opentelemetry/instrumentation/all' require 'opentelemetry-exporter-otlp' OpenTelemetry::SDK.configure do |c| c.service_name = 'animals-rails' c.use_all() end
- 프로젝트 ID를 찾으세요:
-
animal
프로젝트 개요 페이지에서 오른쪽 상단에 있는 작업 ()을 선택하세요. - 프로젝트 ID 복사를 선택하세요. 나중에 사용할 복사된 ID를 저장하세요.
-
-
.env
를 편집하고 다음 코드를 추가하세요:OTEL_EXPORTER = "otlphttp" OTEL_EXPORTER_OTLP_ENDPOINT = "https://gitlab.com/api/v4/projects/{{PROJECT_ID}}/observability" OTEL_EXPORTER_OTLP_HEADERS = "PRIVATE-TOKEN={{ACCESS_TOKEN}}" OTEL_LOG_LEVEL = "debug"
반드시
PROJECT_ID
및ACCESS_TOKEN
을 이전에 얻은 값으로 교체하세요. Self-Managed GitLab 인스턴스를 사용하는 경우gitlab.com
을 자체 관리형 인스턴스 호스트명으로 바꾸세요.
추적 보기
이제 Observability 추적을 사용하도록 구성된 애플리케이션이 있으므로 GitLab.com에서 내보낸 추적을 볼 수 있습니다.
내보낸 추적을 보려면:
-
animals
애플리케이션을 다시 시작하세요. -
http://localhost:8080/animals
를 방문하고 애플리케이션에서 몇 가지 작업을 수행하세요. -
animals
프로젝트에서 왼쪽 사이드바에서 모니터 > 추적을 선택하세요. 모든 것이 올바르게 작동하면 각 컨트롤러 작업에 대한 추적을 볼 수 있어야 합니다. -
선택 사항. 추적을 선택하여 해당 스팬을 볼 수 있습니다.
축하합니다! GitLab Observability 기능을 사용하도록 구성된 애플리케이션을 성공적으로 생성하고 해당 애플리케이션이 생성한 추적을 검토했습니다. 이 토이 애플리케이션을 계속 실험하거나 더 복잡한 애플리케이션을 구성하여 추적을 내보내는 방법을 시도해볼 수 있습니다.
Observability 추적은 아직 제품 사용에 맞추어져 있지 않습니다. 루비 온 레일 애플리케이션에서 OpenTelemetry 수집기를 사용하여 로그나 지표를 공식적으로 지원하는 것이 아님을 기억하세요.