def test_time(self, metrics_patch, datetime_patch): datetime_patch.side_effect = [ self.start_time, self.middle_time, self.middle_time, self.middle_time, self.end_time ] test_key = "test_key" with base.CounterWithTimer(test_key) as timer: self.assertTrue(isinstance(timer._start_time, datetime)) metrics_patch.time.assert_not_called() timer.send_time() metrics_patch.time.assert_called_with( "%s%s" % (test_key, METRICS_TIMER_SUFFIX), (self.end_time - self.middle_time).total_seconds()) second_test_key = "lakshmi_has_a_nose" timer.send_time(second_test_key) metrics_patch.time.assert_called_with( second_test_key, (self.end_time - self.middle_time).total_seconds()) time_delta = timer.get_time_delta() self.assertEquals(time_delta.total_seconds(), (self.end_time - self.middle_time).total_seconds()) metrics_patch.inc_counter.assert_called_with( "%s%s" % (test_key, METRICS_COUNTER_SUFFIX)) metrics_patch.dec_counter.assert_not_called() metrics_patch.dec_counter.assert_called_with( "%s%s" % (test_key, METRICS_COUNTER_SUFFIX)) metrics_patch.time.assert_called_with( "%s%s" % (test_key, METRICS_TIMER_SUFFIX), (self.end_time - self.start_time).total_seconds())
def handle_action_execution_with_instrumentation(ac_ex_db): # Ignore non orquesta workflow executions if not wf_svc.is_action_execution_under_workflow_context(ac_ex_db): return with metrics.CounterWithTimer(key='orquesta.action.executions'): return self.handle_action_execution(ac_ex_db=ac_ex_db)
def test_time(self, metrics_patch, datetime_patch): datetime_patch.side_effect = [ self.start_time, self.middle_time, self.middle_time, self.middle_time, self.end_time, ] test_key = "test_key" with base.CounterWithTimer(test_key) as timer: self.assertIsInstance(timer._start_time, datetime) metrics_patch.time.assert_not_called() timer.send_time() metrics_patch.time.assert_called_with( test_key, (self.end_time - self.middle_time).total_seconds()) second_test_key = "lakshmi_has_a_nose" timer.send_time(second_test_key) metrics_patch.time.assert_called_with( second_test_key, (self.end_time - self.middle_time).total_seconds()) time_delta = timer.get_time_delta() self.assertEqual( time_delta.total_seconds(), (self.end_time - self.middle_time).total_seconds(), ) metrics_patch.inc_counter.assert_called_with(test_key) metrics_patch.dec_counter.assert_not_called() metrics_patch.time.assert_called_with( test_key, (self.end_time - self.start_time).total_seconds())
def handle_workflow_execution_with_instrumentation(wf_ex_db): with metrics.CounterWithTimer(key='orquesta.workflow.executions'): return self.handle_workflow_execution(wf_ex_db=wf_ex_db)