Key Components and Features:
-
[] Control Server: Control plane, providing API for administrator to manage duetector.
-
Query Server: PIP Server, providing API for PDP to get data usage information.
-
Analyzer: Analyze data usage information and generate data usage behavior.
- DBAnalyzer: Analyze data usage information from database.
-
CLI: CLI for administrator to manage duetector.
-
BccMonitor: Monitor data usage behavior in kernel space. Use BCC to implement.
-
ShMonitor: A general monitor for custom command. Polling the output of command.
-
SubprocessMonitor: A subprocess monitor for subprocesses. Manage subprocesses and daemonize them.
-
TracerManager: Manage tracers, support plugin.
- OpenTracer: A
bcc
tracer, traceopen
syscall. - ...
- OpenTracer: A
-
FilterManager: Manage filters, support plugin.
- DefaultFilter: Filtering some meaningless information
- ...
-
CollectorManager: Manage collectors, support plugin.
- DBCollector: Collect filted trackings and store them into database.
- ...
Current data flow implementation:
- Register Tracer's
callback
to host, and start Monitor. - Once Monitor's
poll
is called, it will trigger Tracer'scallback
- Tracer's
callback
will call Filter to filter the data. - Filter's
filter
will call Collector'semit
to collect the data. - Analyzer restructure the data and provide query and analysis API.
- Query Service expose API for PDP to query data usage information.