Skip to content

Latest commit

 

History

History
49 lines (29 loc) · 1.67 KB

README.md

File metadata and controls

49 lines (29 loc) · 1.67 KB

Architecture

img

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, trace open syscall.
    • ...
  • FilterManager: Manage filters, support plugin.

    • DefaultFilter: Filtering some meaningless information
    • ...
  • CollectorManager: Manage collectors, support plugin.

    • DBCollector: Collect filted trackings and store them into database.
    • ...

Data Flow

img

Current data flow implementation:

  1. Register Tracer's callback to host, and start Monitor.
  2. Once Monitor's poll is called, it will trigger Tracer's callback
  3. Tracer's callback will call Filter to filter the data.
  4. Filter's filter will call Collector's emit to collect the data.
  5. Analyzer restructure the data and provide query and analysis API.
  6. Query Service expose API for PDP to query data usage information.