com.azure.ai.metricsadvisor.administration.models.AnomalyAlertConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-ai-metricsadvisor Show documentation
Show all versions of azure-ai-metricsadvisor Show documentation
This package contains the Microsoft Azure Cognitive Services Metrics Advisor SDK.
The newest version!
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.ai.metricsadvisor.administration.models;
import com.azure.ai.metricsadvisor.implementation.util.AnomalyAlertConfigurationHelper;
import com.azure.core.annotation.Fluent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Defines anomaly alerting configuration.
*/
@Fluent
public final class AnomalyAlertConfiguration {
private String id;
private final String name;
private String description;
private MetricAlertConfigurationsOperator crossMetricsOperator;
private List metricAnomalyAlertConfigurations;
private List hookIds;
private List splitAlertByDimensions;
static {
AnomalyAlertConfigurationHelper
.setAccessor(new AnomalyAlertConfigurationHelper.AnomalyAlertConfigurationAccessor() {
@Override
public void setId(AnomalyAlertConfiguration configuration, String id) {
configuration.setId(id);
}
@Override
public List getHookIdsToAlertRaw(AnomalyAlertConfiguration configuration) {
return configuration.getHookIdsToAlertRaw();
}
@Override
public List getDimensionsToSplitAlertRaw(AnomalyAlertConfiguration configuration) {
return configuration.getDimensionsToSplitAlertRaw();
}
});
}
/**
* Create a new instance of AnomalyAlertConfiguration.
*
* @param name The configuration name.
*/
public AnomalyAlertConfiguration(String name) {
this(name, null);
}
/**
* Create a new instance of AnomalyAlertConfiguration.
*
* @param name The configuration name.
* @param crossMetricsOperator The logical operator to apply across multiple
* metric level {@link MetricAlertConfiguration} in the alert configuration.
*/
public AnomalyAlertConfiguration(String name, MetricAlertConfigurationsOperator crossMetricsOperator) {
this.name = name;
this.crossMetricsOperator = crossMetricsOperator;
this.metricAnomalyAlertConfigurations = new ArrayList<>();
}
/**
* Gets the alert configuration id.
*
* @return The configuration id.
*/
public String getId() {
return this.id;
}
/**
* Gets the alert configuration name.
*
* @return The configuration name.
*/
public String getName() {
return this.name;
}
/**
* Gets the alert configuration description.
*
* @return The configuration description.
*/
public String getDescription() {
return this.description;
}
/**
* Gets the logical operator to apply across multiple metric level alert configurations.
*
* @return The cross metric alert configuration operator.
*/
public MetricAlertConfigurationsOperator getCrossMetricsOperator() {
return this.crossMetricsOperator;
}
/**
* Gets all metric level alert configurations.
*
* @return The metric level alert configurations.
*/
public List getMetricAlertConfigurations() {
return Collections.unmodifiableList(this.metricAnomalyAlertConfigurations);
}
/**
* Gets id of all hooks that receives alerts triggered by this configuration.
*
* @return The hook ids.
*/
public List getHookIdsToAlert() {
if (this.hookIds != null) {
return Collections.unmodifiableList(this.hookIds);
} else {
return Collections.emptyList();
}
}
/**
* Gets the dimensions names used to split a single alert into multiple ones.
*
* @return The dimension names.
*/
public List getDimensionsToSplitAlert() {
return Collections.unmodifiableList(this.splitAlertByDimensions);
}
/**
* Sets the description for the configuration.
*
* @param description The configuration description.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration setDescription(String description) {
this.description = description;
return this;
}
/**
* Sets the logical operator to apply across across multiple metric level alert configurations.
*
* @param crossMetricsOperator The cross metric alert configuration operator.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration setCrossMetricsOperator(MetricAlertConfigurationsOperator crossMetricsOperator) {
this.crossMetricsOperator = crossMetricsOperator;
return this;
}
/**
* Adds a new metric level alert configuration.
*
* @param configuration The configuration.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration addMetricAlertConfiguration(MetricAlertConfiguration configuration) {
this.metricAnomalyAlertConfigurations.add(configuration);
return this;
}
/**
* Sets the metric level alert configurations.
*
* @param configurations The configuration.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration setMetricAlertConfigurations(List configurations) {
if (configurations == null) {
this.metricAnomalyAlertConfigurations = new ArrayList<>();
} else {
this.metricAnomalyAlertConfigurations = configurations;
}
return this;
}
/**
* Sets the hooks to receives alerts triggered by this configuration.
*
* @param hookIds The hook ids.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration setHookIdsToAlert(List hookIds) {
this.hookIds = hookIds;
return this;
}
/**
* Sets the dimensions names used to split a single alert into multiple ones.
*
* @param dimensions The hook ids.
*
* @return The AnomalyAlertConfiguration object itself.
*/
public AnomalyAlertConfiguration setDimensionsToSplitAlert(List dimensions) {
this.splitAlertByDimensions = dimensions;
return this;
}
private void setId(String id) {
this.id = id;
}
private List getHookIdsToAlertRaw() {
// Getter that won't translate null hookIds to empty-list.
return this.hookIds;
}
private List getDimensionsToSplitAlertRaw() {
// Getter that won't translate null splitAlertByDimensions to empty-list.
return this.splitAlertByDimensions;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy