Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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
Beispiel #5
0
 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)
Beispiel #6
0
 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)
Beispiel #7
0
 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
Beispiel #8
0
 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
Beispiel #9
0
 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
Beispiel #10
0
 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())
Beispiel #11
0
 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)
Beispiel #12
0
 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
Beispiel #13
0
 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)
Beispiel #14
0
 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
Beispiel #15
0
 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
Beispiel #16
0
 def __init__(self, options):
     self._statsbeat = _StatsbeatMetrics(options)
Beispiel #17
0
 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)