Bu makale, Dify uygulamanızdaki gözlemlenebilirlik verilerini Alibaba Cloud ClickHouse Enterprise Edition hizmetine nasıl göndereceğinizi ve bu verileri ClickStack hizmeti ile nasıl analiz edeceğinizi gösterir. Bu süreç, uygulama performansını izlemenize ve sorunları daha verimli bir şekilde çözmenize yardımcı olur.
Önkoşullar
Alibaba Cloud ClickHouse Enterprise Edition örneğinizde ClickStack hizmeti etkinleştirilmiş olmalıdır.
Bu makalede örnek olarak Tongyi Qianwen kullanılmaktadır. Büyük dil modeline (LLM) yapılan çağrıları kimlik doğrulamak için bir API anahtarı edinmeniz gerekir.
Yordam
Bu örnekte iş hizmeti ve OpenTelemetry Collector aynı ECS örneğine dağıtılır. Üretim ortamları için iş hizmeti ile OpenTelemetry Collector'ı ayrı ayrı dağıtmanızı öneririz.
1. Adım: OpenTelemetry Collector'ı dağıtma
-
ECS örneğini yapılandırın.
Bir ECS örneği satın alın. Genel ağ erişimi için satın alma sırasında bir genel IP adresi atamanızı öneririz.
-
ECS örneğinin IP adresini Alibaba Cloud ClickHouse hizmetinin izin listesine ekleyin.
Özel IP adresi: ECS örneği ile Alibaba Cloud ClickHouse Enterprise Edition örneği aynı Sanal Özel Cloud (VPC) içinde yer alıyorsa ECS örneğinin özel IP adresini izin listesine ekleyin. Bu durumda aşağıdaki adımlarda Alibaba Cloud ClickHouse örneği için VPC uç noktasını kullanın.
Genel IP adresi: ECS örneği Alibaba Cloud ClickHouse Enterprise Edition örneğine özel ağ üzerinden bağlanamıyorsa ECS örneğinin genel IP adresini izin listesine ekleyin. Bu durumda aşağıdaki adımlarda Alibaba Cloud ClickHouse örneği için genel uç noktayı kullanın.
ECS örneğine bağlanabilir ve Alibaba Cloud ClickHouse örneğine bağlantıyı test etmek için aşağıdaki komutu çalıştırabilirsiniz.
Ok.yanıtı başarılı bir bağlantıyı gösterir.curl http://cc-xxxxxxx-clickhouse.clickhouseserver.pre.rds.aliyuncs.com:8123
-
ECS örneğine bağlanın ve otelcol-contrib yüklemek için aşağıdaki komutları çalıştırın.
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 -
OpenTelemetry Collector'ı gRPC ve HTTP üzerinden gözlemlenebilirlik verilerini almak ve bu verileri HTTP üzerinden Alibaba Cloud ClickHouse örneğine göndermek üzere yapılandırın.
Aşağıdaki komutu kopyalayın ve açıklamalara göre yapılandırmayı değiştirin:
receiversbölümünde OTLP alıcısınınendpointdeğerini OpenTelemetry Collector hizmetinizin uç noktasıyla değiştirmenizi öneririz.-
exportersbölümünde:Alibaba Cloud ClickHouse örneğinizin bağlantı ayrıntılarını;
endpoint,usernamevepassworddahil olacak şekilde yapılandırın.Gözlemlenebilirlik verilerini depolamak için Alibaba Cloud ClickHouse örneğinizdeki veritabanı ve tablo adlarını yapılandırın. Buna
database,traces_table_name,logs_table_namevemetrics_tablesdahildir.
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 -
OpenTelemetry Collector'ı başlatın.
service otelcol-contrib restart
2. Adım: Dify'yı dağıtma ve başlatma
-
Dify'yı dağıtmak için aşağıdaki komutu çalıştırın.
git clone https://github.com/langgenius/dify.git -
Dify yapılandırma dosyasını düzenlemeye hazırlamak için aşağıdaki komutları çalıştırın.
cd dify/docker cp .env.example .env vim .env.envdosyasında aşağıdaki parametreleri ayarlayın:ENABLE_OTELdeğerinitrueolarak ayarlayın.OTEL_EXPORTER_OTLP_PROTOCOLdeğeriniHTTPolarak ayarlayın.OTLP_BASE_ENDPOINTdeğerini Dify konteynerinden erişilebilen OpenTelemetry Collector uç noktasına ayarlayın; örneğinhttp://<YOUR_ECS_IP>:4318.
-
Dify hizmetini başlatın.
Docker kurulumu hakkında bilgi için bkz. Docker ve Docker Compose'u yükleme ve kullanma .
docker compose up -d -
Bir kullanıcı kaydetmek ve oturum açmak için
http://<IP_ADDRESS>/installadresine gidin.<IP_ADDRESS>yerine Dify'yı çalıştıran sunucunun IP adresini yazın.
3. Adım: Bir sohbet asistanı oluşturma
-
Sağ üst köşedeki profil resminizin üzerine gelin ve Settings seçeneğine tıklayın.

Sol gezinme bölmesinde Model Providers seçeneğine tıklayın, ardından bir model sağlayıcı seçip yükleyin. Bu örnekte Tongyi Qianwen kullanılmaktadır.
-
Yükleme tamamlandıktan sonra modeli To be configured bölümünde bulun. Setup seçeneğine tıklayın, API anahtarınızı girin ve kaydedin.

-
Dify arayüzünde üst kısımdaki Studio > Chatbot seçeneklerine tıklayın. Create Blank App seçeneğine tıklayın, uygulamaya bir ad verin ve ardından Create seçeneğine tıklayın.

-
İstemi tanımlayın. Aşağıda örnek bir istem verilmiştir:
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. -
Sayfanın sağ üst köşesinde Publish > Run seçeneklerine tıklayarak bir konuşma başlatın.
Aşağıda örnek bir konuşma verilmiştir:
Soru
Can you tell me something about ClickHouse?Örnek yanıt
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. ......
4. Adım: Gözlemlenebilirlik verilerini sorgulama ve analiz etme
Alibaba Cloud ClickHouse örneğinizin ayrıntılar sayfasında sol gezinme bölmesindeki ClickStack seçeneğine tıklayarak hizmet portalını açın.
-
Ana sayfada Dify uygulamanızdan gelen gözlemlenebilirlik verilerini sorgulayabilir ve analiz edebilirsiniz.
