始めに

Instana OpenLLMetry を使用して、LLM ベースのアプリケーションやエージェント型アプリケーションを監視します。

使い始めは簡単です。 OpenLLMetry (計測パッケージ)を使用してアプリケーションに計測機能を追加するために2行のコードを追加し、環境変数を設定してテレメトリの送信先を Instana に指定します。 これで、AIアプリケーションの監視を始める準備は完了です。

アプリケーションに OpenLLMetry, を導入することで、 Instana はLLMとのやり取り、 API への呼び出し、およびパフォーマンス指標に関する詳細なデータを収集します。 このガイドでは、ジェネレーティブAIアプリケーションのオブザーバビリティ設定について、アーキテクチャの理解から Instana での最初のトレースの確認に至るまで、順を追って解説します。

アーキテクチャー

図は、 Instana が生成AIアプリケーションをどのように監視するかを示しています。

図 1. アーキテクチャ図: OpenLLMetry が Instana にテレメトリデータを送信
OpenLLMetry が Instana にテレメトリデータを送信するアーキテクチャ図

Instana AIアプリケーションからトレース、ログ、メトリクスを送信するための2つのモードに対応しています。

エージェント・モード

エージェントモードでは、 OpenLLMetry はトレース、ログ、メトリクスをまず Instana エージェントに送信し、エージェントはエージェントアクセプタを介してそれらを Instana バックエンドに転送します。 このモードは、 Instana エージェントを導入済みで、AIテレメトリとインフラストラクチャのメトリクスを相関分析したい場合に最適です。

エージェントレスモード

エージェントレスモードでは、 OpenLLMetry は Instana エージェントを経由せずに、トレース、ログ、メトリクスを Instana バックエンドに直接送信します。 テレメトリデータは、 Instana バックエンド内の OTLP アクセプターを通じて取り込まれます。 このモードは、クラウドネイティブなデプロイやサーバーレス環境、あるいはエージェントをデプロイせずにシンプルな設定を行いたい場合に最適です。

前提条件

AIアプリケーションの監視設定を行う前に、以下の前提条件が満たされていることを確認してください。

  • Python 3.10 またはそれ以降
  • 適切なアクセス権限を持つ Instana アカウント
  • エージェントモードの場合、 Instana エージェントがインストールされ、実行されています
  • エージェントレスモードの場合、 Instana バックエンド、 OTLP エンドポイント、および API キー
  • API お使いのLLMプロバイダー( OpenAI,、Anthropicなど)のキー

AIの可観測性を実現するための Instana の設定

AIの可観測性のために Instana を設定するには、以下の手順を実行してください:

  1. Python 環境を設定してください。
    1. Python ( 3.10 以降)がインストールされていることを確認してください:
      python3 -V
    2. (任意):依存関係を分離するために仮想環境を作成します。
      pip3 install virtualenv
      virtualenv genai-env
      source genai-env/bin/activate
  2. LLMを呼び出すコードまたはサービスに、 OpenLLMetry をインストールして設定します。 以下のいずれかになります:

    • たとえば、AIアプリケーションのメインエントリポイントとして、 main.pyapp.py
    • AIリクエストを処理する API サーバーまたはバックエンドサービス
    • LLMプロバイダー( OpenAI,、Anthropic、 watsonx など)と直接連携する Python モジュール。
    OpenLLMetry SDK をインストールします:
    pip3 install traceloop-sdk
    注: プロジェクトでの依存関係管理を容易にするため、ファイルに を traceloop-sdkrequirements.txt 追加してください。
  3. すべての監視モードで必要となる以下の環境変数を設定してください。
    OTEL_RESOURCE_ATTRIBUTES="INSTANA_PLUGIN=genai"
    TRACELOOP_LOGGING_ENABLED=true
    TRACELOOP_METRICS_ENABLED=true

    導入環境に合わせて、モード固有の変数を設定してください。

  4. 以下のステップのいずれかを実行します。
    • エージェントモード: Instana エージェントを介してテレメトリデータを送信するには、以下の環境変数を設定してください:
      TRACELOOP_BASE_URL=<instana-agent-host>:4317
      OTEL_EXPORTER_OTLP_INSECURE=true

      Instana エージェントは、テレメトリデータにインフラストラクチャのコンテキスト情報を自動的に付加します。 Instana エージェントの設定に関する詳細については、 「 Instana エージェント」 を参照してください。

    • エージェントレスモード:テレメトリを Instana バックエンドに直接送信するには、以下の環境変数を設定してください:
      TRACELOOP_BASE_URL=<instana-otlp-endpoint>:4317
      TRACELOOP_HEADERS="x-instana-key=<agent-key>,x-instana-host=<instana-host>"
      OTEL_EXPORTER_OTLP_INSECURE=false

      Instana の設定値を確認してください。 と <agent-key><instana-otlp-endpoint> の値を求める。

      1. Instana のテナントにログインしてください。
      2. ナビゲーションメニューで、 「エージェントとコレクター」 をクリックします。
      3. 「 OpenTelemetry 」 の「コレクター」タブをクリックします。
      4. 「コレクターをインストール」 をクリックします。
      5. 「 Linux 」 を選択 - 自動インストール(ワンライナー)。
      6. ステップ 2 では、次のようなコマンドが表示されます:
        curl -Lo setup.sh https://github.com/instana/instana-otel-collector/releases/latest/download/instana-collector-installer-latest.sh && chmod +x setup.sh && sudo ./setup.sh -a <agent-key> -e <instana-otlp-endpoint>:4317 -H <instana-otlp-endpoint>:4318
         
      7. <instana-otlp-endpoint> 先に示した :4317 エンドポイント( gRPC ポート)と :4318 ( HTTP ポート)です
      8. <agent-key> は、その後に表示されるキーです -a
      9. <instana-host> 任意の文字列に設定できます

    Instana バックエンドの OTLP エンドポイントに関する詳細や、さまざまな SaaS 環境での設定については、 「 Instana バックエンドの OTLP アクセプターのエンドポイント」 を参照してください。

  5. アプリケーションに機能を追加してください。 Python アプリケーションに OpenLLMetry の計測機能を追加します。 このコードを、メインのアプリケーションファイル(例: main.pyapp.py)の先頭、またはAIサービスを初期化するモジュール内に配置してください:
    from traceloop.sdk import Traceloop
    
    # Initialize OpenLLMetry
    Traceloop.init(app_name="my_ai_app", disable_batch=True)
     
    (任意):複雑なワークフローについては、注釈を付けることで可視性を高めることができます:
    from traceloop.sdk.decorators import workflow
    
    @workflow(name="my_workflow")
    def my_ai_workflow():
        # Your AI logic here
        pass
     
    注:LangChain,、 LangGraph,、または CrewAI, などのフレームワークを使用する場合、追加の注釈は必要ありません。 デコレータに関する詳細については、 「アノテーション」 を参照してください。
  6. 簡単な例を実行してみましょう。 次の例では、Anthropic社のClaudeを使用しています:
    1. Anthropic SDK をインストールします:

      pip3 install anthropic
       
    2. Anthropicの API キーを環境変数として設定してください:

      ANTHROPIC_API_KEY=<your-anthropic-api-key>
       

      API キーを作成するには、 「Anthropic API キー」 を参照してください。

    3. 次のコードを という hello_genai.py 名前のファイルに作成してください:

      import os
      import anthropic
      from traceloop.sdk import Traceloop
      from traceloop.sdk.decorators import workflow
      
      # Initialize OpenLLMetry
      Traceloop.init(app_name="hello_genai", disable_batch=True)
      
      # Create Anthropic client
      client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
      
      @workflow(name="simple_chat")
      def ask_question():
          message = client.messages.create(
              model="claude-3-sonnet-20240229",
              max_tokens=1024,
              messages=[
                  {"role": "user", "content": "What is observability?"}
              ]
          )
          print(message.content[0].text)
      
      # Run the workflow
      ask_question()
       
    4. アプリケーションを実行します:

      python3 hello_genai.py
       

設定を確認してください

アプリケーションを実行した後、データが Instana に送信されていることを確認してください:

  1. Instana のUIで、 「Gen AI Observability」 をクリックします。
  2. アプリケーションデータには、以下の項目が表示されます:
    • LLMの API 関数による呼び出しとトレース
    • トークンの利用状況に関する指標
    • 要求遅延時間
    • コスト
    • エラー率
注:Instana の他のエリア(「Analytics」セクションなど)でも、サービス名でフィルタリングすることで、メトリクス、ログ、トレースを確認できます。 で設定した Traceloop.init() パラメータ( app_name 例: hello_genai)は、 Instana におけるサービス名となります。

AIの可観測性のために Instana を設定する際に問題が発生した場合は、 「トラブルシューティング 」を参照し、接続エラー、データの欠落、設定に関する問題などの解決方法を確認してください。

オプション:LLMの価格設定を行う

ダッシュボードにコスト指標を表示するには、LLMモデルの価格設定を構成してください:

  1. Go ジェネレーティブAIの可観測性ダッシュボードへ。
  2. Go 「設定 」タブへ。
  3. LLMモデルの価格設定を行う。

詳細については、「LLMのコスト計算」をご覧ください。

注: その他の指標(レイテンシ、トークン数、エラー数)は、料金設定を行わなくても表示されます。

次のステップ

基本的な監視の設定が完了しましたので、フレームワーク別およびプロバイダー別のガイドをご覧ください:

AIエージェントフレームワーク: LangChain,、 LangGraph,、 CrewAI,、 OpenAI Agentsなどに関する詳細については、「 サポートされているAIエージェントフレームワーク 」を参照してください。