MetricsAdvisorAdministrationClient Class
- java.
lang. Object - com.
azure. ai. metricsadvisor. administration. MetricsAdvisorAdministrationClient
- com.
public final class MetricsAdvisorAdministrationClient
This class provides a synchronous client to connect to the Metrics Advisor Azure Cognitive Service.
This client provides synchronous methods to perform:
- Connect to a variety of data sources, Metrics Advisor can connect to, and ingest multi-dimensional metric data from many data stores, including: SQL Server, Azure Blob Storage, and MongoDB. Use createDataFeed(DataFeed dataFeed) method to add your respective data source.
- Customize anomaly detection configuration to detect anomalies for your needs using the com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient#createDetectionConfig(String, AnomalyDetectionConfiguration) method.
- Add real-time notification through multiple channels. Configure hooks for multiple alerting and detection configuration using the createHook(NotificationHook notificationHook) method./li>
Service clients are the point of interaction for developers to use Azure Metrics Advisor. MetricsAdvisorAdministrationClient is the synchronous service client and MetricsAdvisorAdministrationAsyncClient is the asynchronous service client. The examples shown in this document use a credential object named DefaultAzureCredential for authentication, which is appropriate for most scenarios, including local development and production environments. Additionally, we recommend using managed identity for authentication in production environments. You can find more information on different ways of authenticating and their corresponding credential types in the Azure Identity documentation".
Sample: Construct a MetricsAdvisorAdministrationClient with DefaultAzureCredential
The following code sample demonstrates the creation of a MetricsAdvisorAdministrationClient, using the `DefaultAzureCredentialBuilder` to configure it.
MetricsAdvisorAdministrationClient metricsAdvisorAdminClient =
new MetricsAdvisorAdministrationClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint("{endpoint}")
.buildClient();
Further, see the code sample below to use MetricsAdvisorKeyCredential for client creation.
MetricsAdvisorAdministrationClient metricsAdvisorAdminClient =
new MetricsAdvisorAdministrationClientBuilder()
.credential(new MetricsAdvisorKeyCredential("{subscription_key}", "{api_key}"))
.endpoint("{endpoint}")
.buildClient();
Method Summary
Methods inherited from java.lang.Object
Method Details
createAlertConfig
public AnomalyAlertConfiguration createAlertConfig(AnomalyAlertConfiguration alertConfiguration)
Create a configuration to trigger alert when anomalies are detected.
Code sample
String detectionConfigurationId1 = "9ol48er30-6e6e-4391-b78f-b00dfee1e6f5";
String detectionConfigurationId2 = "3e58er30-6e6e-4391-b78f-b00dfee1e6f5";
String hookId1 = "5f48er30-6e6e-4391-b78f-b00dfee1e6f5";
String hookId2 = "8i48er30-6e6e-4391-b78f-b00dfee1e6f5";
final AnomalyAlertConfiguration anomalyAlertConfiguration
= metricsAdvisorAdminClient.createAlertConfig(
new AnomalyAlertConfiguration("My AnomalyAlert config name")
.setDescription("alert config description")
.setMetricAlertConfigurations(Arrays.asList(
new MetricAlertConfiguration(detectionConfigurationId1,
MetricAnomalyAlertScope.forWholeSeries()),
new MetricAlertConfiguration(detectionConfigurationId2,
MetricAnomalyAlertScope.forWholeSeries())
.setAlertConditions(new MetricAnomalyAlertConditions()
.setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH,
AnomalySeverity.HIGH)))))
.setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND)
.setHookIdsToAlert(Arrays.asList(hookId1, hookId2)));
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n",
anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
Parameters:
Returns:
createAlertConfigWithResponse
public Response
Create a configuration to trigger alert when anomalies are detected.
Code sample
String detectionConfigurationId1 = "9ol48er30-6e6e-4391-b78f-b00dfee1e6f5";
String detectionConfigurationId2 = "3e58er30-6e6e-4391-b78f-b00dfee1e6f5";
String hookId1 = "5f48er30-6e6e-4391-b78f-b00dfee1e6f5";
String hookId2 = "8i48er30-6e6e-4391-b78f-b00dfee1e6f5";
final Response<AnomalyAlertConfiguration> alertConfigurationResponse
= metricsAdvisorAdminClient.createAlertConfigWithResponse(
new AnomalyAlertConfiguration("My AnomalyAlert config name")
.setDescription("alert config description")
.setMetricAlertConfigurations(Arrays.asList(
new MetricAlertConfiguration(detectionConfigurationId1,
MetricAnomalyAlertScope.forWholeSeries()),
new MetricAlertConfiguration(detectionConfigurationId2,
MetricAnomalyAlertScope.forWholeSeries())
.setAlertConditions(new MetricAnomalyAlertConditions()
.setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH,
AnomalySeverity.HIGH)))))
.setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND)
.setHookIdsToAlert(Arrays.asList(hookId1, hookId2)), Context.NONE);
System.out.printf("DataPoint Anomaly alert creation operation status: %s%n",
alertConfigurationResponse.getStatusCode());
final AnomalyAlertConfiguration anomalyAlertConfiguration = alertConfigurationResponse.getValue();
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
Parameters:
Returns:
createDataFeed
public DataFeed createDataFeed(DataFeed dataFeed)
Create a new data feed.
Code sample
DataFeed dataFeed = new DataFeed()
.setName("dataFeedName")
.setSource(new MySqlDataFeedSource("conn-string", "query"))
.setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY))
.setSchema(new DataFeedSchema(
Arrays.asList(
new DataFeedMetric("cost"),
new DataFeedMetric("revenue")
)).setDimensions(
Arrays.asList(
new DataFeedDimension("city"),
new DataFeedDimension("category")
))
)
.setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z")))
.setOptions(new DataFeedOptions()
.setDescription("data feed description")
.setRollupSettings(new DataFeedRollupSettings()
.setRollupType(DataFeedRollupType.AUTO_ROLLUP)));
DataFeed createdDataFeed = metricsAdvisorAdminClient.createDataFeed(dataFeed);
System.out.printf("Data feed Id: %s%n", createdDataFeed.getId());
System.out.printf("Data feed description: %s%n", createdDataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", createdDataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", createdDataFeed.getCreator());
Parameters:
Returns:
createDataFeedWithResponse
public Response
Create a new data feed with REST response.
Code sample
DataFeed dataFeed = new DataFeed()
.setName("dataFeedName")
.setSource(new MySqlDataFeedSource("conn-string", "query"))
.setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY))
.setSchema(new DataFeedSchema(
Arrays.asList(
new DataFeedMetric("cost"),
new DataFeedMetric("revenue")
)).setDimensions(
Arrays.asList(
new DataFeedDimension("city"),
new DataFeedDimension("category")
))
)
.setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z")))
.setOptions(new DataFeedOptions()
.setDescription("data feed description")
.setRollupSettings(new DataFeedRollupSettings()
.setRollupType(DataFeedRollupType.AUTO_ROLLUP)));
final Response<DataFeed> createdDataFeedResponse =
metricsAdvisorAdminClient.createDataFeedWithResponse(dataFeed, Context.NONE);
System.out.printf("Data feed create operation status: %s%n", createdDataFeedResponse.getStatusCode());
DataFeed createdDataFeed = createdDataFeedResponse.getValue();
System.out.printf("Data feed Id: %s%n", createdDataFeed.getId());
System.out.printf("Data feed description: %s%n", createdDataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", createdDataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", createdDataFeed.getCreator());
Parameters:
Returns:
createDataSourceCredential
public DataSourceCredentialEntity createDataSourceCredential(DataSourceCredentialEntity dataSourceCredential)
Create a data source credential entity.
Code sample
DataSourceCredentialEntity datasourceCredential;
final String name = "sample_name" + UUID.randomUUID();
final String cId = "f45668b2-bffa-11eb-8529-0246ac130003";
final String tId = "67890ded-5e07-4e52-b225-4ae8f905afb5";
final String mockSecret = "890hy69-5e07-4e52-b225-4ae8f905afb5";
datasourceCredential = new DataSourceServicePrincipalInKeyVault()
.setName(name)
.setKeyVaultForDataSourceSecrets("kv", cId, mockSecret)
.setTenantId(tId)
.setSecretNameForDataSourceClientId("DSClientID_1")
.setSecretNameForDataSourceClientSecret("DSClientSer_1");
DataSourceCredentialEntity credentialEntity =
metricsAdvisorAdminClient.createDataSourceCredential(datasourceCredential);
if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntity;
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
Parameters:
Returns:
createDataSourceCredentialWithResponse
public Response
Create a data source credential entity with REST response.
Code sample
DataSourceCredentialEntity datasourceCredential;
final String name = "sample_name" + UUID.randomUUID();
final String cId = "f45668b2-bffa-11eb-8529-0246ac130003";
final String tId = "67890ded-5e07-4e52-b225-4ae8f905afb5";
final String mockSecret = "890hy69-5e07-4e52-b225-4ae8f905afb5";
datasourceCredential = new DataSourceServicePrincipalInKeyVault()
.setName(name)
.setKeyVaultForDataSourceSecrets("kv", cId, mockSecret)
.setTenantId(tId)
.setSecretNameForDataSourceClientId("DSClientID_1")
.setSecretNameForDataSourceClientSecret("DSClientSer_1");
Response<DataSourceCredentialEntity> credentialEntityWithResponse =
metricsAdvisorAdminClient.createDataSourceCredentialWithResponse(datasourceCredential, Context.NONE);
System.out.printf("Credential Entity creation operation status: %s%n",
credentialEntityWithResponse.getStatusCode());
if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
Parameters:
Returns:
createDetectionConfig
public AnomalyDetectionConfiguration createDetectionConfig(String metricId, AnomalyDetectionConfiguration detectionConfiguration)
Create a configuration to detect anomalies in the time series of a metric.
Code sample
final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition()
.setConditionOperator(DetectionConditionOperator.OR)
.setSmartDetectionCondition(new SmartDetectionCondition(
50,
AnomalyDetectorDirection.BOTH,
new SuppressCondition(50, 50)))
.setHardThresholdCondition(new HardThresholdCondition(
AnomalyDetectorDirection.BOTH,
new SuppressCondition(5, 5))
.setLowerBound(0.0)
.setUpperBound(100.0))
.setChangeThresholdCondition(new ChangeThresholdCondition(
50,
30,
true,
AnomalyDetectorDirection.BOTH,
new SuppressCondition(2, 2)));
final String detectionConfigName = "my_detection_config";
final String detectionConfigDescription = "anomaly detection config for metric";
final AnomalyDetectionConfiguration detectionConfig
= new AnomalyDetectionConfiguration(detectionConfigName)
.setDescription(detectionConfigDescription)
.setWholeSeriesDetectionCondition(wholeSeriesCondition);
final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
AnomalyDetectionConfiguration createdDetectionConfig = metricsAdvisorAdminClient
.createDetectionConfig(metricId, detectionConfig);
System.out.printf("Detection config Id: %s%n", createdDetectionConfig.getId());
System.out.printf("Name: %s%n", createdDetectionConfig.getName());
System.out.printf("Description: %s%n", createdDetectionConfig.getDescription());
System.out.printf("MetricId: %s%n", createdDetectionConfig.getMetricId());
Parameters:
Returns:
createDetectionConfigWithResponse
public Response
Create a configuration to detect anomalies in the time series of a metric.
Code sample
final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition()
.setConditionOperator(DetectionConditionOperator.OR)
.setSmartDetectionCondition(new SmartDetectionCondition(
50,
AnomalyDetectorDirection.BOTH,
new SuppressCondition(50, 50)))
.setHardThresholdCondition(new HardThresholdCondition(
AnomalyDetectorDirection.BOTH,
new SuppressCondition(5, 5))
.setLowerBound(0.0)
.setUpperBound(100.0))
.setChangeThresholdCondition(new ChangeThresholdCondition(
50,
30,
true,
AnomalyDetectorDirection.BOTH,
new SuppressCondition(2, 2)));
final String detectionConfigName = "my_detection_config";
final String detectionConfigDescription = "anomaly detection config for metric";
final AnomalyDetectionConfiguration detectionConfig
= new AnomalyDetectionConfiguration(detectionConfigName)
.setDescription(detectionConfigDescription)
.setWholeSeriesDetectionCondition(wholeSeriesCondition);
final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
Response<AnomalyDetectionConfiguration> response = metricsAdvisorAdminClient
.createDetectionConfigWithResponse(metricId, detectionConfig, Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
AnomalyDetectionConfiguration createdDetectionConfig = response.getValue();
System.out.printf("Detection config Id: %s%n", createdDetectionConfig.getId());
System.out.printf("Name: %s%n", createdDetectionConfig.getName());
System.out.printf("Description: %s%n", createdDetectionConfig.getDescription());
System.out.printf("MetricId: %s%n", createdDetectionConfig.getMetricId());
Parameters:
Returns:
createHook
public NotificationHook createHook(NotificationHook notificationHook)
Creates a notificationHook that receives anomaly incident alerts.
Code sample
NotificationHook emailNotificationHook = new EmailNotificationHook("email notificationHook")
.setDescription("my email notificationHook")
.setEmailsToAlert(new ArrayList<String>() {{
add("alertme@alertme.com");
}})
.setExternalLink("https://adwiki.azurewebsites.net/articles/howto/alerts/create-hooks.html");
NotificationHook notificationHook = metricsAdvisorAdminClient.createHook(emailNotificationHook);
EmailNotificationHook createdEmailHook = (EmailNotificationHook) notificationHook;
System.out.printf("NotificationHook Id: %s%n", createdEmailHook.getId());
System.out.printf("NotificationHook Name: %s%n", createdEmailHook.getName());
System.out.printf("NotificationHook Description: %s%n", createdEmailHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", createdEmailHook.getExternalLink());
System.out.printf("NotificationHook Emails: %s%n", String.join(",",
createdEmailHook.getEmailsToAlert()));
Parameters:
Returns:
createHookWithResponse
public Response
Creates a notificationHook that receives anomaly incident alerts.
Code sample
NotificationHook emailNotificationHook = new EmailNotificationHook("email hook")
.setDescription("my email hook")
.setEmailsToAlert(new ArrayList<String>() {{
add("alertme@alertme.com");
}})
.setExternalLink("https://adwiki.azurewebsites.net/articles/howto/alerts/create-hooks.html");
Response<NotificationHook> response
= metricsAdvisorAdminClient.createHookWithResponse(emailNotificationHook, Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
EmailNotificationHook createdEmailHook = (EmailNotificationHook) response.getValue();
System.out.printf("NotificationHook Id: %s%n", createdEmailHook.getId());
System.out.printf("NotificationHook Name: %s%n", createdEmailHook.getName());
System.out.printf("NotificationHook Description: %s%n", createdEmailHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", createdEmailHook.getExternalLink());
System.out.printf("NotificationHook Emails: %s%n", String.join(",",
createdEmailHook.getEmailsToAlert()));
Parameters:
Returns:
deleteAlertConfig
public void deleteAlertConfig(String alertConfigurationId)
Deletes the anomaly alert configuration identified by alertConfigurationId
.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
metricsAdvisorAdminClient.deleteAlertConfig(alertConfigId);
Parameters:
deleteAlertConfigWithResponse
public Response
Deletes the anomaly alert configuration identified by alertConfigurationId
.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
final Response<Void> response =
metricsAdvisorAdminClient.deleteAlertConfigWithResponse(alertConfigId, Context.NONE);
System.out.printf("DataPoint Anomaly alert config delete operation status : %s%n", response.getStatusCode());
Parameters:
Returns:
deleteDataFeed
public void deleteDataFeed(String dataFeedId)
Delete a data feed.
Code sample
final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
metricsAdvisorAdminClient.deleteDataFeed(dataFeedId);
Parameters:
deleteDataFeedWithResponse
public Response
Delete a data feed with REST response.
Code sample
final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
final Response<Void> response = metricsAdvisorAdminClient
.deleteDataFeedWithResponse(dataFeedId, Context.NONE);
System.out.printf("Data feed delete operation status : %s%n", response.getStatusCode());
Parameters:
Returns:
deleteDataSourceCredential
public void deleteDataSourceCredential(String credentialId)
Delete a data source credential entity.
Code sample
final String datasourceCredentialId = "t00853f1-9080-447f-bacf-8dccf2e86f";
metricsAdvisorAdminClient.deleteDataFeed(datasourceCredentialId);
Parameters:
deleteDataSourceCredentialWithResponse
public Response
Delete a data source credential entity with REST response.
Code sample
final String datasourceCredentialId = "eh0854f1-8927-447f-bacf-8dccf2e86fwe";
Response<Void> response =
metricsAdvisorAdminClient.deleteDataSourceCredentialWithResponse(datasourceCredentialId, Context.NONE);
System.out.printf("Datasource credential delete operation status : %s%n", response.getStatusCode());
Parameters:
Returns:
deleteDetectionConfig
public void deleteDetectionConfig(String detectionConfigurationId)
Delete a metric anomaly detection configuration.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
metricsAdvisorAdminClient
.deleteDetectionConfig(detectionConfigId);
Parameters:
deleteDetectionConfigWithResponse
public Response
Delete a metric anomaly detection configuration.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
Response<Void> response = metricsAdvisorAdminClient
.deleteDetectionConfigWithResponse(detectionConfigId, Context.NONE);
System.out.printf("Response Status Code: %s%n", response.getStatusCode());
Parameters:
Returns:
deleteHook
public void deleteHook(String hookId)
Delete a hook.
Code sample
final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
metricsAdvisorAdminClient.deleteHook(emailHookId);
Parameters:
deleteHookWithResponse
public Response
Delete a hook.
Code sample
final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
Response<Void> response
= metricsAdvisorAdminClient.deleteHookWithResponse(emailHookId, Context.NONE);
System.out.printf("Response status code: %d%n", response.getStatusCode());
Parameters:
Returns:
getAlertConfig
public AnomalyAlertConfiguration getAlertConfig(String alertConfigurationId)
Get the anomaly alert configuration identified by alertConfigurationId
.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
AnomalyAlertConfiguration anomalyAlertConfiguration
= metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n",
anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
Parameters:
Returns:
getAlertConfigWithResponse
public Response
Get the anomaly alert configuration identified by alertConfigurationId
.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
Response<AnomalyAlertConfiguration> alertConfigurationResponse
= metricsAdvisorAdminClient.getAlertConfigWithResponse(alertConfigId, Context.NONE);
System.out.printf("DataPoint Anomaly alert creation operation status: %s%n",
alertConfigurationResponse.getStatusCode());
final AnomalyAlertConfiguration anomalyAlertConfiguration = alertConfigurationResponse.getValue();
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
Parameters:
Returns:
getDataFeed
public DataFeed getDataFeed(String dataFeedId)
Get a data feed by its id.
Code sample
final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
DataFeed dataFeed = metricsAdvisorAdminClient.getDataFeed(dataFeedId);
System.out.printf("Data feed Id: %s%n", dataFeed.getId());
System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
Parameters:
Returns:
getDataFeedIngestionProgress
public DataFeedIngestionProgress getDataFeedIngestionProgress(String dataFeedId)
Retrieve the ingestion progress of a data feed.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
DataFeedIngestionProgress ingestionProgress
= metricsAdvisorAdminClient.getDataFeedIngestionProgress(dataFeedId);
System.out.printf("Latest active timestamp: %s%n", ingestionProgress.getLatestActiveTimestamp());
System.out.printf("Latest successful timestamp: %s%n", ingestionProgress.getLatestSuccessTimestamp());
Parameters:
Returns:
getDataFeedIngestionProgressWithResponse
public Response
Retrieve the ingestion progress of a data feed.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
Response<DataFeedIngestionProgress> response
= metricsAdvisorAdminClient.getDataFeedIngestionProgressWithResponse(dataFeedId, Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
DataFeedIngestionProgress ingestionProgress = response.getValue();
System.out.printf("Latest active timestamp: %s%n", ingestionProgress.getLatestActiveTimestamp());
System.out.printf("Latest successful timestamp: %s%n", ingestionProgress.getLatestSuccessTimestamp());
Parameters:
Returns:
getDataFeedWithResponse
public Response
Get a data feed by its id with REST response.
Code sample
final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
final Response<DataFeed> dataFeedResponse =
metricsAdvisorAdminClient.getDataFeedWithResponse(dataFeedId, Context.NONE);
System.out.printf("Data feed get operation status: %s%n", dataFeedResponse.getStatusCode());
DataFeed dataFeed = dataFeedResponse.getValue();
System.out.printf("Data feed Id: %s%n", dataFeed.getId());
System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
Parameters:
Returns:
getDataSourceCredential
public DataSourceCredentialEntity getDataSourceCredential(String credentialId)
Get a data source credential entity by its id.
Code sample
final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
DataSourceCredentialEntity credentialEntity =
metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntity;
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
Parameters:
Returns:
getDataSourceCredentialWithResponse
public Response
Get a data source credential entity by its id with REST response.
Code sample
final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
Response<DataSourceCredentialEntity> credentialEntityWithResponse =
metricsAdvisorAdminClient.getDataSourceCredentialWithResponse(datasourceCredentialId, Context.NONE);
System.out.printf("Credential Entity creation operation status: %s%n",
credentialEntityWithResponse.getStatusCode());
if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
Parameters:
Returns:
getDetectionConfig
public AnomalyDetectionConfiguration getDetectionConfig(String detectionConfigurationId)
Get the anomaly detection configuration by its id.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
AnomalyDetectionConfiguration detectionConfig = metricsAdvisorAdminClient
.getDetectionConfig(detectionConfigId);
System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
System.out.printf("Name: %s%n", detectionConfig.getName());
System.out.printf("Description: %s%n", detectionConfig.getDescription());
System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
System.out.printf("Detection conditions specified for configuration...%n");
System.out.printf("Whole Series Detection Conditions:%n");
MetricWholeSeriesDetectionCondition wholeSeriesDetectionCondition
= detectionConfig.getWholeSeriesDetectionCondition();
System.out.printf("- Use %s operator for multiple detection conditions:%n",
wholeSeriesDetectionCondition.getConditionOperator());
System.out.printf("- Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf("- Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf("- Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
List<MetricSingleSeriesDetectionCondition> seriesDetectionConditions
= detectionConfig.getSeriesDetectionConditions();
System.out.printf("Series Detection Conditions:%n");
for (MetricSingleSeriesDetectionCondition seriesDetectionCondition : seriesDetectionConditions) {
DimensionKey seriesKey = seriesDetectionCondition.getSeriesKey();
final String seriesKeyStr
= Arrays.toString(seriesKey.asMap().entrySet().toArray());
System.out.printf("- Series Key:%s%n", seriesKeyStr);
System.out.printf(" - Use %s operator for multiple detection conditions:%n",
seriesDetectionCondition.getConditionOperator());
System.out.printf(" - Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
}
List<MetricSeriesGroupDetectionCondition> seriesGroupDetectionConditions
= detectionConfig.getSeriesGroupDetectionConditions();
System.out.printf("Series Group Detection Conditions:%n");
for (MetricSeriesGroupDetectionCondition seriesGroupDetectionCondition
: seriesGroupDetectionConditions) {
DimensionKey seriesGroupKey = seriesGroupDetectionCondition.getSeriesGroupKey();
final String seriesGroupKeyStr
= Arrays.toString(seriesGroupKey.asMap().entrySet().toArray());
System.out.printf("- Series Group Key:%s%n", seriesGroupKeyStr);
System.out.printf(" - Use %s operator for multiple detection conditions:%n",
seriesGroupDetectionCondition.getConditionOperator());
System.out.printf(" - Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
}
Parameters:
Returns:
getDetectionConfigWithResponse
public Response
Get the anomaly detection configuration by its id.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
Response<AnomalyDetectionConfiguration> response = metricsAdvisorAdminClient
.getDetectionConfigWithResponse(detectionConfigId, Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
AnomalyDetectionConfiguration detectionConfig = response.getValue();
System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
System.out.printf("Name: %s%n", detectionConfig.getName());
System.out.printf("Description: %s%n", detectionConfig.getDescription());
System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
System.out.printf("Detection conditions specified for configuration...%n");
System.out.printf("Whole Series Detection Conditions:%n");
MetricWholeSeriesDetectionCondition wholeSeriesDetectionCondition
= detectionConfig.getWholeSeriesDetectionCondition();
System.out.printf("- Use %s operator for multiple detection conditions:%n",
wholeSeriesDetectionCondition.getConditionOperator());
System.out.printf("- Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf("- Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf("- Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
wholeSeriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
List<MetricSingleSeriesDetectionCondition> seriesDetectionConditions
= detectionConfig.getSeriesDetectionConditions();
System.out.printf("Series Detection Conditions:%n");
for (MetricSingleSeriesDetectionCondition seriesDetectionCondition : seriesDetectionConditions) {
DimensionKey seriesKey = seriesDetectionCondition.getSeriesKey();
final String seriesKeyStr
= Arrays.toString(seriesKey.asMap().entrySet().toArray());
System.out.printf("- Series Key:%s%n", seriesKeyStr);
System.out.printf(" - Use %s operator for multiple detection conditions:%n",
seriesDetectionCondition.getConditionOperator());
System.out.printf(" - Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
}
List<MetricSeriesGroupDetectionCondition> seriesGroupDetectionConditions
= detectionConfig.getSeriesGroupDetectionConditions();
System.out.printf("Series Group Detection Conditions:%n");
for (MetricSeriesGroupDetectionCondition seriesGroupDetectionCondition
: seriesGroupDetectionConditions) {
DimensionKey seriesGroupKey = seriesGroupDetectionCondition.getSeriesGroupKey();
final String seriesGroupKeyStr
= Arrays.toString(seriesGroupKey.asMap().entrySet().toArray());
System.out.printf("- Series Group Key:%s%n", seriesGroupKeyStr);
System.out.printf(" - Use %s operator for multiple detection conditions:%n",
seriesGroupDetectionCondition.getConditionOperator());
System.out.printf(" - Smart Detection Condition:%n");
System.out.printf(" - Sensitivity: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSensitivity());
System.out.printf(" - Detection direction: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getAnomalyDetectorDirection());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getSmartDetectionCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Hard Threshold Condition:%n");
System.out.printf(" - Lower bound: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getLowerBound());
System.out.printf(" - Upper bound: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getUpperBound());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getHardThresholdCondition()
.getSuppressCondition().getMinRatio());
System.out.printf(" - Change Threshold Condition:%n");
System.out.printf(" - Change percentage: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getChangePercentage());
System.out.printf(" - Shift point: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getShiftPoint());
System.out.printf(" - Detect anomaly if within range: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.isWithinRange());
System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinNumber(),
seriesGroupDetectionCondition.getChangeThresholdCondition()
.getSuppressCondition().getMinRatio());
}
Parameters:
Returns:
getHook
public NotificationHook getHook(String hookId)
Get a hook by its id.
Code sample
final String hookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
NotificationHook notificationHook = metricsAdvisorAdminClient.getHook(hookId);
if (notificationHook instanceof EmailNotificationHook) {
EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
System.out.printf("NotificationHook Id: %s%n", emailHook.getId());
System.out.printf("NotificationHook Name: %s%n", emailHook.getName());
System.out.printf("NotificationHook Description: %s%n", emailHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", emailHook.getExternalLink());
System.out.printf("NotificationHook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
} else if (notificationHook instanceof WebNotificationHook) {
WebNotificationHook webHook = (WebNotificationHook) notificationHook;
System.out.printf("NotificationHook Id: %s%n", webHook.getId());
System.out.printf("NotificationHook Name: %s%n", webHook.getName());
System.out.printf("NotificationHook Description: %s%n", webHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", webHook.getExternalLink());
System.out.printf("NotificationHook Endpoint: %s%n", webHook.getEndpoint());
System.out.printf("NotificationHook Headers: %s%n", webHook.getHttpHeaders());
}
Parameters:
Returns:
getHookWithResponse
public Response
Get a hook by its id.
Code sample
final String hookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
Response<NotificationHook> response = metricsAdvisorAdminClient.getHookWithResponse(hookId, Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
NotificationHook notificationHook = response.getValue();
if (notificationHook instanceof EmailNotificationHook) {
EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
System.out.printf("NotificationHook Id: %s%n", emailHook.getId());
System.out.printf("NotificationHook Name: %s%n", emailHook.getName());
System.out.printf("NotificationHook Description: %s%n", emailHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", emailHook.getExternalLink());
System.out.printf("NotificationHook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
} else if (notificationHook instanceof WebNotificationHook) {
WebNotificationHook webHook = (WebNotificationHook) notificationHook;
System.out.printf("NotificationHook Id: %s%n", webHook.getId());
System.out.printf("NotificationHook Name: %s%n", webHook.getName());
System.out.printf("NotificationHook Description: %s%n", webHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", webHook.getExternalLink());
System.out.printf("NotificationHook Endpoint: %s%n", webHook.getEndpoint());
System.out.printf("NotificationHook Headers: %s%n", webHook.getHttpHeaders());
}
Parameters:
Returns:
listAlertConfigs
public PagedIterable
Fetch the anomaly alert configurations associated with a detection configuration.
Code sample
String detectionConfigId = "3rt98er30-6e6e-4391-b78f-bpfdfee1e6f5";
metricsAdvisorAdminClient.listAlertConfigs(detectionConfigId, new ListAnomalyAlertConfigsOptions())
.forEach(anomalyAlertConfiguration -> {
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
});
Parameters:
Returns:
listAlertConfigs
public PagedIterable
Fetch the anomaly alert configurations associated with a detection configuration.
Code sample
String detectionConfigId = "3rt98er30-6e6e-4391-b78f-bpfdfee1e6f5";
metricsAdvisorAdminClient.listAlertConfigs(detectionConfigId,
new ListAnomalyAlertConfigsOptions(), Context.NONE)
.forEach(anomalyAlertConfiguration -> {
System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
anomalyAlertConfiguration.getDescription());
System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
anomalyAlertConfiguration.getHookIdsToAlert());
System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
anomalyAlertConfiguration.getCrossMetricsOperator().toString());
});
Parameters:
Returns:
listDataFeedIngestionStatus
public PagedIterable
Fetch the ingestion status of a data feed.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z");
final ListDataFeedIngestionOptions options = new ListDataFeedIngestionOptions(startTime, endTime);
PagedIterable<DataFeedIngestionStatus> ingestionStatuses
= metricsAdvisorAdminClient.listDataFeedIngestionStatus(dataFeedId, options);
for (DataFeedIngestionStatus ingestionStatus : ingestionStatuses) {
System.out.printf("Timestamp: %s%n", ingestionStatus.getTimestamp());
System.out.printf("Status: %s%n", ingestionStatus.getStatus());
System.out.printf("Message: %s%n", ingestionStatus.getMessage());
}
Parameters:
Returns:
listDataFeedIngestionStatus
public PagedIterable
Fetch the ingestion status of a data feed.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z");
final ListDataFeedIngestionOptions options = new ListDataFeedIngestionOptions(startTime, endTime);
PagedIterable<DataFeedIngestionStatus> ingestionStatuses
= metricsAdvisorAdminClient.listDataFeedIngestionStatus(dataFeedId, options, Context.NONE);
Stream<PagedResponse<DataFeedIngestionStatus>> ingestionStatusPageStream = ingestionStatuses.streamByPage();
int[] pageCount = new int[1];
ingestionStatusPageStream.forEach(ingestionStatusPage -> {
System.out.printf("Page: %d%n", pageCount[0]++);
for (DataFeedIngestionStatus ingestionStatus : ingestionStatusPage.getElements()) {
System.out.printf("Timestamp: %s%n", ingestionStatus.getTimestamp());
System.out.printf("Status: %s%n", ingestionStatus.getStatus());
System.out.printf("Message: %s%n", ingestionStatus.getMessage());
}
});
Parameters:
Returns:
listDataFeeds
public PagedIterable
List information of all data feeds on the metrics advisor account.
Code sample
metricsAdvisorAdminClient.listDataFeeds()
.forEach(dataFeed -> {
System.out.printf("Data feed Id: %s%n", dataFeed.getId());
System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
});
Returns:
listDataFeeds
public PagedIterable
List information of all data feeds on the metrics advisor account with REST response.
Code sample
metricsAdvisorAdminClient.listDataFeeds(
new ListDataFeedOptions()
.setListDataFeedFilter(
new ListDataFeedFilter()
.setDataFeedStatus(DataFeedStatus.ACTIVE)
.setDataFeedGranularityType(DataFeedGranularityType.DAILY))
.setMaxPageSize(3), Context.NONE)
.forEach(dataFeed -> {
System.out.printf("Data feed Id: %s%n", dataFeed.getId());
System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
System.out.printf("Data feed status: %s%n", dataFeed.getStatus());
System.out.printf("Data feed granularity type: %s%n", dataFeed.getGranularity().getGranularityType());
});
Parameters:
Returns:
listDataSourceCredentials
public PagedIterable
List information of all data source credential entities on the metrics advisor account.
Code sample
metricsAdvisorAdminClient.listDataSourceCredentials()
.forEach(datasourceCredentialEntity -> {
if (datasourceCredentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) datasourceCredentialEntity;
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
});
Returns:
listDataSourceCredentials
public PagedIterable
List information of all data source credential entities on the metrics advisor account.
Code sample
metricsAdvisorAdminClient.listDataSourceCredentials(
new ListCredentialEntityOptions()
.setMaxPageSize(3),
Context.NONE)
.forEach(datasourceCredentialEntity -> {
if (datasourceCredentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) datasourceCredentialEntity;
System.out
.printf("Actual credential entity key vault endpoint: %s%n",
actualCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault client Id: %s%n",
actualCredentialSPInKV.getKeyVaultClientId());
System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientId());
System.out.printf("Actual credential entity key vault secret for data source: %s%n",
actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
}
});
Parameters:
Returns:
listDetectionConfigs
public PagedIterable
Given a metric id, retrieve all anomaly detection configurations applied to it.
Code sample
final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
PagedIterable<AnomalyDetectionConfiguration> configsIterable
= metricsAdvisorAdminClient.listDetectionConfigs(metricId);
for (AnomalyDetectionConfiguration detectionConfig : configsIterable) {
System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
System.out.printf("Name: %s%n", detectionConfig.getName());
System.out.printf("Description: %s%n", detectionConfig.getDescription());
System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
}
Parameters:
Returns:
listDetectionConfigs
public PagedIterable
Given a metric id, retrieve all anomaly detection configurations applied to it.
Code sample
final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
PagedIterable<AnomalyDetectionConfiguration> configsIterable
= metricsAdvisorAdminClient.listDetectionConfigs(metricId,
new ListDetectionConfigsOptions(), Context.NONE);
Stream<PagedResponse<AnomalyDetectionConfiguration>> configByPageStream
= configsIterable.streamByPage();
configByPageStream.forEach(configPage -> {
IterableStream<AnomalyDetectionConfiguration> pageElements = configPage.getElements();
for (AnomalyDetectionConfiguration detectionConfig : pageElements) {
System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
System.out.printf("Name: %s%n", detectionConfig.getName());
System.out.printf("Description: %s%n", detectionConfig.getDescription());
System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
}
});
Parameters:
Returns:
listHooks
public PagedIterable
List information of hooks on the metrics advisor account.
Code sample
PagedIterable<NotificationHook> hooks = metricsAdvisorAdminClient.listHooks();
for (NotificationHook notificationHook : hooks) {
if (notificationHook instanceof EmailNotificationHook) {
EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
System.out.printf("Email Hook Id: %s%n", emailHook.getId());
System.out.printf("Email Hook Name: %s%n", emailHook.getName());
System.out.printf("Email Hook Description: %s%n", emailHook.getDescription());
System.out.printf("Email Hook External Link: %s%n", emailHook.getExternalLink());
System.out.printf("Email Hook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
} else if (notificationHook instanceof WebNotificationHook) {
WebNotificationHook webHook = (WebNotificationHook) notificationHook;
System.out.printf("Web Hook Id: %s%n", webHook.getId());
System.out.printf("Web Hook Name: %s%n", webHook.getName());
System.out.printf("Web Hook Description: %s%n", webHook.getDescription());
System.out.printf("Web Hook External Link: %s%n", webHook.getExternalLink());
System.out.printf("Web Hook Endpoint: %s%n", webHook.getEndpoint());
System.out.printf("Web Hook Headers: %s%n", webHook.getHttpHeaders());
}
}
Returns:
listHooks
public PagedIterable
List information of hooks.
Code sample
ListHookOptions options = new ListHookOptions()
.setSkip(100)
.setMaxPageSize(20);
PagedIterable<NotificationHook> hooks = metricsAdvisorAdminClient.listHooks(options, Context.NONE);
Stream<PagedResponse<NotificationHook>> hooksPageStream = hooks.streamByPage();
int[] pageCount = new int[1];
hooksPageStream.forEach(hookPage -> {
System.out.printf("Page: %d%n", pageCount[0]++);
for (NotificationHook notificationHook : hookPage.getElements()) {
if (notificationHook instanceof EmailNotificationHook) {
EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
System.out.printf("Email Hook Id: %s%n", emailHook.getId());
System.out.printf("Email Hook Name: %s%n", emailHook.getName());
System.out.printf("Email Hook Description: %s%n", emailHook.getDescription());
System.out.printf("Email Hook External Link: %s%n", emailHook.getExternalLink());
System.out.printf("Email Hook Emails: %s%n", String.join(",",
emailHook.getEmailsToAlert()));
System.out.printf("Email Hook Admins: %s%n", String.join(",", emailHook.getAdmins()));
} else if (notificationHook instanceof WebNotificationHook) {
WebNotificationHook webHook = (WebNotificationHook) notificationHook;
System.out.printf("Web Hook Id: %s%n", webHook.getId());
System.out.printf("Web Hook Name: %s%n", webHook.getName());
System.out.printf("Web Hook Description: %s%n", webHook.getDescription());
System.out.printf("Web Hook External Link: %s%n", webHook.getExternalLink());
System.out.printf("Web Hook Endpoint: %s%n", webHook.getEndpoint());
System.out.printf("Web Hook Headers: %s%n", webHook.getHttpHeaders());
System.out.printf("Web Hook Admins: %s%n", String.join(",", webHook.getAdmins()));
}
}
});
Parameters:
Returns:
refreshDataFeedIngestion
public void refreshDataFeedIngestion(String dataFeedId, OffsetDateTime startTime, OffsetDateTime endTime)
Refresh data ingestion for a period.
The data in the data source for the given period will be re-ingested and any ingested data for the same period will be overwritten.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
final OffsetDateTime endTime = OffsetDateTime.parse("2020-03-03T00:00:00Z");
metricsAdvisorAdminClient.refreshDataFeedIngestion(dataFeedId,
startTime,
endTime);
Parameters:
refreshDataFeedIngestionWithResponse
public Response
Refresh data ingestion for a period.
The data in the data source for the given period will be re-ingested and any ingested data for the same period will be overwritten.
Code sample
final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
final OffsetDateTime endTime = OffsetDateTime.parse("2020-03-03T00:00:00Z");
Response<Void> response = metricsAdvisorAdminClient.refreshDataFeedIngestionWithResponse(dataFeedId,
startTime,
endTime,
Context.NONE);
System.out.printf("Response statusCode: %d%n", response.getStatusCode());
Parameters:
Returns:
updateAlertConfig
public AnomalyAlertConfiguration updateAlertConfig(AnomalyAlertConfiguration alertConfiguration)
Update anomaly alert configuration.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
String additionalHookId = "2gh8er30-6e6e-4391-b78f-bpfdfee1e6f5";
AnomalyAlertConfiguration existingAnomalyConfig
= metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
List<String> hookIds = new ArrayList<>(existingAnomalyConfig.getHookIdsToAlert());
hookIds.add(additionalHookId);
final AnomalyAlertConfiguration updatedAnomalyAlertConfiguration
= metricsAdvisorAdminClient.updateAlertConfig(
existingAnomalyConfig
.setHookIdsToAlert(hookIds)
.setDescription("updated to add more hook ids")
);
System.out.printf("Updated anomaly alert configuration Id: %s%n", updatedAnomalyAlertConfiguration.getId());
System.out.printf("Updated anomaly alert configuration description: %s%n",
updatedAnomalyAlertConfiguration.getDescription());
System.out.printf("Updated anomaly alert configuration hook ids: %s%n",
updatedAnomalyAlertConfiguration.getHookIdsToAlert());
Parameters:
Returns:
updateAlertConfigWithResponse
public Response
Update anomaly alert configuration.
Code sample
String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
String additionalHookId = "2gh8er30-6e6e-4391-b78f-bpfdfee1e6f5";
AnomalyAlertConfiguration existingAnomalyConfig
= metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
List<String> hookIds = new ArrayList<>(existingAnomalyConfig.getHookIdsToAlert());
hookIds.add(additionalHookId);
final Response<AnomalyAlertConfiguration> alertConfigurationResponse
= metricsAdvisorAdminClient.updateAlertConfigWithResponse(
existingAnomalyConfig
.setHookIdsToAlert(hookIds)
.setDescription("updated to add more hook ids"), Context.NONE);
System.out.printf("Update anomaly alert operation status: %s%n", alertConfigurationResponse.getStatusCode());
final AnomalyAlertConfiguration updatedAnomalyAlertConfiguration = alertConfigurationResponse.getValue();
System.out.printf("Updated anomaly alert configuration Id: %s%n", updatedAnomalyAlertConfiguration.getId());
System.out.printf("Updated anomaly alert configuration description: %s%n",
updatedAnomalyAlertConfiguration.getDescription());
System.out.printf("Updated anomaly alert configuration hook ids: %sf%n",
updatedAnomalyAlertConfiguration.getHookIdsToAlert());
Parameters:
Returns:
updateDataFeed
public DataFeed updateDataFeed(DataFeed dataFeed)
Update a data feed.
Code sample
final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
DataFeed existingDataFeed = metricsAdvisorAdminClient.getDataFeed(dataFeedId);
final DataFeed updatedDataFeed = metricsAdvisorAdminClient.updateDataFeed(
existingDataFeed.setOptions(new DataFeedOptions().setDescription("set updated description")));
System.out.printf("Data feed Id: %s%n", updatedDataFeed.getId());
System.out.printf("Data feed updated description: %s%n", updatedDataFeed.getOptions().getDescription());
Parameters:
Returns:
updateDataFeedWithResponse
public Response
Update a data feed with REST response.
Code sample
DataFeed existingDataFeed = new DataFeed();
final Response<DataFeed> updateDataFeedWithResponse =
metricsAdvisorAdminClient.updateDataFeedWithResponse(
existingDataFeed.setOptions(new DataFeedOptions().setDescription("set updated description")),
Context.NONE);
System.out.printf("Data feed update operation status: %s%n", updateDataFeedWithResponse.getStatusCode());
DataFeed dataFeed = updateDataFeedWithResponse.getValue();
System.out.printf("Data feed Id: %s%n", dataFeed.getId());
System.out.printf("Data feed updated description: %s%n", dataFeed.getOptions().getDescription());
Parameters:
Returns:
updateDataSourceCredential
public DataSourceCredentialEntity updateDataSourceCredential(DataSourceCredentialEntity dataSourceCredential)
Update a data source credential entity.
Code sample
final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
DataSourceCredentialEntity existingDatasourceCredential =
metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV = null;
if (existingDatasourceCredential instanceof DataSourceServicePrincipalInKeyVault) {
actualCredentialSPInKV = (DataSourceServicePrincipalInKeyVault) existingDatasourceCredential;
}
DataSourceCredentialEntity credentialEntity =
metricsAdvisorAdminClient.updateDataSourceCredential(
actualCredentialSPInKV.setDescription("set updated description"));
if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault updatedCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntity;
System.out.printf("Actual credential entity key vault endpoint: %s%n",
updatedCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault updated description: %s%n",
updatedCredentialSPInKV.getDescription());
}
Parameters:
Returns:
updateDataSourceCredentialWithResponse
public Response
Update a data source credential entity.
Code sample
final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
DataSourceCredentialEntity existingDatasourceCredential =
metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
DataSourceServicePrincipalInKeyVault actualCredentialSPInKV = null;
if (existingDatasourceCredential instanceof DataSourceServicePrincipalInKeyVault) {
actualCredentialSPInKV = (DataSourceServicePrincipalInKeyVault) existingDatasourceCredential;
}
Response<DataSourceCredentialEntity> credentialEntityWithResponse =
metricsAdvisorAdminClient.updateDataSourceCredentialWithResponse(
actualCredentialSPInKV.setDescription("set updated description"), Context.NONE);
System.out.printf("Credential Entity creation operation status: %s%n",
credentialEntityWithResponse.getStatusCode());
if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
DataSourceServicePrincipalInKeyVault updatedCredentialSPInKV
= (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
System.out.printf("Actual credential entity key vault endpoint: %s%n",
updatedCredentialSPInKV.getKeyVaultEndpoint());
System.out.printf("Actual credential entity key vault updated description: %s%n",
updatedCredentialSPInKV.getDescription());
}
Parameters:
Returns:
updateDetectionConfig
public AnomalyDetectionConfiguration updateDetectionConfig(AnomalyDetectionConfiguration detectionConfiguration)
Update a configuration to detect anomalies in the time series of a metric.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
AnomalyDetectionConfiguration detectionConfig = metricsAdvisorAdminClient
.getDetectionConfig(detectionConfigId);
detectionConfig.setName("updated config name");
detectionConfig.setDescription("updated with more detection conditions");
DimensionKey seriesGroupKey = new DimensionKey()
.put("city", "Seoul");
detectionConfig.addSeriesGroupDetectionCondition(
new MetricSeriesGroupDetectionCondition(seriesGroupKey)
.setSmartDetectionCondition(new SmartDetectionCondition(
10.0,
AnomalyDetectorDirection.UP,
new SuppressCondition(2, 2))));
AnomalyDetectionConfiguration updatedDetectionConfig = metricsAdvisorAdminClient
.updateDetectionConfig(detectionConfig);
System.out.printf("Detection config Id: %s%n", updatedDetectionConfig.getId());
System.out.printf("Name: %s%n", updatedDetectionConfig.getName());
System.out.printf("Description: %s%n", updatedDetectionConfig.getDescription());
System.out.printf("MetricId: %s%n", updatedDetectionConfig.getMetricId());
Parameters:
Returns:
updateDetectionConfigWithResponse
public Response
Update a configuration to detect anomalies in the time series of a metric.
Code sample
final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
Response<AnomalyDetectionConfiguration> getResponse = metricsAdvisorAdminClient
.getDetectionConfigWithResponse(detectionConfigId, Context.NONE);
AnomalyDetectionConfiguration detectionConfig = getResponse.getValue();
detectionConfig.setName("updated config name");
detectionConfig.setDescription("updated with more detection conditions");
DimensionKey seriesGroupKey = new DimensionKey()
.put("city", "Seoul");
detectionConfig.addSeriesGroupDetectionCondition(
new MetricSeriesGroupDetectionCondition(seriesGroupKey)
.setSmartDetectionCondition(new SmartDetectionCondition(
10.0,
AnomalyDetectorDirection.UP,
new SuppressCondition(2, 2))));
Response<AnomalyDetectionConfiguration> updateResponse = metricsAdvisorAdminClient
.updateDetectionConfigWithResponse(detectionConfig, Context.NONE);
System.out.printf("Response StatusCode: %s%n", updateResponse.getStatusCode());
AnomalyDetectionConfiguration updatedDetectionConfig = updateResponse.getValue();
System.out.printf("Detection config Id: %s%n", updatedDetectionConfig.getId());
System.out.printf("Name: %s%n", updatedDetectionConfig.getName());
System.out.printf("Description: %s%n", updatedDetectionConfig.getDescription());
System.out.printf("MetricId: %s%n", updatedDetectionConfig.getMetricId());
Parameters:
Returns:
updateHook
public NotificationHook updateHook(NotificationHook notificationHook)
Update an existing notificationHook.
Code sample
final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
NotificationHook notificationHook = metricsAdvisorAdminClient.getHook(emailHookId);
EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
List<String> emailsToUpdate = new ArrayList<>(emailHook.getEmailsToAlert());
emailsToUpdate.remove("alertme@alertme.com");
emailsToUpdate.add("alertme2@alertme.com");
emailsToUpdate.add("alertme3@alertme.com");
emailHook.setEmailsToAlert(emailsToUpdate);
NotificationHook updatedNotificationHook = metricsAdvisorAdminClient.updateHook(emailHook);
EmailNotificationHook updatedEmailHook = (EmailNotificationHook) updatedNotificationHook;
System.out.printf("NotificationHook Id: %s%n", updatedEmailHook.getId());
System.out.printf("NotificationHook Name: %s%n", updatedEmailHook.getName());
System.out.printf("NotificationHook Description: %s%n", updatedEmailHook.getDescription());
System.out.printf("NotificationHook External Link: %s%n", updatedEmailHook.getExternalLink());
System.out.printf("NotificationHook Emails: %s%n", String.join(",",
updatedEmailHook.getEmailsToAlert()));
Parameters:
Returns:
updateHookWithResponse
public Response
Update an existing notificationHook.
Code sample
final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
Response<NotificationHook> response
= metricsAdvisorAdminClient.getHookWithResponse(emailHookId, Context.NONE);
EmailNotificationHook emailHook = (EmailNotificationHook) response.getValue();
List<String> emailsToUpdate = new ArrayList<>(emailHook.getEmailsToAlert());
emailsToUpdate.remove("alertme@alertme.com");
emailsToUpdate.add("alertme2@alertme.com");
emailsToUpdate.add("alertme3@alertme.com");
emailHook.setEmailsToAlert(emailsToUpdate);
Response<NotificationHook> updateResponse
= metricsAdvisorAdminClient.updateHookWithResponse(emailHook, Context.NONE);
EmailNotificationHook updatedEmailHook = (EmailNotificationHook) updateResponse.getValue();
System.out.printf("Email Hook Id: %s%n", updatedEmailHook.getId());
System.out.printf("Email Hook Name: %s%n", updatedEmailHook.getName());
System.out.printf("Email Hook Description: %s%n", updatedEmailHook.getDescription());
System.out.printf("Email Hook External Link: %s%n", updatedEmailHook.getExternalLink());
System.out.printf("Email Hook Emails: %s%n", String.join(",",
updatedEmailHook.getEmailsToAlert()));
Parameters:
Returns:
Applies to
Azure SDK for Java