115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/easyop/plugins/recording.rb', line 115
def _easyop_run(ctx, raise_on_failure:)
return super unless self.class._recording_enabled?
return super unless (model = self.class._recording_model)
return super unless self.class.name
reference_id = SecureRandom.uuid
root_reference_id = ctx[:__recording_root_reference_id] ||= SecureRandom.uuid
parent_operation_name = ctx[:__recording_parent_operation_name]
parent_reference_id = ctx[:__recording_parent_reference_id]
prev_parent_name = parent_operation_name
prev_parent_id = parent_reference_id
ctx[:__recording_parent_operation_name] = self.class.name
ctx[:__recording_parent_reference_id] = reference_id
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
super
ensure
if start
ctx[:__recording_parent_operation_name] = prev_parent_name
ctx[:__recording_parent_reference_id] = prev_parent_id
ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - start) * 1000).round(2)
_recording_persist!(ctx, model, ms,
root_reference_id: root_reference_id,
reference_id: reference_id,
parent_operation_name: parent_operation_name,
parent_reference_id: parent_reference_id)
end
end
|