Tous les produits
Search
Centre de documentation

ApsaraDB for ClickHouse:Envoyer les données d'observabilité Dify vers Alibaba Cloud ClickHouse Enterprise Edition

Dernière mise à jour :Aug 11, 2026

Cet article explique comment transmettre les données d'observabilité de votre application Dify vers Alibaba Cloud ClickHouse Enterprise Edition et les analyser à l'aide du service d'observabilité tout-en-un. Cette procédure vous aide à surveiller les performances des applications et à résoudre les problèmes plus efficacement.

Prérequis

  • Le d'observabilité tout-en-un doit être activé sur votre instance Alibaba Cloud ClickHouse Enterprise Edition.

  • Cet article utilise Tongyi Qianwen à titre d'exemple. Vous devez obtenir une clé API pour authentifier les appels au grand modèle de langage (LLM).

Procédure

Dans cet exemple, le service métier et OpenTelemetry Collector sont déployés sur la même instance ECS. Pour les environnements de production, nous recommandons de déployer le service métier et OpenTelemetry Collector séparément.

Étape 1 : Déployer OpenTelemetry Collector

  1. Configurez l'instance ECS.

    1. Achetez une instance ECS. Nous vous recommandons d'attribuer une adresse IP publique lors de l'achat pour permettre l'accès via le réseau public.

    2. Ajoutez l'adresse IP de l'instance ECS à la liste d'autorisation de Alibaba Cloud ClickHouse.

      • Adresse IP privée : si l'instance ECS et l'instance Alibaba Cloud ClickHouse Enterprise Edition se trouvent dans le même Virtual Private Cloud (VPC), ajoutez l'adresse IP privée de l'instance ECS à la liste d'autorisation. Dans ce cas, utilisez le endpoint VPC de l'instance Alibaba Cloud ClickHouse dans les étapes suivantes.

      • Adresse IP publique : si l'instance ECS ne peut pas se connecter à l'instance Alibaba Cloud ClickHouse Enterprise Edition via le réseau privé, ajoutez l'adresse IP publique de l'instance ECS à la liste d'autorisation. Dans ce cas, utilisez le endpoint public de l'instance Alibaba Cloud ClickHouse dans les étapes suivantes.

      Connectez-vous à l'instance ECS et exécutez la commande suivante pour tester la connexion à l'instance Alibaba Cloud ClickHouse. Une réponse Ok. indique que la connexion a réussi.

      curl http://cc-xxxxxxx-clickhouse.clickhouseserver.pre.rds.aliyuncs.com:8123
  2. Connectez-vous à l'instance ECS et exécutez les commandes suivantes pour installer 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. Configurez OpenTelemetry Collector pour recevoir les données d'observabilité via gRPC et HTTP, puis les envoyer à l'instance Alibaba Cloud ClickHouse via HTTP.

    Copiez la commande suivante et modifiez la configuration comme indiqué ci-dessous :

    • Dans la section receivers, nous vous recommandons de remplacer le endpoint du récepteur OTLP par le endpoint de votre service OpenTelemetry Collector.

    • Dans la section exporters :

      • Configurez les détails de connexion de votre instance Alibaba Cloud ClickHouse, y compris endpoint, username et password.

      • Définissez les noms de la base de données et des tables pour stocker les données d'observabilité dans votre instance Alibaba Cloud ClickHouse. Cela inclut database, traces_table_name, logs_table_name et 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. Démarrez OpenTelemetry Collector.

    service otelcol-contrib restart

Étape 2 : Déployer et démarrer Dify

  1. Exécutez la commande suivante pour déployer Dify.

    git clone https://github.com/langgenius/dify.git
  2. Exécutez les commandes suivantes pour préparer le fichier de configuration Dify en vue de sa modification.

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

    Dans le fichier .env, définissez les paramètres suivants :

    • Définissez ENABLE_OTEL sur true.

    • Définissez OTEL_EXPORTER_OTLP_PROTOCOL sur HTTP.

    • Définissez OTLP_BASE_ENDPOINT sur le endpoint OpenTelemetry Collector accessible depuis le conteneur Dify, par exemple http://<YOUR_ECS_IP>:4318.

  3. Démarrez le service Dify.

    Pour obtenir des instructions sur l'installation de Docker, consultez Installer et utiliser Docker et Docker Compose .
    docker compose up -d
  4. Accédez à http://<IP_ADDRESS>/install pour inscrire un utilisateur et vous connecter. Remplacez <IP_ADDRESS> par l'adresse IP du serveur exécutant Dify.

    image

Étape 3 : Créer un assistant de chat

  1. Survolez votre photo de profil dans le coin supérieur droit et cliquez sur Settings.

    image

  2. Dans le volet de navigation de gauche, cliquez sur Model Providers, puis sélectionnez et installez un fournisseur de modèles. Cet exemple utilise Tongyi Qianwen.

  3. Une fois l'installation terminée, recherchez le modèle dans la section To be configured. Cliquez sur Setup, saisissez votre clé API, puis enregistrez.

    image

  4. Dans l'interface Dify, cliquez sur Studio > Chatbot en haut de la page. Cliquez sur Create Blank App, nommez l'application, puis cliquez sur Create.

    image

  5. Définissez l'invite. Voici un exemple d'invite :

    You are an AI assistant for Alibaba Cloud ClickHouse. Your purpose is to answer customer questions about the ClickHouse database product and its features. Your answers must be accurate and based on the provided knowledge base. If a question is outside your knowledge, honestly state that you do not know the answer to maintain integrity. Communicate with customers in a friendly and approachable tone. You can use emojis to enhance the interaction.
  6. Dans le coin supérieur droit de la page, cliquez sur Publish > Run pour démarrer une conversation.

    Voici un exemple de conversation :

    Question

    Can you tell me something about ClickHouse?

    Exemple de réponse

    Of course! Here is some key information about ClickHouse to help beginners get started quickly:
    1. What is ClickHouse?
    An open-source columnar database: Designed for large-scale data processing and excels in Online Analytical Processing (OLAP) scenarios.
    High performance: Achieves ultra-fast queries through columnar storage, a vectorized execution engine, and native parallel computing.
    SQL compatible: Supports standard SQL syntax and extends it with advanced features like window functions and aggregate functions.
    Distributed architecture: Supports horizontal scaling and can easily handle petabytes of data.
    2. Core features
    Columnar storage: Data is stored by column (instead of by row), which reduces I/O overhead and improves compression ratios.
    Vectorized execution: Processes data in batches by dividing it into chunks, accelerating computation by leveraging CPU instruction sets.
    Multi-engine support:
    MergeTree: The default engine, which supports sorting, partitioning, primary keys, and replicas.
    Memory: An in-memory engine suitable for temporary data.
    ......

Étape 4 : Interroger et analyser les données d'observabilité

  1. Sur la page des détails de votre instance Alibaba Cloud ClickHouse, cliquez sur All-in-one Observe Suite dans le volet de navigation de gauche pour ouvrir le portail de service.

  2. Sur la page principale, vous pouvez interroger et analyser les données d'observabilité de votre application Dify.

    image