# 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.
# The monitoring type category:service-application service monitoring db-database monitoring mid-middleware custom-custom monitoring os-operating system monitoring
category: cache
# The monitoring type eg: linux windows tomcat mysql aws...
app: redis_cluster
# The monitoring i18n name
name:
zh-CN: Redis Cluster
en-US: Redis Cluster
# The description and help of this monitoring type
help:
zh-CN: Hertzbeat 对 Redis 集群 的通用指标进行采集监控。
您可以点击 “新建 Redis Cluster” 并进行配置,或者选择“更多操作”,导入已有配置。
en-US: Hertzbeat monitors Redis Database Cluster's general performance metrics. You could click the "New Redis Cluster" button and proceed with the configuration or import an existing setup through the "More Actions" menu.
zh-TW: Hertzbeat 對 Redis 集群 的通用指標進行采集監控。
您可以點擊 “新建 Redis Cluster” 並進行配置,或者選擇“更多操作”,導入已有配置。
helpLink:
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/redis_cluster
en-US: https://hertzbeat.apache.org/docs/help/redis_cluster
# Input params define for monitoring(render web ui by the definition)
params:
# field-param field key
- field: host
# name-param field display i18n name
name:
zh-CN: 目标Host
en-US: Target Host
# type-param field type(most mapping the html input type)
type: host
# required-true or false
required: true
# field-param field key
- field: port
# name-param field display i18n name
name:
zh-CN: 端口
en-US: Port
# type-param field type(most mapping the html input type)
type: number
# when type is number, range is required
range: '[0,65535]'
# required-true or false
required: true
# default value
defaultValue: 6379
# field-param field key
- field: timeout
# name-param field display i18n name
name:
zh-CN: 查询超时时间(ms)
en-US: Query Timeout(ms)
# type-param field type(most mapping the html input type)
type: number
# when type is number, range is required
range: '[0,65535]'
# required-true or false
required: false
# default value
defaultValue: 3000
# field-param field key
- field: username
# name-param field display i18n name
name:
zh-CN: 用户名
en-US: Username
# type-param field type(most mapping the html input type)
type: text
# when type is text, use limit to limit string length
limit: 20
# required-true or false
required: false
# field-param field key
- field: password
# name-param field display i18n name
name:
zh-CN: 密码
en-US: Password
# type-param field type(most mapping the html input tag)
type: password
# required-true or false
required: false
# field-param field key
- field: pattern
# name-param field display i18n name
name:
zh-CN: 模式
en-US: Pattern
# type-param field type(most mapping the html input type)
type: number
# required-true or false
required: true
# default value
defaultValue: 3
# hide-is hide this field and put it in advanced layout
hide: true
metrics:
- name: server
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 0
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: redis_version
type: 1
- field: redis_git_sha1
type: 0
- field: redis_git_dirty
type: 0
- field: redis_build_id
type: 1
- field: redis_mode
type: 1
- field: os
type: 1
- field: arch_bits
type: 0
- field: multiplexing_api
type: 1
- field: atomicvar_api
type: 1
- field: gcc_version
type: 1
- field: process_id
type: 0
- field: process_supervised
type: 1
- field: run_id
type: 1
- field: tcp_port
type: 0
- field: server_time_usec
type: 0
- field: uptime_in_seconds
type: 0
- field: uptime_in_days
type: 0
- field: hz
type: 0
- field: configured_hz
type: 0
- field: lru_clock
type: 0
- field: executable
type: 1
- field: config_file
type: 1
- field: io_threads_active
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: clients
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 1
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: connected_clients
type: 0
- field: cluster_connections
type: 0
- field: maxclients
type: 0
- field: client_recent_max_input_buffer
type: 0
- field: client_recent_max_output_buffer
type: 0
- field: blocked_clients
type: 0
- field: tracking_clients
type: 0
- field: clients_in_timeout_table
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: memory
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 2
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: used_memory
type: 0
- field: used_memory_human
type: 0
unit: MB
- field: used_memory_rss
type: 0
- field: used_memory_rss_human
type: 0
unit: MB
- field: used_memory_peak
type: 0
- field: used_memory_peak_human
type: 0
unit: MB
- field: used_memory_peak_perc
type: 0
unit: '%'
- field: used_memory_overhead
type: 0
- field: used_memory_startup
type: 0
- field: used_memory_dataset
type: 0
- field: used_memory_dataset_perc
type: 0
unit: '%'
- field: allocator_allocated
type: 0
- field: allocator_active
type: 0
- field: allocator_resident
type: 0
- field: total_system_memory
type: 0
- field: total_system_memory_human
type: 0
unit: GB
- field: used_memory_lua
type: 0
- field: used_memory_lua_human
type: 0
unit: KB
- field: used_memory_scripts
type: 0
- field: used_memory_scripts_human
type: 0
unit: KB
- field: number_of_cached_scripts
type: 0
- field: maxmemory
type: 0
- field: maxmemory_human
type: 0
unit: MB
- field: maxmemory_policy
type: 1
- field: allocator_frag_ratio
type: 0
- field: allocator_frag_bytes
type: 0
- field: allocator_rss_ratio
type: 0
- field: allocator_rss_bytes
type: 0
- field: rss_overhead_ratio
type: 0
- field: rss_overhead_bytes
type: 0
- field: mem_fragmentation_ratio
type: 0
- field: mem_fragmentation_bytes
type: 0
- field: mem_not_counted_for_evict
type: 0
- field: mem_replication_backlog
type: 0
- field: mem_clients_slaves
type: 0
- field: mem_clients_normal
type: 0
- field: mem_aof_buffer
type: 0
- field: mem_allocator
type: 1
- field: active_defrag_running
type: 0
- field: lazyfree_pending_objects
type: 0
- field: lazyfreed_objects
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: persistence
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 3
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: loading
type: 0
- field: current_cow_size
type: 0
- field: current_cow_size_age
type: 0
- field: current_fork_perc
type: 0
- field: current_save_keys_processed
type: 0
- field: current_save_keys_total
type: 0
- field: rdb_changes_since_last_save
type: 0
- field: rdb_bgsave_in_progress
type: 0
- field: rdb_last_save_time
type: 0
- field: rdb_last_bgsave_status
type: 1
- field: rdb_last_bgsave_time_sec
type: 0
- field: rdb_current_bgsave_time_sec
type: 0
- field: rdb_last_cow_size
type: 0
- field: aof_enabled
type: 0
- field: aof_rewrite_in_progress
type: 0
- field: aof_rewrite_scheduled
type: 0
- field: aof_last_rewrite_time_sec
type: 0
- field: aof_current_rewrite_time_sec
type: 0
- field: aof_last_bgrewrite_status
type: 1
- field: aof_last_write_status
type: 1
- field: aof_last_cow_size
type: 0
- field: module_fork_in_progress
type: 0
- field: module_fork_last_cow_size
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: stats
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 4
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: total_connections_received
type: 0
- field: total_commands_processed
type: 0
- field: instantaneous_ops_per_sec
type: 0
- field: total_net_input_bytes
type: 0
- field: total_net_output_bytes
type: 0
- field: instantaneous_input_kbps
type: 0
- field: instantaneous_output_kbps
type: 0
- field: rejected_connections
type: 0
- field: sync_full
type: 0
- field: sync_partial_ok
type: 0
- field: sync_partial_err
type: 0
- field: expired_keys
type: 0
- field: expired_stale_perc
type: 0
- field: expired_time_cap_reached_count
type: 0
- field: expire_cycle_cpu_milliseconds
type: 0
- field: evicted_keys
type: 0
- field: keyspace_hits
type: 0
- field: keyspace_misses
type: 0
- field: pubsub_channels
type: 0
- field: pubsub_patterns
type: 0
- field: latest_fork_usec
type: 0
- field: total_forks
type: 0
- field: migrate_cached_sockets
type: 0
- field: slave_expires_tracked_keys
type: 0
- field: active_defrag_hits
type: 0
- field: active_defrag_misses
type: 0
- field: active_defrag_key_hits
type: 0
- field: active_defrag_key_misses
type: 0
- field: tracking_total_keys
type: 0
- field: tracking_total_items
type: 0
- field: tracking_total_prefixes
type: 0
- field: unexpected_error_replies
type: 0
- field: total_error_replies
type: 0
- field: dump_payload_sanitizations
type: 0
- field: total_reads_processed
type: 0
- field: total_writes_processed
type: 0
- field: io_threaded_reads_processed
type: 0
- field: io_threaded_writes_processed
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: replication
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 5
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: role
type: 1
- field: connected_slaves
type: 0
- field: master_failover_state
type: 1
- field: master_replid
type: 1
- field: master_replid2
type: 0
- field: master_repl_offset
type: 0
- field: second_repl_offset
type: 0
- field: repl_backlog_active
type: 0
- field: repl_backlog_size
type: 0
- field: repl_backlog_first_byte_offset
type: 0
- field: repl_backlog_histlen
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: cpu
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 6
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: used_cpu_sys
type: 0
- field: used_cpu_user
type: 0
- field: used_cpu_sys_children
type: 0
- field: used_cpu_user_children
type: 0
- field: used_cpu_sys_main_thread
type: 0
- field: used_cpu_user_main_thread
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: errorstats
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 8
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: errorstat_ERR
type: 1
- field: errorstat_MISCONF
type: 1
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: cluster
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 9
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: cluster_enabled
type: 0
- field: cluster_state
type: 1
- field: cluster_slots_assigned
type: 0
- field: cluster_slots_ok
type: 0
- field: cluster_slots_pfail
type: 0
- field: cluster_slots_fail
type: 0
- field: cluster_known_nodes
type: 0
- field: cluster_size
type: 0
- field: cluster_current_epoch
type: 0
- field: cluster_my_epoch
type: 0
- field: cluster_stats_messages_ping_sent
type: 0
- field: cluster_stats_messages_pong_sent
type: 0
- field: cluster_stats_messages_sent
type: 0
- field: cluster_stats_messages_ping_received
type: 0
- field: cluster_stats_messages_pong_received
type: 0
- field: cluster_stats_messages_meet_received
type: 0
- field: cluster_stats_messages_received
type: 0
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: commandstats
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 9
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: cmdstat_set
type: 1
- field: cmdstat_get
type: 1
- field: cmdstat_setnx
type: 1
- field: cmdstat_hset
type: 1
- field: cmdstat_hget
type: 1
- field: cmdstat_lpush
type: 1
- field: cmdstat_rpush
type: 1
- field: cmdstat_lpop
type: 1
- field: cmdstat_rpop
type: 1
- field: cmdstat_llen
type: 1
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^
- name: keyspace
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
priority: 9
fields:
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
- field: identity
type: 1
- field: db0
type: 1
- field: db1
type: 1
- field: db2
type: 1
- field: db3
type: 1
- field: db4
type: 1
- field: db5
type: 1
- field: db6
type: 1
- field: db7
type: 1
- field: db8
type: 1
- field: db9
type: 1
- field: db10
type: 1
- field: db11
type: 1
- field: db12
type: 1
- field: db13
type: 1
- field: db14
type: 1
- field: db15
type: 1
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
protocol: redis
# the config content when protocol is redis
redis:
# redis host: ipv4 ipv6 host
host: ^_^host^_^
# redis port
port: ^_^port^_^
# username
username: ^_^username^_^
# password
password: ^_^password^_^
# timeout unit:ms
timeout: ^_^timeout^_^
pattern: ^_^pattern^_^