def QueryMetrics(args: 'argparse.Namespace') -> None: """Query Azure Monitoring metrics for a resource. Args: args (argparse.Namespace): Arguments from ArgumentParser. Raises: RuntimeError: If from_date or to_date could not be parsed. """ az_account = account.AZAccount(args.default_resource_group_name) az_monitoring = monitoring.AZMonitoring(az_account) from_date, to_date = args.from_date, args.to_date if from_date and to_date: try: from_date = datetime.strptime(from_date, '%Y-%m-%dT%H:%M:%SZ') to_date = datetime.strptime(to_date, '%Y-%m-%dT%H:%M:%SZ') except ValueError as exception: raise RuntimeError( 'Cannot parse date: {0!s}'.format(exception)) from exception metrics = az_monitoring.GetMetricsForResource( args.resource_id, metrics=args.metrics, from_date=from_date, to_date=to_date, interval=args.interval, aggregation=args.aggregation or 'Total', qfilter=args.qfilter) for metric in metrics: logger.info('Metric: {0:s}'.format(metric)) for timestamp, value in metrics[metric].items(): logger.info(' Timestamp: {0:s}, value: {1:s}'.format(timestamp, value))
def monitoring(self) -> monitoring_module.AZMonitoring: """Get an Azure monitoring object for the account. Returns: AZMonitoring: An Azure monitoring object. """ if self._monitoring: return self._monitoring self._monitoring = monitoring_module.AZMonitoring(self) return self._monitoring
def ListMetrics(args: 'argparse.Namespace') -> None: """List Azure Monitoring metrics for a resource. Args: args (argparse.Namespace): Arguments from ArgumentParser. """ az_account = account.AZAccount(args.default_resource_group_name) az_monitoring = monitoring.AZMonitoring(az_account) metrics = az_monitoring.ListAvailableMetricsForResource(args.resource_id) for metric in metrics: logger.info('Available metric: {0:s}'.format(metric))
'fake-region', ['fake-zone']) FAKE_DISK = compute.AZComputeDisk(FAKE_ACCOUNT, RESOURCE_ID_PREFIX + 'fake-disk-name', 'fake-disk-name', 'fake-region', ['fake-zone']) FAKE_BOOT_DISK = compute.AZComputeDisk( FAKE_ACCOUNT, RESOURCE_ID_PREFIX + 'fake-boot-disk-name', 'fake-boot-disk-name', 'fake-region', ['fake-zone']) FAKE_SNAPSHOT = compute.AZComputeSnapshot( FAKE_ACCOUNT, RESOURCE_ID_PREFIX + 'fake_snapshot_name', 'fake_snapshot_name', 'fake-region', FAKE_DISK) FAKE_MONITORING = monitoring.AZMonitoring(FAKE_ACCOUNT) MOCK_INSTANCE = mock.Mock(id=RESOURCE_ID_PREFIX + 'fake-vm-name', location='fake-region', zones=['fake-zone']) # Name attributes for Mock objects have to be added in a separate statement, # otherwise it becomes itself a mock object. MOCK_INSTANCE.name = 'fake-vm-name' MOCK_REQUEST_INSTANCES = [[MOCK_INSTANCE]] MOCK_LIST_INSTANCES = {'fake-vm-name': FAKE_INSTANCE} MOCK_DISK = mock.Mock(id=RESOURCE_ID_PREFIX + 'fake-disk-name', location='fake-region', zones=['fake-zone']) MOCK_DISK.name = 'fake-disk-name'