튜토리얼: Ruby on Rails 애플리케이션에 GitLab Observability 사용하기
이 튜토리얼에서는 GitLab Observability 기능을 사용하여 Ruby on Rails 애플리케이션을 생성, 구성, 계측 및 모니터링하는 방법을 배웁니다.
시작하기 전에
잠시 시간을 내어 다음 사항을 확인하세요:
- GitLab.com 또는 GitLab Self-Managed에 대한 GitLab Ultimate 구독
- Ruby on Rails의 로컬 설치
- Git, Ruby on Rails 및 OpenTelemetry의 핵심 개념에 대한 기본 지식
새로운 GitLab 프로젝트 생성하기
먼저, 새로운 GitLab 프로젝트와 해당 액세스 토큰을 생성하세요.
이 튜토리얼에서는 프로젝트 이름을 animals
로 사용합니다.
- 왼쪽 사이드바에서 상단의 Create new ()와 New project/repository를 선택합니다.
- Create blank project를 선택합니다.
- 프로젝트 세부 정보를 입력합니다.
-
Project name 필드에
animals
를 입력합니다.
-
Project name 필드에
- Create project를 선택합니다.
-
animals
프로젝트에서 왼쪽 사이드바에서 Settings > Access tokens를 선택합니다. -
api
범위와 Developer 역할로 액세스 토큰을 생성합니다. 토큰 값을 안전한 곳에 저장하세요. 나중에 필요합니다.
Rails 애플리케이션 생성하기
다음으로, 우리가 계측할 수 있는 새로운 Ruby on 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
에서 동물 목록을 방문합니다. 동물을 생성, 수정 및 삭제해 보아 모든 것이 예상대로 작동하는지 확인합니다. -
OpenTelemetry 및 dotenv 젬을 Gemfile에 추가합니다:
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
프로젝트 개요 페이지에서 오른쪽 상단의 Actions ()를 선택합니다. - Copy project 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 추적은 아직 프로덕션 사용을 위해 준비되지 않았다는 점을 기억하세요. Ruby on Rails 애플리케이션에서 OpenTelemetry 수집기를 사용한 로그나 메트릭에 대한 공식 지원은 없습니다.