Exemplo n.º 1
0
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))
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
    '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'