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
-
Configurez l'instance ECS.
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.
-
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
-
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 -
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 leendpointdu 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,usernameetpassword.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_nameetmetrics_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 -
Démarrez OpenTelemetry Collector.
service otelcol-contrib restart
Étape 2 : Déployer et démarrer Dify
-
Exécutez la commande suivante pour déployer Dify.
git clone https://github.com/langgenius/dify.git -
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 .envDans le fichier
.env, définissez les paramètres suivants :Définissez
ENABLE_OTELsurtrue.Définissez
OTEL_EXPORTER_OTLP_PROTOCOLsurHTTP.Définissez
OTLP_BASE_ENDPOINTsur le endpoint OpenTelemetry Collector accessible depuis le conteneur Dify, par exemplehttp://<YOUR_ECS_IP>:4318.
-
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 -
Accédez à
http://<IP_ADDRESS>/installpour inscrire un utilisateur et vous connecter. Remplacez<IP_ADDRESS>par l'adresse IP du serveur exécutant Dify.
Étape 3 : Créer un assistant de chat
-
Survolez votre photo de profil dans le coin supérieur droit et cliquez sur Settings.

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.
-
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.

-
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.

-
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. -
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é
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.
-
Sur la page principale, vous pouvez interroger et analyser les données d'observabilité de votre application Dify.
