http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_client.py b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_client.py new file mode 100644 index 0000000..c4943fe --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_client.py @@ -0,0 +1,38 @@ +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Ambari Agent + +""" + +# Python Imports + +# Local Imports +from resource_management.libraries.script.dummy import Dummy + + +class HBaseClient(Dummy): + """ + Dummy script that simulates a client component. + """ + + def __init__(self): + super(HBaseClient, self).__init__() + self.component_name = "HBASE_CLIENT" + +if __name__ == "__main__": + HBaseClient().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_master.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_master.py b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_master.py new file mode 100644 index 0000000..7ea42ab --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_master.py @@ -0,0 +1,41 @@ +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Ambari Agent + +""" + +# Python Imports + +# Local Imports +from resource_management.libraries.script.dummy import Dummy + + +class HBaseMaster(Dummy): + """ + Dummy script that simulates a master component. + """ + + def __init__(self): + super(HBaseMaster, self).__init__() + self.component_name = "HBASE_MASTER" + + def decommission(self, env): + print "Decommission" + +if __name__ == "__main__": + HBaseMaster().execute() http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_regionserver.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_regionserver.py b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_regionserver.py new file mode 100644 index 0000000..a866715 --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/hbase_regionserver.py @@ -0,0 +1,41 @@ +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Ambari Agent + +""" + +# Python Imports + +# Local Imports +from resource_management.libraries.script.dummy import Dummy + + +class HBaseRegionServer(Dummy): + """ + Dummy script that simulates a slave component. + """ + + def __init__(self): + super(HBaseRegionServer, self).__init__() + self.component_name = "HBASE_REGIONSERVER" + + def decommission(self, env): + print "Decommission" + +if __name__ == "__main__": + HBaseRegionServer().execute() http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/phoenix_queryserver.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/phoenix_queryserver.py b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/phoenix_queryserver.py new file mode 100644 index 0000000..9cf3cec --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/phoenix_queryserver.py @@ -0,0 +1,38 @@ +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Ambari Agent + +""" + +# Python Imports + +# Local Imports +from resource_management.libraries.script.dummy import Dummy + + +class PhoenixQueryServer(Dummy): + """ + Dummy script that simulates a slave component. + """ + + def __init__(self): + super(PhoenixQueryServer, self).__init__() + self.component_name = "PHOENIX_QUERY_SERVER" + +if __name__ == "__main__": + PhoenixQueryServer().execute() http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/service_check.py b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/service_check.py new file mode 100644 index 0000000..66571f8 --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/package/scripts/service_check.py @@ -0,0 +1,30 @@ +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Ambari Agent + +""" + +from resource_management.libraries.script.script import Script + +class ServiceCheck(Script): + + def service_check(self, env): + print "Service Check" + +if __name__ == "__main__": + ServiceCheck().execute() \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/quicklinks/quicklinks.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/quicklinks/quicklinks.json b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/quicklinks/quicklinks.json new file mode 100644 index 0000000..5568122 --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/quicklinks/quicklinks.json @@ -0,0 +1,97 @@ +{ + "name": "default", + "description": "default quick links configuration", + "configuration": { + "protocol": + { + "type":"http" + }, + + "links": [ + { + "name": "hbase_master_ui", + "label": "HBase Master UI", + "url":"%@://%@:%@/master-status", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "hbase_logs", + "label": "HBase Logs", + "url":"%@://%@:%@/logs", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "zookeeper_info", + "label": "Zookeeper Info", + "url":"%@://%@:%@/zk.jsp", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "hbase_master_jmx", + "label": "HBase Master JMX", + "url":"%@://%@:%@/jmx", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "debug_dump", + "label": "Debug Dump", + "url":"%@://%@:%@/dump", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "thread_stacks", + "label": "Thread Stacks", + "url":"%@://%@:%@/stacks", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + } + ] + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/themes/theme.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/themes/theme.json b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/themes/theme.json new file mode 100644 index 0000000..7a5732b --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/themes/theme.json @@ -0,0 +1,411 @@ +{ + "name": "default", + "description": "Default theme for HBASE service", + "configuration": { + "layouts": [ + { + "name": "default", + "tabs": [ + { + "name": "settings", + "display-name": "Settings", + "layout": { + "tab-columns": "3", + "tab-rows": "3", + "sections": [ + { + "name": "section-hbase-memory", + "display-name": "Server", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "2", + "section-columns": "2", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-memory-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-memory-col2", + "row-index": "0", + "column-index": "1", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-client", + "display-name": "Client", + "row-index": "0", + "column-index": "2", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-client-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-disk", + "display-name": "Disk", + "row-index": "1", + "column-index": "0", + "row-span": "1", + "column-span": "3", + "section-columns": "3", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-disk-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-disk-col2", + "row-index": "0", + "column-index": "1", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-disk-col3", + "row-index": "0", + "column-index": "2", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-timeouts", + "display-name": "Timeouts", + "row-index": "2", + "column-index": "0", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-timeouts-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-security", + "display-name": "Security", + "row-index": "2", + "column-index": "1", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-security-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-phoenix", + "display-name": "Phoenix SQL", + "row-index": "2", + "column-index": "2", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-phoenix-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + } + ] + } + } + ] + } + ], + "placement": { + "configuration-layout": "default", + "configs": [ + { + "config": "hbase-env/hbase_master_heapsize", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-env/hbase_regionserver_heapsize", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-site/hfile.block.cache.size", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-site/hbase.regionserver.global.memstore.upperLimit", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-site/hbase.hregion.memstore.flush.size", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.hregion.memstore.block.multiplier", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.regionserver.handler.count", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.client.retries.number", + "subsection-name": "subsection-hbase-client-col1" + }, + { + "config": "hbase-site/hbase.client.keyvalue.maxsize", + "subsection-name": "subsection-hbase-client-col1" + }, + { + "config": "hbase-site/hbase.hregion.max.filesize", + "subsection-name": "subsection-hbase-disk-col1" + }, + { + "config": "hbase-site/hbase.hregion.majorcompaction", + "subsection-name": "subsection-hbase-disk-col2" + }, + { + "config": "hbase-site/hbase.hstore.compaction.max", + "subsection-name": "subsection-hbase-disk-col3" + }, + { + "config": "hbase-site/zookeeper.session.timeout", + "subsection-name": "subsection-hbase-timeouts-col1" + }, + { + "config": "hbase-site/hbase.rpc.timeout", + "subsection-name": "subsection-hbase-timeouts-col1" + }, + { + "config": "hbase-site/hbase.security.authentication", + "subsection-name": "subsection-hbase-security-col1" + }, + { + "config": "hbase-site/hbase.security.authorization", + "subsection-name": "subsection-hbase-security-col1" + }, + { + "config": "hbase-env/phoenix_sql_enabled", + "subsection-name": "subsection-hbase-phoenix-col1" + }, + { + "config": "hbase-site/phoenix.query.timeoutMs", + "subsection-name": "subsection-hbase-phoenix-col1" + } + ] + }, + "widgets": [ + { + "config": "hbase-env/hbase_master_heapsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-env/hbase_regionserver_heapsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-site/hfile.block.cache.size", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "percent" + } + ] + } + }, + { + "config": "hbase-site/hbase.regionserver.global.memstore.upperLimit", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "percent" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.memstore.flush.size", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "MB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.memstore.block.multiplier", + "widget": { + "type": "combo" + } + }, + { + "config": "hbase-site/hbase.regionserver.handler.count", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "int" + } + ] + } + }, + { + "config": "hbase-site/hbase.client.retries.number", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "int" + } + ] + } + }, + { + "config": "hbase-site/hbase.client.keyvalue.maxsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "MB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.max.filesize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.majorcompaction", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "days,hours" + } + ] + } + }, + { + "config": "hbase-site/hbase.hstore.compaction.max", + "widget": { + "type": "combo" + } + }, + { + "config": "hbase-site/zookeeper.session.timeout", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + }, + { + "config": "hbase-site/hbase.rpc.timeout", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + }, + { + "config": "hbase-site/hbase.security.authentication", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-site/hbase.security.authorization", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-env/phoenix_sql_enabled", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-site/phoenix.query.timeoutMs", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + } + ] + } +} + http://git-wip-us.apache.org/repos/asf/ambari/blob/08ca96e3/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/widgets.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/widgets.json b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/widgets.json new file mode 100644 index 0000000..ae47833 --- /dev/null +++ b/ambari-server/src/main/resources/stacks/PERF/1.0/services/HBASE/widgets.json @@ -0,0 +1,510 @@ +{ + "layouts": [ + { + "layout_name": "default_hbase_dashboard", + "display_name": "Standard HBase Dashboard", + "section_name": "HBASE_SUMMARY", + "widgetLayoutInfo": [ + { + "widget_name": "Reads and Writes", + "description": "Rate (per second) of read and write requests on all regions in the cluster.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Get_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Get_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.ScanNext_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/ScanNext_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Append_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Append_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Delete_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Delete_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Increment_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Increment_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Mutate_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Mutate_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Read Requests", + "value": "${regionserver.Server.Get_num_ops._rate + regionserver.Server.ScanNext_num_ops._rate}" + }, + { + "name": "Write Requests", + "value": "${regionserver.Server.Append_num_ops._rate + regionserver.Server.Delete_num_ops._rate + regionserver.Server.Increment_num_ops._rate + regionserver.Server.Mutate_num_ops._rate}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Read Latency", + "description": "maximum of 95% read latency.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Get_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Get_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.ScanNext_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/ScanNext_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Cluster wide maximum of 95% Get Latency", + "value": "${regionserver.Server.Get_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% ScanNext Latency", + "value": "${regionserver.Server.ScanNext_95th_percentile._max}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Write Latency", + "description": "maximum of 95% write latency.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Mutate_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Mutate_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Increment_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Increment_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Append_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Append_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Delete_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Delete_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Cluster wide maximum of 95% Mutate Latency", + "value": "${regionserver.Server.Mutate_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Increment Latency", + "value": "${regionserver.Server.Increment_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Append Latency", + "value": "${regionserver.Server.Append_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Delete Latency", + "value": "${regionserver.Server.Delete_95th_percentile._max}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Open Connections", + "description": "Count of open connections across all RegionServer. This is indicative of RegionServer load in the cluster.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.RegionServer.numOpenConnections._sum", + "metric_path": "metrics/hbase/ipc/IPC/numOpenConnections._sum", + "category": "", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Open Connections", + "value": "${regionserver.RegionServer.numOpenConnections._sum}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Request Handlers", + "description": "Count of Active handlers vs count of calls waiting in the general queue.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.RegionServer.numActiveHandler._sum", + "metric_path": "metrics/hbase/ipc/IPC/numActiveHandler._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.RegionServer.numCallsInGeneralQueue._sum", + "metric_path": "metrics/hbase/ipc/IPC/numCallsInGeneralQueue._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Active Handlers", + "value": "${regionserver.RegionServer.numActiveHandler._sum}" + }, + { + "name": "Calls in General Queue", + "value": "${regionserver.RegionServer.numCallsInGeneralQueue._sum}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Files Local", + "description": "Average percentage of local files to RegionServer in the cluster.", + "widget_type": "NUMBER", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.percentFilesLocal", + "metric_path": "metrics/hbase/regionserver/Server/percentFilesLocal", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Files Local", + "value": "${regionserver.Server.percentFilesLocal}" + } + ], + "properties": { + "display_unit": "%", + "error_threshold":"25", + "warning_threshold": "75" + } + }, + { + "widget_name": "Blocked Updates", + "description": "Number of milliseconds updates have been blocked so the memstore can be flushed.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.updatesBlockedTime._rate", + "metric_path": "metrics/hbase/regionserver/Server/updatesBlockedTime._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Updates Blocked Time", + "value": "${regionserver.Server.updatesBlockedTime._rate}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Cluster CPU", + "description": "Percentage of CPU utilized across all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "cpu_system._sum", + "metric_path": "metrics/cpu/cpu_system._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_user._sum", + "metric_path": "metrics/cpu/cpu_user._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_nice._sum", + "metric_path": "metrics/cpu/cpu_nice._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_idle._sum", + "metric_path": "metrics/cpu/cpu_idle._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_wio._sum", + "metric_path": "metrics/cpu/cpu_wio._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "CPU utilization", + "value": "${((cpu_system._sum + cpu_user._sum + cpu_nice._sum)/(cpu_system._sum + cpu_user._sum + cpu_nice._sum + cpu_idle._sum + cpu_wio._sum)) * 100}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1", + "display_unit": "%" + } + }, + { + "widget_name": "Cluster Network", + "description": "Average of Network IO utilized across all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "pkts_in._avg", + "metric_path": "metrics/network/pkts_in._avg", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "pkts_out._avg", + "metric_path": "metrics/network/pkts_out._avg", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Packets In", + "value": "${pkts_in._avg}" + }, + { + "name": "Packets Out", + "value": "${pkts_out._avg}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Cluster Disk", + "description": "Sum of disk throughput for all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "read_bps._sum", + "metric_path": "metrics/disk/read_bps._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "write_bps._sum", + "metric_path": "metrics/disk/write_bps._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Read throughput", + "value": "${read_bps._sum/1048576}" + }, + { + "name": "Write throughput", + "value": "${write_bps._sum/1048576}" + } + ], + "properties": { + "display_unit": "Mbps", + "graph_type": "LINE", + "time_range": "1" + } + } + ] + }, + { + "layout_name": "default_hbase_heatmap", + "display_name": "HBase Heatmaps", + "section_name": "HBASE_HEATMAPS", + "widgetLayoutInfo": [ + { + "widget_name": "HBase Compaction Queue Size", + "description": "", + "widget_type": "HEATMAP", + "is_visible": true, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.compactionQueueLength", + "metric_path": "metrics/hbase/regionserver/compactionQueueSize", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Compaction Queue Size", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.compactionQueueLength} " + } + ], + "properties": { + "display_unit": "", + "max_limit": "10" + } + }, + { + "widget_name": "HBase Memstore Sizes", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.memStoreSize", + "metric_path": "metrics/hbase/regionserver/memstoreSize", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Memstore Sizes", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.memStoreSize}" + } + ], + "properties": { + "display_unit": "B", + "max_limit": "104857600" + } + }, + { + "widget_name": "HBase Read Request Count", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.readRequestCount", + "metric_path": "metrics/hbase/regionserver/readRequestsCount", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Read Request Count", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.readRequestCount}" + } + ], + "properties": { + "max_limit": "200" + } + }, + { + "widget_name": "HBase Write Request Count", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.writeRequestCount", + "metric_path": "metrics/hbase/regionserver/writeRequestsCount", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Write Request Count", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.writeRequestCount}" + } + ], + "properties": { + "max_limit": "200" + } + }, + { + "widget_name": "HBase Regions", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.regionCount", + "metric_path": "metrics/hbase/regionserver/regions", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Regions", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.regionCount}" + } + ], + "properties": { + "max_limit": "10" + } + } + ] + } + ] +}
