Structured Events
structured_events.py
Typed event dataclasses for the autoslo structured logging system.
Every structured log emission constructs a :class:BaseStructuredEvent
(or :class:QueryRelatedEvent for query-scoped events), passing in an
:class:EventType enum member. BaseStructuredEvent.to_dict()
serialises the event to a flat dict that the
:class:~autoslo.utils.structured_log.StructuredLogHandler can persist to
Parquet.
REQUIRED_DETAILS = {EventType.RUN_START: ['workload_name', 'num_queries', 'routing_policy', 'closed_loop'], EventType.RUN_FINISH: ['workload_name'], EventType.COMPLETION: ['success'], EventType.LATENCY_UPDATE: ['old_latency_s', 'latency_s'], EventType.ROUTING: ['slo_violation', 'cost'], EventType.SPIN_UP_DECISION: ['rpu', 'reason', 'autoscaling_policy'], EventType.SPIN_UP_REQUESTED: ['reason'], EventType.SPIN_UP_BLOCKED: ['reason', 'max', 'used', 'reserved', 'available'], EventType.TEAR_DOWN_DECISION: ['reason'], EventType.TEAR_DOWN_REQUESTED: ['reason', 'force'], EventType.SCHEDULED_SPINUP_EXECUTED: ['scheduled_rel_time_s', 'rpu'], EventType.RPU_COUNTERFACTUAL: ['slo_violation', 'cost'], EventType.RPU_SELECTION: ['slo_violation', 'cost'], EventType.QUERY_EXECUTION_FINISH: ['latency_s'], EventType.FORCED_DECISION_POINT: ['force_one_decision_after_query_count'], EventType.SIM_QUERY_ARRIVAL: ['copy_idx', 'phase'], EventType.SIM_QUERY_COMPLETION: ['latency_s', 'started_after_ready']}
module-attribute
EventType
Bases: str, Enum
Enumeration of all structured event types.
Source code in src/autoslo/filesystem/structured_events.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | |
RUN_START = 'run_start'
class-attribute
instance-attribute
RUN_FINISH = 'run_finish'
class-attribute
instance-attribute
ARRIVAL = 'arrival'
class-attribute
instance-attribute
QUERY_EXECUTION_START = 'query_execution_start'
class-attribute
instance-attribute
QUERY_EXECUTION_FINISH = 'query_execution_finish'
class-attribute
instance-attribute
COMPLETION = 'completion'
class-attribute
instance-attribute
QUERY_ROUTED = 'query_routed'
class-attribute
instance-attribute
LATENCY_UPDATE = 'latency_update'
class-attribute
instance-attribute
ROUTING_SCORE = 'routing_score'
class-attribute
instance-attribute
ROUTING = 'routing'
class-attribute
instance-attribute
SPIN_UP_DECISION = 'spin_up_decision'
class-attribute
instance-attribute
SPIN_UP_REQUESTED = 'spin_up_requested'
class-attribute
instance-attribute
SPIN_UP_STARTED = 'spin_up_started'
class-attribute
instance-attribute
SPIN_UP_BLOCKED = 'spin_up_blocked'
class-attribute
instance-attribute
CLUSTER_READY = 'cluster_ready'
class-attribute
instance-attribute
TEAR_DOWN_DECISION = 'tear_down_decision'
class-attribute
instance-attribute
TEAR_DOWN_REQUESTED = 'tear_down_requested'
class-attribute
instance-attribute
TEAR_DOWN_BLOCKED = 'tear_down_blocked'
class-attribute
instance-attribute
TEAR_DOWN_STARTED = 'tear_down_started'
class-attribute
instance-attribute
STATS_COLLECTED = 'stats_collected'
class-attribute
instance-attribute
CLUSTER_REMOVED = 'cluster_removed'
class-attribute
instance-attribute
SCHEDULED_SPINUP_EXECUTED = 'scheduled_spinup_executed'
class-attribute
instance-attribute
RPU_COUNTERFACTUAL = 'rpu_counterfactual'
class-attribute
instance-attribute
RPU_SELECTION = 'rpu_selection'
class-attribute
instance-attribute
FORCED_DECISION_POINT = 'forced_decision_point'
class-attribute
instance-attribute
SIM_QUERY_ARRIVAL = 'sim_arrival'
class-attribute
instance-attribute
SIM_QUERY_COMPLETION = 'sim_completion'
class-attribute
instance-attribute
query_lifecycle_types()
classmethod
Events that track a query from arrival to completion.
Source code in src/autoslo/filesystem/structured_events.py
routing_types()
classmethod
Events emitted during or about query routing.
cluster_lifecycle_types()
classmethod
Events that track cluster spin-up, readiness, and tear-down.
Source code in src/autoslo/filesystem/structured_events.py
autoscaler_types()
classmethod
Events related to autoscaler RPU decisions.
Source code in src/autoslo/filesystem/structured_events.py
BaseStructuredEvent
dataclass
Structured log event.
Use this class directly for events that are not query-related.
For query-related events, use :class:QueryRelatedEvent.
Source code in src/autoslo/filesystem/structured_events.py
rel_time_s
instance-attribute
event_type
instance-attribute
source
instance-attribute
cluster_name = ''
class-attribute
instance-attribute
details = field(default_factory=dict)
class-attribute
instance-attribute
wall_clock_s = field(init=False, default_factory=wall_clock_utc)
class-attribute
instance-attribute
__init__(rel_time_s, event_type, source, cluster_name='', details=dict())
__post_init__()
Source code in src/autoslo/filesystem/structured_events.py
to_dict()
Source code in src/autoslo/filesystem/structured_events.py
QueryRelatedEvent
dataclass
Bases: BaseStructuredEvent
Structured log event related to a specific query.