enh(mode): Azure getmetrics dimension filter (#2031)
This commit is contained in:
parent
db9abbae05
commit
2deab981ff
|
@ -295,6 +295,7 @@ sub azure_get_metrics_set_url {
|
|||
"/" . $options{resource} . "/providers/microsoft.insights/metrics?api-version=" . $self->{api_version} .
|
||||
"&metricnames=" . $encoded_metrics . "&aggregation=" . $encoded_aggregations .
|
||||
"×pan=" . $encoded_timespan . "&interval=" . $options{interval};
|
||||
$url .= "&\$filter=" . $options{dimension} if defined($options{dimension});
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
|
|
@ -173,6 +173,7 @@ sub azure_get_metrics_set_cmd {
|
|||
"--interval $options{interval} --aggregation '" . join('\' \'', @{$options{aggregations}}) . "' --only-show-errors --output json --resource '$options{resource}' " .
|
||||
"--resource-group '$options{resource_group}' --resource-type '$options{resource_type}' --resource-namespace '$options{resource_namespace}'";
|
||||
$cmd_options .= " --subscription '$self->{subscription}'" if (defined($self->{subscription}) && $self->{subscription} ne '');
|
||||
$cmd_options .= " --filter '$options{dimension}'" if defined($options{dimension});
|
||||
|
||||
return $cmd_options;
|
||||
}
|
||||
|
|
|
@ -99,6 +99,7 @@ sub new {
|
|||
"resource-type:s" => { name => 'resource_type' },
|
||||
"resource-namespace:s" => { name => 'resource_namespace' },
|
||||
"metric:s@" => { name => 'metric' },
|
||||
"filter-dimension:s" => { name => 'filter_dimension'}
|
||||
});
|
||||
|
||||
return $self;
|
||||
|
@ -146,20 +147,25 @@ sub check_options {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (defined($self->{option_results}->{filter_dimension}) && $self->{option_results}->{filter_dimension} ne '') {
|
||||
$self->{az_metrics_dimension} = $self->{option_results}->{filter_dimension};
|
||||
}
|
||||
}
|
||||
|
||||
sub manage_selection {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
my ($results, $raw_results) = $options{custom}->azure_get_metrics(
|
||||
resource => $self->{az_resource},
|
||||
resource_group => $self->{az_resource_group},
|
||||
resource_type => $self->{az_resource_type},
|
||||
resource_namespace => $self->{az_resource_namespace},
|
||||
metrics => $self->{az_metrics},
|
||||
aggregations => $self->{az_aggregation},
|
||||
timeframe => $self->{az_timeframe},
|
||||
interval => $self->{az_interval},
|
||||
resource => $self->{az_resource},
|
||||
resource_group => $self->{az_resource_group},
|
||||
resource_type => $self->{az_resource_type},
|
||||
resource_namespace => $self->{az_resource_namespace},
|
||||
metrics => $self->{az_metrics},
|
||||
aggregations => $self->{az_aggregation},
|
||||
timeframe => $self->{az_timeframe},
|
||||
interval => $self->{az_interval},
|
||||
dimension => $self->{az_metrics_dimension}
|
||||
);
|
||||
|
||||
$self->{metrics} = {};
|
||||
|
@ -177,6 +183,10 @@ sub manage_selection {
|
|||
};
|
||||
}
|
||||
}
|
||||
if (scalar(keys %{$self->{metrics}}) <= 0) {
|
||||
$self->{output}->add_option_msg(short_msg => "No metric found (Are the filters properly set?)");
|
||||
$self->{output}->option_exit();
|
||||
}
|
||||
|
||||
$self->{output}->output_add(long_msg => sprintf("Raw data:\n%s", Dumper($raw_results)), debug => 1);
|
||||
}
|
||||
|
@ -220,6 +230,12 @@ Set resource type (Required if resource's name is used).
|
|||
|
||||
Set monitor metrics (Required) (Can be multiple).
|
||||
|
||||
=item B<--filter-dimension>
|
||||
|
||||
Specify the metric dimension (required for some specific metrics)
|
||||
Syntax example:
|
||||
--filter-dimension="$metricname eq '$metricvalue'"
|
||||
|
||||
=item B<--warning-metric>
|
||||
|
||||
Threshold warning.
|
||||
|
|
Loading…
Reference in New Issue