def test_get_network_metrics(self, mock1, mock2, mock3, mock4, mock5, mock6): # noqa: E501 # pylint: disable=protected-access stats = _StatsbeatMetrics(_OPTIONS) mock1.return_value = 5 mock2.return_value = 5 mock3.return_value = 5 mock4.return_value = 5 mock5.return_value = 5 mock6.return_value = 5 metrics = stats._get_network_metrics() self.assertEqual(len(metrics), 6) self.assertEqual(metrics[0]._time_series[0].points[0].value.value, 5) self.assertEqual(metrics[1]._time_series[0].points[0].value.value, 5) self.assertEqual(metrics[2]._time_series[0].points[0].value.value, 5) self.assertEqual(metrics[3]._time_series[0].points[0].value.value, 5) self.assertEqual(metrics[4]._time_series[0].points[0].value.value, 5) self.assertEqual(metrics[5]._time_series[0].points[0].value.value, 5) for metric in metrics: properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 9) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, "sdk") self.assertEqual(properties[2].value, "ikey") self.assertEqual(properties[3].value, platform.python_version()) self.assertEqual(properties[4].value, platform.system()) self.assertEqual(properties[5].value, "python") self.assertEqual(properties[6].value, ext_version) self.assertEqual(properties[7].value, _ENDPOINT_TYPES[0]) short_host = _shorten_host(_OPTIONS.endpoint) self.assertEqual(properties[8].value, short_host)
def test_get_azure_compute_metadata_not_vm_timeout(self): with mock.patch('requests.get', throw(requests.Timeout)): stats = _StatsbeatMetrics(_OPTIONS) vm_result = stats._get_azure_compute_metadata() self.assertFalse(vm_result) self.assertEqual(len(stats._vm_data), 0) self.assertFalse(stats._vm_retry)
def test_get_azure_compute_metadata_vm_retry(self): with mock.patch('requests.get', throw(requests.exceptions.RequestException)): stats = _StatsbeatMetrics(_OPTIONS) vm_result = stats._get_azure_compute_metadata() self.assertFalse(vm_result) self.assertEqual(len(stats._vm_data), 0) self.assertTrue(stats._vm_retry)
def test_get_instrumentation_metrics_zero(self): # pylint: disable=protected-access original_integrations = integrations._INTEGRATIONS_BIT_MASK integrations._INTEGRATIONS_BIT_MASK = 0 stats = _StatsbeatMetrics(_OPTIONS) metric = stats._get_instrumentation_metric() self.assertIsNone(metric) integrations._INTEGRATIONS_BIT_MASK = original_integrations
def test_statsbeat_metric_init(self, attach_mock, network_mock, feature_mock): # noqa: E501 # pylint: disable=protected-access metric = _StatsbeatMetrics(_OPTIONS) self.assertEqual(len(metric._vm_data), 0) self.assertTrue(metric._vm_retry) self.assertEqual(metric._instrumentation_key, "ikey") self.assertEqual(metric._feature, 1) self.assertTrue(isinstance( metric._attach_metric, LongGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_success_count_value], DerivedLongGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_failure_count_value], DerivedLongGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_average_duration_value], DerivedDoubleGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_retry_count_value], DerivedLongGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_throttle_count_value], DerivedLongGauge, )) self.assertTrue( isinstance( metric._network_metrics[_get_exception_count_value], DerivedLongGauge, )) self.assertTrue(isinstance( metric._feature_metric, LongGauge, )) self.assertTrue(isinstance( metric._instrumentation_metric, LongGauge, )) attach_mock.assert_called_once() network_mock.assert_called() self.assertEqual(feature_mock.call_count, 2) attach_mock.assert_called_once() network_mock.assert_called() self.assertEqual(network_mock.call_count, 6)
def test_get_feature_metric_zero(self): # pylint: disable=protected-access options = Options( instrumentation_key="ikey", enable_local_storage=False, credential=None, ) stats = _StatsbeatMetrics(options) metric = stats._get_feature_metric() self.assertIsNone(metric)
def test_get_attach_metric_unknown(self): stats = _StatsbeatMetrics(_OPTIONS) stats._vm_retry = False metric = stats._get_attach_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 8) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, _RP_NAMES[3]) self.assertEqual(properties[2].value, "sdk") self.assertEqual(properties[3].value, "ikey") self.assertEqual(properties[4].value, platform.python_version()) self.assertEqual(properties[5].value, platform.system()) self.assertEqual(properties[6].value, "python") self.assertEqual(properties[7].value, ext_version) # noqa: E501
def test_get_attach_metric_functions(self): # pylint: disable=protected-access stats = _StatsbeatMetrics(_OPTIONS) metric = stats._get_attach_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 8) self.assertEqual(properties[0].value, _RP_NAMES[1]) self.assertEqual(properties[1].value, "host_name") self.assertEqual(properties[2].value, "sdk") self.assertEqual(properties[3].value, "ikey") self.assertEqual(properties[4].value, platform.python_version()) self.assertEqual(properties[5].value, platform.system()) self.assertEqual(properties[6].value, "python") self.assertEqual(properties[7].value, ext_version) # noqa: E501
def test_get_feature_metric(self): stats = _StatsbeatMetrics(_OPTIONS) metric = stats._get_feature_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 9) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, "sdk") self.assertEqual(properties[2].value, "ikey") self.assertEqual(properties[3].value, platform.python_version()) self.assertEqual(properties[4].value, _FEATURE_TYPES.FEATURE) self.assertEqual(properties[5].value, 1) self.assertEqual(properties[6].value, platform.system()) self.assertEqual(properties[7].value, "python") self.assertEqual(properties[8].value, ext_version) # noqa: E501
def test_get_attach_metric_vm_no_os(self): stats = _StatsbeatMetrics(_OPTIONS) _vm_data = {} _vm_data["vmId"] = "123" _vm_data["subscriptionId"] = "sub123" _vm_data["osType"] = None stats._vm_data = _vm_data self._vm_retry = True metadata_mock = mock.Mock() metadata_mock.return_value = True stats._get_azure_compute_metadata = metadata_mock metric = stats._get_attach_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 8) self.assertEqual(properties[5].value, platform.system())
def test_get_azure_compute_metadata(self): with mock.patch('requests.get') as get: get.return_value = MockResponse( 200, json.dumps({ 'vmId': 5, 'subscriptionId': 3, 'osType': 'Linux' })) stats = _StatsbeatMetrics(_OPTIONS) vm_result = stats._get_azure_compute_metadata() self.assertTrue(vm_result) self.assertEqual(stats._vm_data["vmId"], 5) self.assertEqual(stats._vm_data["subscriptionId"], 3) self.assertEqual(stats._vm_data["osType"], "Linux") self.assertTrue(stats._vm_retry)
def test_get_instrumentation_metric(self): original_integrations = integrations._INTEGRATIONS_BIT_MASK integrations._INTEGRATIONS_BIT_MASK = 1024 stats = _StatsbeatMetrics(_OPTIONS) metric = stats._get_instrumentation_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 9) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, "sdk") self.assertEqual(properties[2].value, "ikey") self.assertEqual(properties[3].value, platform.python_version()) self.assertEqual(properties[4].value, _FEATURE_TYPES.INSTRUMENTATION) self.assertEqual(properties[5].value, 1024) self.assertEqual(properties[6].value, platform.system()) self.assertEqual(properties[7].value, "python") self.assertEqual(properties[8].value, ext_version) # noqa: E501 integrations._INTEGRATIONS_BIT_MASK = original_integrations
def test_get_network_metrics_zero(self, suc_mock): # pylint: disable=protected-access stats = _StatsbeatMetrics(_OPTIONS) suc_mock.return_value = 0 metrics = stats._get_network_metrics() self.assertEqual(len(metrics), 0) for metric in metrics: properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 7) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, "sdk") self.assertEqual(properties[2].value, "ikey") self.assertEqual(properties[3].value, platform.python_version()) self.assertEqual(properties[4].value, platform.system()) self.assertEqual(properties[5].value, "python") self.assertEqual( properties[6].value, ext_version)
def test_get_feature_metric_with_aad(self): aad_options = Options( instrumentation_key="ikey", enable_local_storage=True, endpoint="test-endpoint", credential=MockCredential(), ) stats = _StatsbeatMetrics(aad_options) metric = stats._get_feature_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 9) self.assertEqual(properties[0].value, _RP_NAMES[3]) self.assertEqual(properties[1].value, "sdk") self.assertEqual(properties[2].value, "ikey") self.assertEqual(properties[3].value, platform.python_version()) self.assertEqual(properties[4].value, _FEATURE_TYPES.FEATURE) self.assertEqual(properties[5].value, 3) self.assertEqual(properties[6].value, platform.system()) self.assertEqual(properties[7].value, "python") self.assertEqual(properties[8].value, ext_version) # noqa: E501
def test_get_attach_metric_vm(self): stats = _StatsbeatMetrics(_OPTIONS) _vm_data = {} _vm_data["vmId"] = "123" _vm_data["subscriptionId"] = "sub123" _vm_data["osType"] = "linux" stats._vm_data = _vm_data self._vm_retry = True metadata_mock = mock.Mock() metadata_mock.return_value = True stats._get_azure_compute_metadata = metadata_mock metric = stats._get_attach_metric() properties = metric._time_series[0]._label_values self.assertEqual(len(properties), 8) self.assertEqual(properties[0].value, _RP_NAMES[2]) self.assertEqual(properties[1].value, "123/sub123") self.assertEqual(properties[2].value, "sdk") self.assertEqual(properties[3].value, "ikey") self.assertEqual(properties[4].value, platform.python_version()) self.assertEqual(properties[5].value, "linux") self.assertEqual(properties[6].value, "python") self.assertEqual(properties[7].value, ext_version) # noqa: E501
def __init__(self, options): self._statsbeat = _StatsbeatMetrics(options)
def test_get_network_metrics_zero(self, suc_mock): # pylint: disable=protected-access stats = _StatsbeatMetrics(_OPTIONS) suc_mock.return_value = 0 metrics = stats._get_network_metrics() self.assertEqual(len(metrics), 0)