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 7c77423bbc952e9c479130969f170c71219e600d..dfbc142e78dc6a5037038b0e7b744e0cb73d3fd4 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 1a7847ecd5cb1a5452dc4e703a3932d16e90e5b1..eb0c95e4532eaaf01fcac3ba0488b4f789457c96 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 1d9225b7c78295ad43232b7fc2c003807961b3e5..5b841096e92d5293b1ae7410d90a607b9a62d1a7 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 99ae3a5c5037510f2d204ae8aa765f332e65493a..53ec719363b51e93940f5586ffea23f490ea4ae1 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 fb073cb68dd71a71df84b1bded4ae0b0a0ec3474..0e9ef86cb84f2d87a51dfc34afb72d96ba51bd9c 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 51b019f66cca74650a37d3badae263da4cbe4b30..3f3122346481cb5d0047f0bd1a40e11d137b0c86 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 9c07b20c434eb76768eef526e214dc9631aabd5a..6076ee72569cd1d6709113e9ee2172f6118b69ab 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 b2251a3e5f5b6f419234a1bc85c25679c4baf5dd..ae4e04f47b005ae2c1a99fe068d05910844e7763 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 4b9285d7591dd84a17b16f9a1126a9d899095519..0fba6fa4e8b7df1cea3c04f5c397e4a4885aeb0f 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 117e7bda4973463e764fab3506e312dc608dfb4f..d86a3b1a88362e12deccdd85eeaf68cf0431860d 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