Operations 16 min read

How EMonitor Outperforms CAT: A Deep Dive into Meituan’s Monitoring Evolution

This article compares Meituan’s in‑house EMonitor with the open‑source CAT platform, outlines their core monitoring models, sampling pipelines, custom metrics and integration capabilities, and traces the evolution of monitoring stages from log‑based to intelligent root‑cause analysis.

dbaplus Community
dbaplus Community
dbaplus Community
How EMonitor Outperforms CAT: A Deep Dive into Meituan’s Monitoring Evolution

Background

EMonitor is a one‑stop monitoring platform used by all technical departments at Meituan. It collects system, container, network, middleware, business, access‑layer and front‑end metrics, handling petabytes of data per day, writing hundreds of terabytes of metric points, and serving tens of millions of queries.

CAT (Central Application Tracking) is an open‑source Java‑based real‑time application monitoring system originally developed for Meituan‑Dianping.

Monitoring Models (CAT Open‑Source 3.0.0)

Transaction : records execution time and count of a code segment.

Event : records the occurrence count of a specific event.

Heartbeat : periodic statistics such as CPU usage.

Metric : business‑oriented counters that store count and sum.

Transaction and Event share two fixed dimensions, type and name, which are aggregated on a per‑minute basis for reporting.

EMonitor Enhancements

Supports additional metric types: Counter, Timer, Histogram, Payload, and Gauge. Each metric can be tagged, with up to 1,000 distinct tag combinations per metric.

Provides a Grafana‑like dashboard with SQL‑style query configuration, multi‑environment synchronization, and mobile access.

Integrates with frameworks such as MyBatis to automatically record SQL execution as Transactions (type=SQL).

Real‑time streaming compute pre‑aggregates incoming Transaction, Event and custom Metric data every 10 seconds, then writes the results to the open‑source LinDB time‑series database and to Kafka for downstream alerting.

Writes raw trace data to HDFS/HBase and builds application dependency graphs stored in Neo4j.

Comparison between EMonitor and CAT

EMonitor stores metrics in a dedicated time‑series DB (LinDB), enabling arbitrary time‑range queries; CAT only supports hourly aggregation stored in MySQL.

EMonitor aggregates at 10 second granularity, while CAT aggregates per minute.

EMonitor can directly compare current and historical curves; CAT cannot display such side‑by‑side comparisons.

EMonitor offers flexible type / name filtering and richer percentile calculations (TP99/TP999). CAT provides TP999 lines but with limited accuracy across multiple machines or hours.

EMonitor allows arbitrary tag‑based queries and multi‑dimensional dashboards; CAT’s dashboards are limited to fixed dimensions and machine‑level filtering.

Despite these differences, CAT still provides useful features such as TP999 percentile lines and machine‑level filtering.

Evolution Stages of Monitoring Systems

Log Monitoring : Logs are collected and indexed by ELK (Elasticsearch‑Logstash‑Kibana). Debugging relies on searching raw log entries.

Link (Tracing) Monitoring : Introduced by CAT, abstracting Transaction/Event models for trace analysis and simple reporting.

Metric Monitoring : Enriches metric types (Counter, Timer, Histogram, etc.), delegates storage to time‑series databases, and integrates with Grafana‑like dashboards.

Platform Integration : Consolidates system, container, middleware, and business metrics into a unified ingestion, processing, and storage pipeline.

Deep Analysis : Builds application and business dashboards, performs root‑cause analysis, and enables proactive alerting based on trends.

Future Trend: Metrics, Tracing, Logging

Metrics dominate modern monitoring, followed by tracing, with logging playing a supporting role. The next wave will focus on deep metric analysis combined with tracing‑derived dependency graphs to provide comprehensive, proactive insight.

References

CAT repository: https://github.com/dianping/cat

In‑depth analysis of CAT: https://tech.meituan.com/2018/11/01/cat-in-depth-java-application-monitoring.html

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Distributed SystemsmonitoringObservabilitymetricsCATtracingEMonitor
dbaplus Community
Written by

dbaplus Community

Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.