すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for ClickHouse:Dify の可観測性データを ApsaraDB for ClickHouse Enterprise Edition に配信する

最終更新日:Nov 12, 2025

このトピックでは、ワンストップの可観測性サービスを使用して、分析のために Dify アプリケーションから ApsaraDB for ClickHouse Enterprise Edition に可観測性データを配信する方法について説明します。このプロセスは、開発者および運用保守 (O&M) エンジニアがアプリケーションのパフォーマンスを監視し、問題をより効率的に解決するのに役立ちます。

前提条件

  • ワンストップの可観測性サービスが、お使いの ApsaraDB for ClickHouse Enterprise Edition インスタンスで 有効化 されています。

  • このトピックでは、Qwen を例として使用します。大規模言語モデル (LLM) を呼び出すための認証情報として使用する API キーを取得 します。

手順

この例では、ビジネスサービスと Otel Collector は同じ ECS インスタンスにデプロイされます。本番環境では、ビジネスサービスと Otel Collector を別々にデプロイすることをお勧めします。

ステップ 1: Otel Collector のデプロイ

  1. ECS インスタンスを構成します。

    1. ECS インスタンスを購入します。インスタンスを購入する際に、パブリックネットワークアクセスを有効にするためにパブリック IP アドレスを割り当てます。

    2. ApsaraDB for ClickHouse インスタンスの ホワイトリスト に ECS インスタンスの IP アドレスを追加します。

      • プライベート IP: ECS インスタンスと ApsaraDB for ClickHouse Enterprise Edition インスタンスが同じ VPC にある場合は、ECS インスタンスのプライベート IP アドレスをホワイトリストに追加します。次のステップでは、ApsaraDB for ClickHouse インスタンスのエンドポイントに VPC アドレスを使用します。

      • パブリック IP: ECS インスタンスと ApsaraDB for ClickHouse Enterprise Edition インスタンスがプライベートネットワーク経由で接続できない場合は、ECS インスタンスのパブリック IP アドレスをホワイトリストに追加します。次のステップでは、ApsaraDB for ClickHouse インスタンスのエンドポイントにパブリックアドレスを使用します。

      ECS インスタンスに接続し、次のコマンドを実行して ApsaraDB for ClickHouse インスタンスへの接続性をテストします。コマンドが Ok. を返した場合、接続は成功です。

      curl http://cc-xxxxxxx-clickhouse.clickhouseserver.pre.rds.aliyuncs.com:8123
  2. ECS インスタンスに接続し、次のコマンドを実行して otelcol-contrib をインストールします。

    mkdir llm-demo
    cd llm-demo
    wget -O otelcol-contrib.rpm https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.136.0/otelcol-contrib_0.136.0_linux_amd64.rpm
    yum install otelcol-contrib.rpm
  3. gRPC および HTTP プロトコル経由で可観測性データを受け入れ、HTTP プロトコル経由で ApsaraDB for ClickHouse インスタンスにデータを配信するように Otel Collector を構成します。

    次の内容をコピーして設定ファイルを作成し、必要に応じて設定を変更します:

    • `receivers` セクションで: OTLP レシーバーのエンドポイントを Otel Collector サービスのエンドポイントに置き換えます。

    • `exporters` セクションで:

      • エンドポイント、ユーザー名、パスワードなど、ApsaraDB for ClickHouse インスタンスの接続情報を構成します。

      • ApsaraDB for ClickHouse インスタンスに可観測性データを格納するためのデータベース名とテーブル名を構成します。これには、`database`、`traces_table_name`、`logs_table_name`、`metrics_tables` が含まれます。

    cat > /etc/otelcol-contrib/config.yaml << EOF
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    processors:
      batch:
        timeout: 5s
        send_batch_size: 5000
    exporters:
      clickhouse:
        endpoint: http://cc-xxxxxx-clickhouse.clickhouseserver.pre.rds.aliyuncs.com:8123?dial_timeout=10s&compress=lz4&async_insert=1
        username: test
        password: password
        # ttl: 72h
        traces_table_name: otel_traces
        logs_table_name: otel_logs
        metrics_tables:
          gauge: 
            name: otel_metrics_gauge
          sum: 
            name: otel_metrics_sum
          summary: 
            name: otel_metrics_summary
          histogram: 
            name: otel_metrics_histogram
          exponential_histogram: 
            name: otel_metrics_exp_histogram
        create_schema: false
        timeout: 5s
        database: clickobserve_service
        sending_queue:
          queue_size: 1000
        retry_on_failure:
          enabled: true
          initial_interval: 5s
          max_interval: 30s
          max_elapsed_time: 300s
    
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [clickhouse]
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [clickhouse]
        logs:
          receivers: [otlp]
          processors: [batch]
          exporters: [clickhouse]
    EOF
  4. Otel Collector を起動します。

    service otelcol-contrib restart

ステップ 2: Dify のデプロイと起動

  1. 次のコマンドを実行して Dify をデプロイします。

    git clone https://github.com/langgenius/dify.git
  2. 次のコマンドを実行して Dify の設定ファイルを変更します。

    cd dify/docker
    cp .env.example .env
    vim .env

    .env 設定ファイルで、次の設定項目を見つけて変更します:

    • ENABLE_OTEL: このパラメーターを `true` に設定します。

    • OTEL_EXPORTER_OTLP_PROTOCOL: このパラメーターを `http` に設定します。

    • OTLP_BASE_ENDPOINT: このパラメーターを、Dify コンテナーからアクセス可能なコレクターサービスのエンドポイント (例: http://{ECS インスタンスの IP アドレス}:4318) に設定します。

  3. Dify サービスを起動します。

    詳細については、「Docker と Docker Compose のインストールと使用」をご参照ください。
    docker compose up -d
  4. http://<IP アドレス>/install にアクセスしてユーザーを登録し、ログインします。`` を Dify が実行されているサーバーの IP アドレスに置き換えます。

    image

ステップ 3: チャットアシスタントの作成

  1. 右上のプロフィール画像にカーソルを合わせ、[設定] をクリックします。

    image

  2. 左側のナビゲーションウィンドウで、[モデルプロバイダー] をクリックします。Qwen などのモデルプロバイダーを選択してインストールします。

  3. インストールが完了したら、[設定が必要] セクションでモデルを見つけ、[セットアップ] をクリックします。API キーを入力して設定を保存します。

    image

  4. Dify ページの上部で、[スタジオ] > [チャットボット] をクリックします。次に、[空白のアプリを作成] をクリックします。アプリケーション名とその他の情報を設定し、[作成] をクリックします。

    image

  5. プロンプトを設定します。以下はプロンプトの例です:

    あなたは Alibaba Cloud の ClickHouse データベースの AI アシスタントとして機能します。あなたの役割は、ClickHouse データベース製品とその機能に関する顧客の質問に答えることです。回答は、正確性を確保するために既存のナレッジベースに基づいている必要があります。顧客の質問があなたの知識の範囲外である場合は、誠実さを保つために答えを知らないと正直に述べてください。フレンドリで親しみやすいトーンで顧客とコミュニケーションをとってください。絵文字を使用して対話を強化することができます。
  6. ページの右上隅で、[公開] > [実行] をクリックして会話を開始します。

    以下は会話のサンプルです:

    質問

    ClickHouse について何か教えていただけますか?

    応答のサンプル

    もちろんです!初心者のための ClickHouse に関する主要な情報をいくつかご紹介します:
    1. ClickHouse とは?
    オープンソースのカラムナデータベース: 大規模なデータ処理用に設計されており、オンライン分析処理 (OLAP) シナリオに優れています。
    高性能: カラムナストレージ、ベクトル化された実行エンジン、およびネイティブな並列計算により、超高速なクエリを実現します。
    SQL 互換: 標準の SQL 構文をサポートし、ウィンドウ関数や集計関数などの高度な機能で拡張されています。
    分散アーキテクチャ: 水平スケーリングをサポートし、ペタバイト規模のデータを簡単に処理できます。
    2. コアな特徴
    カラムナストレージ: データは行単位ではなく列単位で格納されます。これにより、I/O オーバーヘッドが削減され、圧縮率が向上します。
    ベクトル化実行: データをチャンクに分割し、バッチで処理します。これにより、CPU の命令セットを使用して計算を高速化します。
    複数のエンジンをサポート:
    MergeTree: デフォルトのエンジンです。ソート、パーティション、プライマリキー、レプリカをサポートします。
    Memory: 一時データに適したインメモリエンジンです。
    ...

ステップ 4: 可観測性データのクエリと分析

  1. ApsaraDB for ClickHouse インスタンスのインスタンス詳細ページで、左側のナビゲーションウィンドウにある ワンストップ可観測 をクリックします。次に、画面の指示に従ってサービスポータルに移動します。

  2. メインページでは、Dify アプリケーションからの可観測性データをクエリおよび分析できます。

    image