csle_collector.docker_stats_manager package
Subpackages
- csle_collector.docker_stats_manager.dao package
- Submodules
- csle_collector.docker_stats_manager.dao.docker_stats module
DockerStats
DockerStats.compute_averages()
DockerStats.copy()
DockerStats.from_dict()
DockerStats.from_json_file()
DockerStats.from_kafka_record()
DockerStats.get_deltas()
DockerStats.get_values()
DockerStats.num_attributes()
DockerStats.schema()
DockerStats.to_dict()
DockerStats.to_kafka_record()
DockerStats.update_with_kafka_record()
DockerStats.update_with_kafka_record_ip()
- Module contents
- csle_collector.docker_stats_manager.threads package
Submodules
csle_collector.docker_stats_manager.docker_stats_manager module
- class csle_collector.docker_stats_manager.docker_stats_manager.DockerStatsManagerServicer[source]
Bases:
DockerStatsManagerServicer
gRPC server for managing a docker stats monitor server. Allows to start/stop the docker stats monitor remotely and also to query the state of the server.
- getDockerStatsMonitorStatus(request: GetDockerStatsMonitorStatusMsg, context: ServicerContext) DockerStatsMonitorDTO [source]
Gets the state of the docker stats monitors
- Parameters
request – the gRPC request
context – the gRPC context
- Returns
a clients DTO with the state of the docker stats manager
- get_docker_stats_monitor_threads() List[DockerStatsThread] [source]
Gets the list of Docker stats monitor threads
- Returns
the list of Docker stats monitor threads
- csle_collector.docker_stats_manager.docker_stats_manager.serve(port: int = 50046, log_dir: str = '/var/log/csle/', max_workers: int = 10, log_file_name: str = 'docker_stats_manager.log') None [source]
Starts the gRPC server for managing docker stats collection
- Parameters
port – the port that the server will listen to
log_dir – the directory to write the log file
log_file_name – the file name of the log
max_workers – the maximum number of parallel gRPC workers
- Returns
None
csle_collector.docker_stats_manager.docker_stats_manager_pb2 module
Generated protocol buffer code.
csle_collector.docker_stats_manager.docker_stats_manager_pb2_grpc module
Client and server classes corresponding to protobuf-defined services.
- class csle_collector.docker_stats_manager.docker_stats_manager_pb2_grpc.DockerStatsManager[source]
Bases:
object
Interface exported by the server
- static getDockerStatsMonitorStatus(request, target, options=(), channel_credentials=None, call_credentials=None, insecure=False, compression=None, wait_for_ready=None, timeout=None, metadata=None)[source]
- class csle_collector.docker_stats_manager.docker_stats_manager_pb2_grpc.DockerStatsManagerServicer[source]
Bases:
object
Interface exported by the server
- getDockerStatsMonitorStatus(request, context)[source]
Missing associated documentation comment in .proto file.
csle_collector.docker_stats_manager.docker_stats_util module
- class csle_collector.docker_stats_manager.docker_stats_util.DockerStatsUtil[source]
Bases:
object
Utility class for managing docker container statistics
- static calculate_blkio_mb(stats_dict: Dict[str, Any]) Tuple[float, float] [source]
- Parameters
stats_dict – the stats dict from the Docker API
- Returns
(read_mb, wrote_mb)
- static calculate_cpu_percent(stats_dict: Dict[str, Any]) float [source]
Calculates the CPU utilization percentage
- Parameters
stats_dict – the stats dict from the Docker API
- Returns
the CPU percentage
- static calculate_cpu_percent2(stats_dict: Dict[str, Any], previous_cpu: float, previous_system: float) Tuple[Union[float, Any], float, float] [source]
Calculates the CPU utilization percentage when precpu is broken in later versions of Docker
- Parameters
stats_dict – the stats dict from the Docker API
previous_cpu – previous cpu percentage
previous_system – previous system percentage
- Returns
the CPU percentage
- static calculate_network_mb(stats_dict: Dict[str, Any]) Tuple[float, float] [source]
- Parameters
stats_dict – the stats dict from the Docker API
- Returns
(received_mb, transceived_mb)
- static docker_stats_monitor_dto_empty() DockerStatsMonitorDTO [source]
- Returns
an empty DockerStatsMonitorDTO
- static docker_stats_monitor_dto_from_dict(d: Dict[str, Any]) DockerStatsMonitorDTO [source]
Converts a dict representation of a DockerStatsMonitorDTO to a DTO
- Parameters
d – the dict to convert
- Returns
the converted DTO
- static docker_stats_monitor_dto_to_dict(docker_stats_monitor_dto: DockerStatsMonitorDTO) Dict[str, Any] [source]
Converts a docker_stats_monitor_dto to a dict
- Parameters
docker_stats_monitor_dto – the dto to convert
- Returns
a dict representation of the DTO
- static graceful_chain_get(stats_dict: Dict[str, Any], *args, default=None)[source]
Wrapper to handle errors
- Parameters
stats_dict – stats dict to handle
args – extra arguments
default – default return in case of errors
- Returns
default or parsed value
- static parse_stats(stats_dict: Dict[str, Any], container: str) DockerStats [source]
Parses a stats dict into a DockerStats object
- Parameters
stats_dict – the dict to parse
container – the container that the stats concerns
- Returns
the parsed DockerStats object
csle_collector.docker_stats_manager.query_docker_stats_manager module
- csle_collector.docker_stats_manager.query_docker_stats_manager.get_docker_stats_manager_status(stub: DockerStatsManagerStub, timeout=60) DockerStatsMonitorDTO [source]
Queries the docker stats manager for the status
- Parameters
stub – the stub to send the remote gRPC to the server
timeout – the GRPC timeout (seconds)
- Returns
a DockerStatsManagerDTO describing the status of the server
- csle_collector.docker_stats_manager.query_docker_stats_manager.start_docker_stats_monitor(stub: DockerStatsManagerStub, emulation: str, execution_first_ip_octet: int, kafka_ip: str, stats_queue_maxsize: int, time_step_len_seconds: int, kafka_port: int, containers: List[ContainerIp], timeout=30000) DockerStatsMonitorDTO [source]
Sends a request to the docker stats manager to start a new monitor thread
- Parameters
stub – the stub to send the remote gRPC to the server
emulation – the name of the emulation
execution_first_ip_octet – the first octet of the ip of the execution
kafka_ip – the ip of the Kafka server to push stats to
stats_queue_maxsize – the maximum size of the queue
:param the length of the period between pushing data to Kafka :param kafka_port: the port of the Kafka server :param containers: list of names and ips of containers to monitor :param timeout: the GRPC timeout (seconds) :return: a DockerStatsManagerDTO describing the status of the server
- csle_collector.docker_stats_manager.query_docker_stats_manager.stop_docker_stats_monitor(stub: DockerStatsManagerStub, emulation: str, execution_first_ip_octet: int, timeout=30000) DockerStatsMonitorDTO [source]
Sends a request to the docker stats manager to start a new monitor thread
- Parameters
stub – the stub to send the remote gRPC to the server
emulation – the emulation for which the monitor should be stopped
execution_first_ip_octet – the first octet of the ip of the execution
timeout – the GRPC timeout (seconds)
- Returns
a DockerStatsManagerDTO describing the status of the server