Porting to a domestic stack is more than swapping the OS. This post documents deploying JUJING OBSERVE on Kylin V10 + Kunpeng 920 + DM Database—covering dependencies, storage migration, tuning, and reusable configs with hard-won gotchas.
The gap people underestimate in domestic-stack (Xinchuang) work is the one between "it installs" and "it runs in production." JUJING OBSERVE has run in production on Kylin V10 (SP3) + Kunpeng 920 + DM Database 8, and this post records the deployment and tuning process honestly.
The two real differences are CPU architecture and database. Kunpeng is ARM, so a lot of third-party binaries are x86-only — verify an aarch64 build exists before you commit to a component. DM's SQL dialect differs from MySQL, so any module that touches SQL needs its own adaptation pass. Don't assume anything ports over unchanged.
Install the system dependencies first:
yum install -y libaio glibc gcc-c++ make
# DM needs libaio; without it you get "error while loading shared libraries: libaio.so.1"
JUJING OBSERVE ships an aarch64 offline installer. Extract it and run the bundled script — no network access required:
tar -xzf jjhub-observe-2.3-aarch64.tar.gz
cd jjhub-observe-2.3-aarch64
./install.sh --db dm8 --db-host 192.168.1.20 --db-port 5236
The --db dm8 flag switches on the DM dialect adaptation layer. The installer creates the database, tables, and initial data automatically. Use a dedicated business account rather than running the production schema as DM's SYSDBA, and keep its privileges to the minimum.
Kunpeng has plenty of memory bandwidth, but DM needs tuning for high-concurrency small-transaction workloads. In DM's dm.ini:
MEMORY_POOL = 4096 # memory pool, in MB
BUFFER = 8192 # data buffer
SORT_BUF_SIZE = 64
On the write side, JUJING OBSERVE partitions logs and metrics by time by default. On DM, change the partition granularity from daily to hourly so a single partition doesn't grow large enough to force cross-partition scans and slow down queries.
One easily missed point on Kunpeng: use a Kunpeng-optimized OpenJDK (BiSheng JDK or the Kylin-bundled build). It's about 15% faster than a generic ARM build on crypto and GC, which directly affects Collector and alert-engine throughput. Don't lift JDK tuning flags from x86 and drop them onto ARM.
Push 10,000 log lines per second with a load tool while running queries, and watch three things:
Our measured result: at 10k writes/sec plus 20 concurrent queries, CPU sits around 40% with no memory leak. The one real gotcha was a cursor-leak bug in DM before 8.1.1 that caused occasional query stalls — upgrade to DM 8.1.1.128 or later if you hit it.