integrations/hbase/documentation.yaml (136 lines of code) (raw):
exporter_type: sidecar
app_name_short: HBase
app_name: Apache {{app_name_short}}
app_site_name: {{app_name}}
app_site_url: https://hbase.apache.org/
exporter_name: the JMX exporter
exporter_pkg_name: jmx-exporter
exporter_repo_url: https://github.com/bitnami/containers/tree/main/bitnami/jmx-exporter
dashboard_available: true
minimum_exporter_version: "0.17.0"
multiple_dashboards: true
config_mods: |
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ name: hbase-exporter
+ data:
+ config.yaml: |
+ hostPort: localhost:9900
+ rules:
+ - pattern: "Hadoop<service=HBase, name=RegionServer, sub=TableLatencies><>Namespace_(\\w+)_table_(\\w+)_metric_(\\w+)"
+ name: "hbase_$3"
+ labels:
+ namespace: "$1"
+ table: "$2"
+ - pattern: "Hadoop<service=HBase, name=RegionServer, sub=Regions><>Namespace_(\\w+)_table_(\\w+)_region(\\W+)_metric_(\\w+)"
+ name: "hbase_$4"
+ labels:
+ namespace: "$1"
+ table: "$2"
+ region: "$3"
+ - pattern: "Hadoop<service=HBase, name=(\\w+), sub=(\\w+)><>(\\w+)"
+ name: "hbase_$1_$2_$3"
+ - pattern: "Hadoop<service=HBase, name=(\\w+)><>(\\w+)"
+ name: "hbase_$1_$2"
+ - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+)><>(\\w+)"
+ type: GAUGE
+ name: "zookeeper_$2"
+ - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+), name1=InMemoryDataTree><>(\\w+)"
+ type: GAUGE
+ name: "zookeeper_$2"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hbase
spec:
selector:
matchLabels:
+ app.kubernetes.io/name: hbase
template:
metadata:
labels:
+ app.kubernetes.io/name: hbase
spec:
containers:
- name: hbase
+ image: dajobe/hbase:latest
ports:
+ - containerPort: 9900
+ name: jmx
env:
+ - name: HBASE_MASTER_OPTS
+ value: -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.rmi.port=9900 -Dcom.sun.management.jmxremote.port=9900
+ - name: jmx-exporter
+ image: bitnami/jmx-exporter:0.17.0
+ command:
+ - java
+ - -jar
+ - jmx_prometheus_httpserver.jar
+ args:
+ - "9000"
+ - config.yaml
+ ports:
+ - containerPort: 9000
+ name: prometheus
+ volumeMounts:
+ - mountPath: /opt/bitnami/jmx-exporter/config.yaml
+ subPath: config.yaml
+ name: hbase-exporter
+ volumes:
+ - name: hbase-exporter
+ configMap:
+ name: hbase-exporter
+ defaultMode: 0644
+ items:
+ - key: config.yaml
+ path: config.yaml
podmonitoring_config: |
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: hbase
labels:
app.kubernetes.io/name: hbase
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
endpoints:
- port: prometheus
scheme: http
interval: 30s
path: /metrics
selector:
matchLabels:
app.kubernetes.io/name: hbase
additional_install_info: |
HBase supports JMX, however, it must be enabled. The best way to enable JMX is
to pass `jmxremote` options to the startup script, usually by
setting the environment variable `HBASE_MASTER_OPTS` or `HBASE_REGIONSERVER_OPTS`.
sample_promql_query: up{job="hbase", cluster="{{cluster_name}}", namespace="{{namespace_name}}"}
alerts_config: |
apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
name: hbase-rules
labels:
app.kubernetes.io/component: rules
app.kubernetes.io/name: hbase-rules
app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
groups:
- name: hbase
interval: 30s
rules:
- alert: HBaseAuthenticationErrors
annotations:
description: |-
HBase authentication errors
VALUE = {{ $value }}
LABELS: {{ $labels }}
summary: HBase authentication errors (instance {{ $labels.instance }})
expr: rate(hbase_RegionServer_IPC_authenticationFailures[5m]) > 5
for: 5m
labels:
severity: warning
additional_alert_info: You can adjust the alert thresholds to suit your application.