正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

チュートリアル: Ruby on RailsアプリケーションでGitLab可観測性を使用する

この機能の利用可否は、機能フラグによって制御されます。

このチュートリアルでは、GitLab可観測性機能を使用して、Ruby on Railsアプリケーションを作成、設定、インストルメント、および監視する方法を学習します。

はじめる前

まず、以下を確認してください:

  • GitLab.comまたはSelf-ManagedインスタンスのGitLab Ultimateサブスクリプション
  • Ruby on Railsのローカルインストール
  • Git、Ruby on Rails、およびOpenTelemetryのコアコンセプトに関する基本的な知識

新しいGitLabプロジェクトを作成

まず、新しいGitLabプロジェクトと対応するアクセストークンを作成します。このチュートリアルでは、プロジェクト名animalsを使用します。

  1. 左側のサイドバーの上部で、新規作成 plus )を選択し、新規プロジェクト/リポジトリを選択します。
  2. 空のプロジェクトの作成を選択します。
  3. プロジェクトの詳細を入力します。
    • プロジェクト名フィールドにanimalsと入力します。
  4. プロジェクトを作成を選択します。
  5. animalsプロジェクトの左側のサイドバーで、設定 > アクセストークンを選択します。
  6. apiスコープとデベロッパーロールでアクセストークンを作成します。トークンの値は後で必要になるため、安全な場所に保管してください。

Railsアプリケーションを作成

次に、インストルメントできる新しいRuby on Railsアプリケーションが必要です。このチュートリアルでは、動物のリストを保存するための簡単なアプリケーションを作成しましょう。

アプリケーションを作成するには:

  1. コマンドラインから、以下を実行します:

    rails new animals
  2. animalsディレクトリに移動し、アプリケーションを実行します:

    cd animals
    rails server -p 8080
  3. Webブラウザでhttp://localhost:8080にアクセスし、アプリケーションが正しく実行されていることを確認してください。

  4. Animalクラスのモデルスキャフォールドを作成し、生成されたデータベース移行を実行します:

    rails generate scaffold Animal species:string number_of_legs:integer dangerous:boolean
    rails db:migrate
  5. アプリケーションを再度実行し、http://localhost:8080/animalsで動物のリストにアクセスします。動物を作成、編集、削除して、すべてが期待どおりに機能することを確認してください。

  6. OpenTelemetry gemとdotenv gemをGemfileに追加します:

    bundle add opentelemetry-sdk opentelemetry-instrumentation-all opentelemetry-exporter-otlp dotenv
  7. 設定を処理する初期化子を作成し、環境変数を格納するための.envファイルを追加します:

    touch config/initializers/opentelemetry.rb
    touch .env
  8. 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
  9. プロジェクトIDを見つけます:

    1. animalプロジェクトの概要ページの右上隅にあるアクション ellipsis_v )を選択します。
    2. Copy project ID(プロジェクトIDをコピー)を選択します。コピーしたIDを後で使用するために保存します。
  10. .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_IDACCESS_TOKENを、以前に取得した値に置き換えてください。Self-Managedインスタンスを使用している場合は、gitlab.comをGitLab Self-Managedインスタンスのホスト名に置き換えます。

トレースを表示

GitLab可観測性トレーシングを使用するように設定されたアプリケーションがあるため、GitLab.comでエクスポートされたトレースを表示できます。

エクスポートされたトレースを表示するには:

  1. animalsアプリケーションを再度起動します。

  2. http://localhost:8080/animalsにアクセスし、アプリケーションでいくつかのアクションを実行します。

  3. animalsプロジェクトの左側のサイドバーで、モニタリング > トレースを選択します。すべてが正しく動作している場合は、各コントローラーアクションのトレースが表示されます。

    メトリクスUI

  4. オプション。トレースを選択して、そのスパンを表示します。

    トレースUI

おつかれさまでした。アプリケーションが正常に作成され、GitLab可観測性機能を使用するように設定され、アプリケーションが作成したトレースが検査されました。この簡単なアプリケーションで引き続き実験するか、より複雑なアプリケーションを設定してトレースをエクスポートしてみてください。

可観測性トレーシングはまだ本番環境での使用に対応していません。Ruby on RailsアプリケーションでOpenTelemetryコレクターを使用するログまたはメトリクスに対する公式サポートはありません。