← Back to blog
Xinchuang 4 min read 炬鲸团队

Deploying JJHub OBSERVE on Domestic CPUs and Operating Systems

Deploy JJHub OBSERVE on domestic CPUs and operating systems: supported Kunpeng, Phytium, Hygon, and Loongson platforms, offline image migration, initialization with Dameng or KingbaseES, and resource planning for weaker single-core performance.

Deploying JJHub OBSERVE on Domestic CPUs and Operating Systems

Supported Stack

JJHub OBSERVE has been adapted and verified against mainstream domestic hardware and software stacks, including:

  • CPUs: Kunpeng (ARM), Phytium (ARM), Hygon (x86), Loongson (LoongArch)
  • Operating systems: Kylin V10, UOS, openEuler, Anolis OS
  • Databases: Dameng DM8, KingbaseES, openGauss
  • Middleware: TongWeb, Baolande BES

The server ships as container images. Core components built in Go and C++ are compiled separately for each architecture above, with no x86 emulation layer, so performance loss is negligible. The control console runs on standard Java, which is why TongWeb and Baolande BES appear in the middleware list—both are certified drop-in replacements for the console's servlet container.

Deployment Preparation

Deployment is largely the same as on x86. Confirm three things first:

  • The kernel and glibc versions meet image requirements (Kylin V10 needs SP1 or later).
  • The host has Docker or containerd runtime.
  • The server can reach the registry, or images have been imported offline.

Domestic intranets are often offline, so use docker save / docker load for offline image migration:

# On an internet-connected machine
docker save jjhub/observe:2.5.0-arm64 | gzip > observe-2.5.0-arm64.tar.gz

# On the intranet
docker load -i observe-2.5.0-arm64.tar.gz

Always match the image tag to the target architecture (arm64 for Kunpeng/Phytium, loongarch64 for Loongson, amd64 for Hygon). Loading a mismatched image fails at docker run with an "exec format error".

Installation and Initialization

After importing, run the official deployment script, which auto-detects the architecture and picks the right image:

./deploy.sh install --arch auto

During initialization, choose Dameng or KingbaseES as the metadata database; the script creates the database account and schema for you. Connection string example:

jdbc:dm://<dm-host>:5236/OBSERVE

On Kylin V10 with mandatory access control (security labels) enabled, disable or whitelist OBSERVE processes before installing, or the service may fail to bind ports. This is the single most common install-time issue we see, and it shows up as a silent failure to listen rather than a clear error.

Database and Middleware Notes

If you already run Dameng or KingbaseES, point OBSERVE at the existing instance rather than deploying a new one—just create a dedicated schema and account. Both databases support online backup, but test a restore before go-live; a backup you haven't restored is a hope, not a backup. On the middleware side, TongWeb and BES need a JDK 8 or 11 runtime and a servlet version of 3.1 or higher for the console to deploy cleanly. Keep the middleware logs handy—they're the first place to look if the console fails to start after a Kylin security patch.

Common Issues

Two recurring issues are worth knowing about before you hit them. The first is the exec format error covered above—almost always a wrong image tag for the architecture. The second is time sync: OBSERVE indexes by timestamp, so if the Kylin hosts' clocks drift, queries and alert windows will be off. Run NTP or chrony on every node and check for clock skew as part of the pre-flight. If ingest looks slow after installation, verify the data disk is actually NVMe and not a misconfigured storage tier—this single misconfiguration accounts for more "slow database" reports than any CPU bottleneck.

Performance and Resource Guidance

Domestic CPUs generally have weaker single-core performance than mainstream x86, so leave headroom when planning resources. For 100 million log lines per day:

  • 3 nodes, each 16 cores and 64 GB memory.
  • NVMe SSDs for data disks; log write throughput is sensitive to disk IOPS.
  • At least 10GbE networking; shard rebalancing depends on internal bandwidth.

In our benchmark, a 16-core Kunpeng node sustained roughly 70–80% of the ingest throughput of a comparable x86 node, and query latency was within 1.3×. Plan capacity with that ratio in mind. Before going live, run the built-in load test for write and query baselines, and tune query timeout thresholds to match domestic CPU performance instead of copying x86 defaults.

Compatibility Checklist

Before production, verify item by item: Dameng/KingbaseES backup and restore, Kylin security patch updates not disrupting the service, a clean console deployment on TongWeb, and data integrity under power and network failures. Once these pass, you can submit the adaptation report required for domestic-technology project acceptance.