From 766971837b0adf878ff4c82094e7d585e7ae2463 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Wed, 3 Jan 2018 19:50:11 +0800 Subject: [PATCH] Add alarm config into application.yml. --- .../src/main/resources/application.yml | 11 ++++++- .../ConfigurationModuleProvider.java | 30 ++++++++++++++----- .../service/ApdexThresholdService.java | 9 ++++-- .../service/ApplicationAlarmRuleConfig.java | 16 +++++++--- .../ApplicationReferenceAlarmRuleConfig.java | 16 +++++++--- .../service/InstanceAlarmRuleConfig.java | 16 +++++++--- .../InstanceReferenceAlarmRuleConfig.java | 16 +++++++--- .../service/ServiceAlarmRuleConfig.java | 16 +++++++--- .../ServiceReferenceAlarmRuleConfig.java | 16 +++++++--- .../main/resources/application-default.yml | 7 +++++ 10 files changed, 119 insertions(+), 34 deletions(-) diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml index 7c77423bbc..dfbc142e78 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/application.yml +++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml @@ -41,4 +41,13 @@ storage: cluster_nodes: localhost:9300 index_shards_number: 2 index_replicas_number: 0 - ttl: 7 \ No newline at end of file + ttl: 7 +configuration: + default: + application_apdex_threshold: 2000 + service_error_rate_threshold: 10.00 + service_average_response_time_threshold: 2000 + instance_error_rate_threshold: 10.00 + instance_average_response_time_threshold: 2000 + application_error_rate_threshold: 10.00 + application_average_response_time_threshold: 2000 \ No newline at end of file diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/ConfigurationModuleProvider.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/ConfigurationModuleProvider.java index 1a7847ecd5..eb0c95e453 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/ConfigurationModuleProvider.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/ConfigurationModuleProvider.java @@ -42,6 +42,14 @@ import org.apache.skywalking.apm.collector.core.module.ServiceNotProvidedExcepti */ public class ConfigurationModuleProvider extends ModuleProvider { + private static final String APPLICATION_APDEX_THRESHOLD = "application_apdex_threshold"; + private static final String SERVICE_ERROR_RATE_THRESHOLD = "service_error_rate_threshold"; + private static final String SERVICE_AVERAGE_RESPONSE_TIME_THRESHOLD = "service_average_response_time_threshold"; + private static final String INSTANCE_ERROR_RATE_THRESHOLD = "instance_error_rate_threshold"; + private static final String INSTANCE_AVERAGE_RESPONSE_TIME_THRESHOLD = "instance_average_response_time_threshold"; + private static final String APPLICATION_ERROR_RATE_THRESHOLD = "application_error_rate_threshold"; + private static final String APPLICATION_AVERAGE_RESPONSE_TIME_THRESHOLD = "application_average_response_time_threshold"; + @Override public String name() { return "default"; } @@ -51,13 +59,21 @@ public class ConfigurationModuleProvider extends ModuleProvider { } @Override public void prepare(Properties config) throws ServiceNotProvidedException { - this.registerServiceImplementation(IApdexThresholdService.class, new ApdexThresholdService()); - this.registerServiceImplementation(IServiceAlarmRuleConfig.class, new ServiceAlarmRuleConfig()); - this.registerServiceImplementation(IInstanceAlarmRuleConfig.class, new InstanceAlarmRuleConfig()); - this.registerServiceImplementation(IApplicationAlarmRuleConfig.class, new ApplicationAlarmRuleConfig()); - this.registerServiceImplementation(IServiceReferenceAlarmRuleConfig.class, new ServiceReferenceAlarmRuleConfig()); - this.registerServiceImplementation(IInstanceReferenceAlarmRuleConfig.class, new InstanceReferenceAlarmRuleConfig()); - this.registerServiceImplementation(IApplicationReferenceAlarmRuleConfig.class, new ApplicationReferenceAlarmRuleConfig()); + Integer applicationApdexThreshold = (Integer)config.getOrDefault(APPLICATION_APDEX_THRESHOLD, 2000); + Double serviceErrorRateThreshold = (Double)config.getOrDefault(SERVICE_ERROR_RATE_THRESHOLD, 10.00); + Integer serviceAverageResponseTimeThreshold = (Integer)config.getOrDefault(SERVICE_AVERAGE_RESPONSE_TIME_THRESHOLD, 2000); + Double instanceErrorRateThreshold = (Double)config.getOrDefault(INSTANCE_ERROR_RATE_THRESHOLD, 10.00); + Integer instanceAverageResponseTimeThreshold = (Integer)config.getOrDefault(INSTANCE_AVERAGE_RESPONSE_TIME_THRESHOLD, 2000); + Double applicationErrorRateThreshold = (Double)config.getOrDefault(APPLICATION_ERROR_RATE_THRESHOLD, 10.00); + Integer applicationAverageResponseTimeThreshold = (Integer)config.getOrDefault(APPLICATION_AVERAGE_RESPONSE_TIME_THRESHOLD, 2000); + + this.registerServiceImplementation(IApdexThresholdService.class, new ApdexThresholdService(applicationApdexThreshold)); + this.registerServiceImplementation(IServiceAlarmRuleConfig.class, new ServiceAlarmRuleConfig(serviceErrorRateThreshold, serviceAverageResponseTimeThreshold)); + this.registerServiceImplementation(IInstanceAlarmRuleConfig.class, new InstanceAlarmRuleConfig(instanceErrorRateThreshold, instanceAverageResponseTimeThreshold)); + this.registerServiceImplementation(IApplicationAlarmRuleConfig.class, new ApplicationAlarmRuleConfig(applicationErrorRateThreshold, applicationAverageResponseTimeThreshold)); + this.registerServiceImplementation(IServiceReferenceAlarmRuleConfig.class, new ServiceReferenceAlarmRuleConfig(serviceErrorRateThreshold, serviceAverageResponseTimeThreshold)); + this.registerServiceImplementation(IInstanceReferenceAlarmRuleConfig.class, new InstanceReferenceAlarmRuleConfig(instanceErrorRateThreshold, instanceAverageResponseTimeThreshold)); + this.registerServiceImplementation(IApplicationReferenceAlarmRuleConfig.class, new ApplicationReferenceAlarmRuleConfig(applicationErrorRateThreshold, applicationAverageResponseTimeThreshold)); } @Override public void start(Properties config) throws ServiceNotProvidedException { diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApdexThresholdService.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApdexThresholdService.java index 1d9225b7c7..5b841096e9 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApdexThresholdService.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApdexThresholdService.java @@ -16,7 +16,6 @@ * */ - package org.apache.skywalking.apm.collector.configuration.service; /** @@ -24,6 +23,12 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class ApdexThresholdService implements IApdexThresholdService { + private int apdexThreshold; + + public ApdexThresholdService(int apdexThreshold) { + this.apdexThreshold = apdexThreshold; + } + /** * Apdex T applies to web transactions only * @@ -31,6 +36,6 @@ public class ApdexThresholdService implements IApdexThresholdService { * @return This value is in milli-seconds. */ @Override public Integer getApplicationApdexThreshold(int applicationId) { - return 1000; + return apdexThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationAlarmRuleConfig.java index 99ae3a5c50..53ec719363 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class ApplicationAlarmRuleConfig implements IApplicationAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public ApplicationAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationReferenceAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationReferenceAlarmRuleConfig.java index fb073cb68d..0e9ef86cb8 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationReferenceAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ApplicationReferenceAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class ApplicationReferenceAlarmRuleConfig implements IApplicationReferenceAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public ApplicationReferenceAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceAlarmRuleConfig.java index 51b019f66c..3f31223464 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class InstanceAlarmRuleConfig implements IInstanceAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public InstanceAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceReferenceAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceReferenceAlarmRuleConfig.java index 9c07b20c43..6076ee7256 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceReferenceAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/InstanceReferenceAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class InstanceReferenceAlarmRuleConfig implements IInstanceReferenceAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public InstanceReferenceAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceAlarmRuleConfig.java index b2251a3e5f..ae4e04f47b 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class ServiceAlarmRuleConfig implements IServiceAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public ServiceAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceReferenceAlarmRuleConfig.java b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceReferenceAlarmRuleConfig.java index 4b9285d759..0fba6fa4e8 100644 --- a/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceReferenceAlarmRuleConfig.java +++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/src/main/java/org/apache/skywalking/apm/collector/configuration/service/ServiceReferenceAlarmRuleConfig.java @@ -23,19 +23,27 @@ package org.apache.skywalking.apm.collector.configuration.service; */ public class ServiceReferenceAlarmRuleConfig implements IServiceReferenceAlarmRuleConfig { + private double errorRateThreshold; + private int averageResponseTimeThreshold; + + public ServiceReferenceAlarmRuleConfig(double errorRateThreshold, int averageResponseTimeThreshold) { + this.errorRateThreshold = errorRateThreshold; + this.averageResponseTimeThreshold = averageResponseTimeThreshold; + } + @Override public double calleeErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double calleeAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } @Override public double callerErrorRateThreshold() { - return 10.00; + return errorRateThreshold; } @Override public double callerAverageResponseTimeThreshold() { - return 2000; + return averageResponseTimeThreshold; } } diff --git a/apm-collector/apm-collector-core/src/main/resources/application-default.yml b/apm-collector/apm-collector-core/src/main/resources/application-default.yml index 117e7bda49..d86a3b1a88 100644 --- a/apm-collector/apm-collector-core/src/main/resources/application-default.yml +++ b/apm-collector/apm-collector-core/src/main/resources/application-default.yml @@ -33,6 +33,13 @@ analysis_alarm: default: configuration: default: + application_apdex_threshold: 2000 + service_error_rate_threshold: 10.00 + service_average_response_time_threshold: 2000 + instance_error_rate_threshold: 10.00 + instance_average_response_time_threshold: 2000 + application_error_rate_threshold: 10.00 + application_average_response_time_threshold: 2000 ui: jetty: host: localhost -- GitLab