Server IP : 66.29.132.122 / Your IP : 3.135.206.240 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/proc/thread-self/root/proc/thread-self/root/proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/lvestats/plugins/generic/burster/storage/ |
Upload File : |
# coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2023 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import typing import itertools from typing import Collection, Iterator from lvestats.orm import BurstingEventType from .base import InBurstingEventRow, Timestamp from ..common import LveId def lves_historical_events_iter( lves_ids: Collection[LveId], events_ts_and_type_iter: Iterator[tuple[Timestamp, BurstingEventType]], ): for ts, event_type in events_ts_and_type_iter: for lve_id in lves_ids: yield InBurstingEventRow( lve_id=lve_id, timestamp=ts, event_type=event_type, ) def lve_historical_events_ts_and_type_iter( start_stop_pairs_iter: Iterator[tuple[Timestamp, Timestamp]], ) -> Iterator[tuple[Timestamp, BurstingEventType]]: timestemps_iter = itertools.chain.from_iterable(start_stop_pairs_iter) event_types_iter = itertools.cycle([BurstingEventType.STARTED, BurstingEventType.STOPPED]) for timestamp, event_type in zip(timestemps_iter, event_types_iter): yield timestamp, event_type def lve_historical_intervals_iter( overusing_intervals: int, interval_duration: int, cooldown: int = 1, ) -> Iterator[tuple[Timestamp, Timestamp]]: assert overusing_intervals >= 0 assert interval_duration >= 1 assert cooldown >= 1 now = Timestamp(0) for _ in range(overusing_intervals): started_at, stopped_at = now, now + interval_duration yield typing.cast(tuple[Timestamp, Timestamp], (started_at, stopped_at)) now = typing.cast(Timestamp, stopped_at + cooldown)