----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/62744/#review187100 -----------------------------------------------------------
As part of this review, I think we need to change how the AmbariServerAlertService creates its threadpool for the AlertRunnables: /** * The executor to use to run all {@link Runnable} alert classes. */ private final ScheduledExecutorService m_scheduledExecutorService = Executors.newScheduledThreadPool(3); Can you convert this into a configuration property? With the ability to add Server-side alerts, we need this thread pool to be bigger. - Jonathan Hurley On Oct. 4, 2017, 4:16 a.m., Attila Magyar wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/62744/ > ----------------------------------------------------------- > > (Updated Oct. 4, 2017, 4:16 a.m.) > > > Review request for Ambari, Jonathan Hurley, Nate Cole, and Sebastian Toader. > > > Bugs: AMBARI-22115 > https://issues.apache.org/jira/browse/AMBARI-22115 > > > Repository: ambari > > > Description > ------- > > This is part of AMBARI-22115. We need to define alerts on JMX metrics which > are pulled from a cluster that is not necessarily managed by Ambari. > Therefore alerts can't run on ambari-agent host. I introduced a new SERVER > type alert called JmxServerSideAlert that can pull the jmx metrics from a > arbitrary url. The url comes from the alerts.json and it may contain > placeholders like ${hdfs-site/dfs.namenode.http-address}. This works > similarly than the Python class MetricAlert. > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/alerts/JmxServerSideAlert.java > PRE-CREATION > ambari-server/src/main/java/org/apache/ambari/server/alerts/Threshold.java > PRE-CREATION > > ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java > 81d72fb > ambari-server/src/main/java/org/apache/ambari/server/state/Alert.java > 5d2ecc6 > > ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertUri.java > 93801d5 > > ambari-server/src/main/java/org/apache/ambari/server/state/alert/MetricSource.java > 11eee05 > > ambari-server/src/main/java/org/apache/ambari/server/state/alert/Reporting.java > 4aeba45 > > ambari-server/src/main/java/org/apache/ambari/server/state/alert/ServerSource.java > c58867a > > ambari-server/src/test/java/org/apache/ambari/server/alerts/ThresholdTest.java > PRE-CREATION > > ambari-server/src/test/java/org/apache/ambari/server/controller/jmx/JMXMetricHolderTest.java > PRE-CREATION > > ambari-server/src/test/java/org/apache/ambari/server/state/alert/AlertUriTest.java > PRE-CREATION > > > Diff: https://reviews.apache.org/r/62744/diff/4/ > > > Testing > ------- > > Used the following alerts.json to test it > > { > "ONEFS":{ > "service": [ > { > "name": "onefs_namenode_cpu", > "label": "OneFS NameNode Host CPU Utilization", > "description": "This host-level alert is triggered if CPU utilization > of the NameNode exceeds certain warning and critical thresholds. It checks > the NameNode JMX Servlet for the SystemCPULoad property. The threshold values > are in percent.", > "interval": 1, > "help_url": > "https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Alerts#AmbariAlerts-ambari_agent_heartbeat", > "scope": "HOST", > "enabled": true, > "source": { > "type": "SERVER", > "class": "org.apache.ambari.server.alerts.JmxServerSideAlert", > "uri": { > "http": "${hdfs-site/dfs.namenode.http-address}", > "https": "${hdfs-site/dfs.namenode.https-address}", > "https_property": "${hdfs-site/dfs.http.policy}", > "https_property_value": "HTTPS_ONLY", > "connection_timeout": 5.0 > }, > "reporting": { > "ok": { > "text": "{1} CPU, load {0,number,percent}" > }, > "warning": { > "text": "{1} CPU, load {0,number,percent}", > "value": 5 > }, > "critical": { > "text": "{1} CPU, load {0,number,percent}", > "value": 20 > }, > "units" : "%", > "type": "PERCENT" > }, > "jmx": { > "property_list": [ > "java.lang:type=OperatingSystem/SystemCpuLoad", > "java.lang:type=OperatingSystem/AvailableProcessors" > ] > } > } > } > ] > } > } > 1,1 Top > > > Thanks, > > Attila Magyar > >