Topik ini menjelaskan cara mengirimkan data observabilitas dari aplikasi Dify ke ApsaraDB for ClickHouse Enterprise Edition untuk dianalisis menggunakan layanan observabilitas satu atap. Proses ini membantu pengembang serta insinyur operasi dan pemeliharaan (O&M) memantau kinerja aplikasi serta menyelesaikan masalah secara lebih efisien.
Prasyarat
Layanan observabilitas satu atap telah diaktifkan untuk instans ApsaraDB for ClickHouse Enterprise Edition Anda.
Topik ini menggunakan Qwen sebagai contoh. Dapatkan Kunci API untuk digunakan sebagai kredensial autentikasi saat memanggil model bahasa besar (LLM).
Prosedur
Dalam contoh ini, layanan bisnis dan Otel Collector ditempatkan pada Instance ECS yang sama. Di lingkungan produksi, kami menyarankan agar Anda menempatkan layanan bisnis dan Otel Collector secara terpisah.
Langkah 1: Menempatkan Otel Collector
Konfigurasikan Instance ECS.
Beli Instance ECS. Saat membeli instans, tetapkan Alamat IP publik agar dapat diakses melalui jaringan publik.
Tambahkan alamat IP Instance ECS ke daftar putih instans ApsaraDB for ClickHouse.
IP pribadi: Jika Instance ECS dan instans ApsaraDB for ClickHouse Enterprise Edition berada dalam VPC yang sama, tambahkan Alamat IP pribadi Instance ECS ke daftar putih. Pada langkah-langkah berikutnya, gunakan alamat VPC sebagai titik akhir instans ApsaraDB for ClickHouse.
IP publik: Jika Instance ECS dan instans ApsaraDB for ClickHouse Enterprise Edition tidak dapat terhubung melalui jaringan pribadi, tambahkan Alamat IP publik Instance ECS ke daftar putih. Pada langkah-langkah berikutnya, gunakan alamat publik sebagai titik akhir instans ApsaraDB for ClickHouse.
Sambungkan ke Instance ECS dan jalankan perintah berikut untuk menguji konektivitas ke instans ApsaraDB for ClickHouse. Jika perintah mengembalikan
Ok., koneksi berhasil.curl http://cc-xxxxxxx-clickhouse.clickhouseserver.pre.rds.aliyuncs.com:8123
Sambungkan ke Instance ECS dan jalankan perintah berikut untuk menginstal 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.rpmKonfigurasikan Otel Collector untuk menerima data observabilitas melalui protokol gRPC dan HTTP, lalu mengirimkannya ke instans ApsaraDB for ClickHouse melalui protokol HTTP.
Salin konten berikut untuk membuat file konfigurasi dan sesuaikan dengan kebutuhan Anda:
Pada bagian `receivers`: Ganti titik akhir penerima OTLP dengan titik akhir layanan Otel Collector.
Pada bagian `exporters`:
Konfigurasikan informasi koneksi untuk instans ApsaraDB for ClickHouse, termasuk titik akhir, nama pengguna, dan kata sandi.
Konfigurasikan nama database dan tabel untuk menyimpan data observabilitas di instans ApsaraDB for ClickHouse. Ini mencakup `database`, `traces_table_name`, `logs_table_name`, dan `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] EOFJalankan Otel Collector.
service otelcol-contrib restart
Langkah 2: Menempatkan dan menjalankan Dify
Jalankan perintah berikut untuk menempatkan Dify.
git clone https://github.com/langgenius/dify.gitJalankan perintah berikut untuk mengubah file konfigurasi Dify.
cd dify/docker cp .env.example .env vim .envPada file konfigurasi
.env, cari dan ubah item konfigurasi berikut:ENABLE_OTEL: Atur parameter ini ke `true`.
OTEL_EXPORTER_OTLP_PROTOCOL: Atur parameter ini ke `http`.
OTLP_BASE_ENDPOINT: Atur parameter ini ke titik akhir layanan collector yang dapat diakses dari kontainer Dify, seperti
http://{Alamat IP Instance ECS}:4318.
Jalankan layanan Dify.
Untuk informasi selengkapnya tentang cara menginstal Docker, lihat Instal dan gunakan Docker dan Docker Compose.
docker compose up -dBuka
http://<alamat IP>/installuntuk mendaftarkan pengguna dan masuk. Ganti `` dengan alamat IP server tempat Dify dijalankan.
Langkah 3: Membuat asisten obrolan
Arahkan kursor ke gambar profil di pojok kanan atas dan klik Settings.

Pada panel navigasi di sebelah kiri, klik Model Providers. Pilih dan instal penyedia model, seperti Qwen.
Setelah instalasi selesai, pada bagian To Be Configured, temukan model tersebut dan klik Setup. Masukkan Kunci API dan simpan pengaturan.

Di bagian atas halaman Dify, klik Studio > Chatbot. Lalu, klik Create Blank App. Atur nama aplikasi dan informasi lainnya, lalu klik Create.

Atur prompt. Berikut adalah contoh prompt:
You will act as an AI assistant for Alibaba Cloud's ClickHouse database. Your role is to answer customer questions about the ClickHouse database product and its features. Your answers must be based on the existing knowledge base to ensure accuracy. If a customer's question is beyond 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.Di pojok kanan atas halaman, klik Publish > Run untuk memulai percakapan.
Berikut adalah contoh percakapan:
Question
Can you tell me something about ClickHouse?Sample response
Of course! Here is some key information about ClickHouse for beginners: 1. What is ClickHouse? 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 such as window functions and aggregate functions. Distributed architecture: Supports horizontal scaling and can easily handle petabyte-scale data. 2. Core features Columnar storage: Data is stored by column instead of by row. This reduces I/O overhead and improves the compression ratio. Vectorized execution: Divides data into chunks and processes it in batches. This uses CPU instruction sets to accelerate computation. Multiple engine support: MergeTree: The default engine. It supports sorting, partitions, primary keys, and replicas. Memory: An in-memory engine suitable for temporary data. ...
Langkah 4: Mengkueri dan menganalisis data observabilitas
Pada halaman detail instans ApsaraDB for ClickHouse Anda, klik All-in-one Observe Suite pada panel navigasi di sebelah kiri. Lalu, ikuti petunjuk di layar untuk menuju portal layanan.
Pada halaman utama, Anda dapat mengkueri dan menganalisis data observabilitas dari aplikasi Dify.
