How monitoringface-benchmark/monitoringface works
MonitoringFace is a Docker-backed runtime-verification experiment platform. Users supply experiment YAML through the CLI; the platform resolves configured generators, policies, traces, monitors, oracles, and converters, then prepares monitor-specific inputs, runs monitors, normalizes verdicts, and evaluates performance and correctness. The graph preserves the documented compilation and optional oracle branches, plus stream-processing support. Several pipeline links reflect the README’s documented architecture; source excerpts were partial, so uncertain internal call wiring is omitted.
Main entry points: Coordinator Workload coordinators · BenchmarkBuilder.py Benchmark builder · MonitorManager.py Monitor manager · OracleManager.py Oracle manager
Components 21
Experiment entry
- CLI
Infrastructure/Frontend/CLI/cli.py - YAML parser
Infrastructure/Frontend/Parser/YamlParser.py
Orchestration
- Benchmark builder
Infrastructure/BenchmarkBuilder/BenchmarkBuilder.py - Workload coordinators
Infrastructure/BenchmarkBuilder/Coordinator - Format conversion
Infrastructure/AutoConversion - Input generators
Infrastructure/Builders/ProcessorBuilder/DataGenerators - Policy generators
Infrastructure/Builders/ProcessorBuilder/PolicyGenerators - Case studies
Infrastructure/Builders/ProcessorBuilder/CaseStudiesGenerators
Monitoring runtime
- Monitor manager
Infrastructure/Monitors/MonitorManager.py - Monitor wrappers
Archive/Implementations/Monitors - Tool image manager
Infrastructure/Builders/ToolBuilder/ToolManager.py - Processor image manager
Infrastructure/Builders/ProcessorBuilder/ImageManager.py - Stream processors
Infrastructure/Builders/ProcessorBuilder/StreamProcessors
Evaluation
- Oracle manager
Infrastructure/Oracles/OracleManager.py - Oracle implementations
Archive/Implementations/Oracles - Verdict structures
Infrastructure/DataTypes/Verification/OutputStructures - Analysis and aggregation
Infrastructure/Analysis - Run provenance
Infrastructure/Provenance/Provenance.py
Other components
- Experiment author
- Docker
- Experiment results
Connections 24
- Experiment author → CLI: invokes
- CLI → YAML parser: parses config
- YAML parser → Benchmark builder: configures run
- Benchmark builder → Workload coordinators: dispatches workload
- Workload coordinators → Input generators: requests traces
- Workload coordinators → Policy generators: requests policies
- Workload coordinators → Case studies: loads workloads
- Workload coordinators → Format conversion: converts inputs
- Benchmark builder → Monitor manager: constructs monitors
- Monitor manager → Monitor wrappers: discovers wrappers
- Monitor manager → Tool image manager: resolves images
- Tool image manager → Docker: builds images
- Workload coordinators → Processor image manager: runs processors
- Processor image manager → Docker: runs containers
- Workload coordinators → Stream processors: dispatches streams
- Benchmark builder → Oracle manager: constructs oracles
- Oracle manager → Oracle implementations: discovers wrappers
- Oracle manager → Monitor manager: gets oracle monitor
- Workload coordinators → Verdict structures: normalizes verdicts
- Workload coordinators → Analysis and aggregation: evaluates run
- Analysis and aggregation → Oracle manager: checks correctness
- Analysis and aggregation → Experiment results: writes analysis
- Workload coordinators → Run provenance: records inputs
- Run provenance → Experiment results: stores manifest