全部產品
Search
文件中心

ApsaraDB for ClickHouse:將Dify可觀測資料投遞至雲資料庫 ClickHouse 企業版

更新時間:Nov 11, 2025

本文介紹如何將Dify應用的可觀測資料投遞至雲資料庫 ClickHouse 企業版,並通過一站式可觀測服務進行分析,旨在協助開發人員和營運人員監控應用效能、提升問題解決效率。

前提條件

操作步驟

本文樣本中,將在同一台ECS上部署商務服務和Otel Collector。生產環境下,建議獨立部署商務服務和Otel Collector。

步驟一:部署Otel Collector

  1. 配置ECS執行個體。

    1. 購買ECS執行個體。建議購買時分配公網IP,使ECS具備公網訪問能力。

    2. 將ECS IP地址添加到雲資料庫ClickHouse白名單中。

      • 私網IP:如果ECS執行個體與雲資料庫 ClickHouse 企業版執行個體位於同一VPC,可以將ECS的私網IP地址添加到白名單中,以下操作中雲資料庫ClickHouse執行個體的Endpoint使用VPC地址。

      • 公網IP:如果ECS執行個體與雲資料庫 ClickHouse 企業版執行個體私網不通,可以將ECS的公網IP地址添加到白名單中,以下操作中雲資料庫ClickHouse執行個體的Endpoint使用外網地址。

      您可以串連ECS執行個體,使用以下命令測試ECS與雲資料庫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. 配置Otel Collector,允許通過grpc和http協議接收可觀測資料,並通過http協議投遞至雲資料庫ClickHouse執行個體。

    複製以下命令並修改相關配置:

    • 在receivers地區:建議將otlp receiver的endpoint替換為Otel Collector服務的endpoint。

    • 在exporters地區:

      • 配置雲資料庫ClickHouse執行個體的串連資訊,包括endpoint、username和password。

      • 配置雲資料庫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

步驟二:部署並啟動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容器可訪問的collector服務端點,如http://{ECS本機IP}:4318

  3. 啟動Dify服務。

    docker安裝請參見安裝並使用Docker和Docker Compose
    docker compose up -d
  4. 訪問http://<IP地址>/install註冊使用者並登入。IP地址為運行Dify的伺服器IP地址。

    image

步驟三:建立聊天助手

  1. 滑鼠懸浮於右上方頭像處,單擊設定

    image

  2. 單擊左側導覽列的模型供應商,選擇並安裝模型供應商。本文樣本選擇通義千問。

  3. 安裝完成後,在待配置地區,找到對應模型,並單擊設定,輸入API Key並儲存。

    image

  4. 在Dify介面,單擊上方的工作室>聊天助手,然後單擊建立空白應用,設定應用程式名稱等資訊後,單擊建立

    image

  5. 設定提示詞。本文提示詞樣本如下:

    您將充當阿里雲ClickHouse資料庫的AI智能助手,專門解答客戶關於ClickHouse資料庫產品及其相關功能的問題。您
    的回答應基於已有的知識庫內容,確保準確。如果客戶的問題超出了您的知識範圍,請坦誠告知他們您不知道答案,
    以保持資訊的誠信。請以友好和親切的語氣與客戶交流。可以適當地使用Emoji來提升互動體驗。
  6. 單擊頁面右上方的發布>運行,進行對話。

    本文對話樣本如下:

    提問

    可以告訴我一些ClickHouse的知識嗎?

    返回樣本

    當然可以!以下是關於 ClickHouse 的一些關鍵知識,適合初學者快速入門:
    1. 什麼是 ClickHouse?
    開源列式資料庫:專為大規模資料處理設計,擅長 OLAP(線上分析處理)情境。
    高效能:通過列式儲存、向量化執行引擎和原生並行計算,實現超高速查詢。
    相容 SQL:支援標準 SQL 文法,同時擴充了視窗函數、彙總函式等進階功能。
    分布式架構:支援水平擴充,可輕鬆處理 PB 級資料。
    2. 核心特性
    列式儲存:資料按列儲存(而非傳統行式),減少 I/O 開銷,提升壓縮率。
    向量化執行:將資料劃分為塊(Chunk),批量處理資料,利用 CPU 指令集加速計算。
    多引擎支援:
    MergeTree:預設引擎,支援排序、分區、主鍵和副本。
    Memory:記憶體引擎,適合臨時資料。
    ......

步驟四:查詢與分析可觀測資料

  1. 雲資料庫ClickHouse執行個體詳情頁左側導覽列單擊一站式可观测,根據頁面提示前往服務入口。

  2. 在首頁面上查詢並分析Dify應用的可觀測資料。

    image