@3fv/redis-cluster-monitor 中文文档教程
redis-cluster-monitor
监控任何 Redis 集群,大大简化了 Redis 的开发。
虽然大多数 Redis 桌面工具以及 redis-cli
都支持 monitor
命令,没有工具订阅所有nodes
(masters
& 奴隶
)。
根据您对 Redis cluster-mode
的理解程度,您可能很快 实现无需在所有 nodes
上执行 monitor
然后合并 数据到共享流,调试一致性和; 锁定有点困难。 嗯,问题解决了,redis-cluster-monitor
来了。
它在幕后使用 ioredis
Cluster
客户端,并且有一个 API 以及 CLI 入口 & OOB 与 Amazon AWS Elasticache
配合使用。
Quick Start
npm i -g @3fv/redis-cluster-monitor
# Only required option is `host` or `clusterConfigEndpoint` (aliases)
# Which is a config endpoint for your redis cluster
# LOG FORMAT
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379
>> 2021-11-13T22:03:17-05:00 [172.0.12.116:51565] info [ 'all' ]
# JSON FORMAT
redis-cluster-monitor --format json --host my-elastic-cache-config.amazonaws.com:6379
>> {"timestamp":"2021-11-13T21:52:07-05:00","epoch":1636858327969,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
Extras
有一些很好的演员。
- Regex filtering of commands, keys & values
- Output
log
orjson
format (json
is reallyjsonl
, which is an Object per line)
Examples
# filters are regex compiled, so make sure to escape any values provided
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379 --filter info
# same as
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379 --filter ".*info.*"
# Example of JSON format, filtering for `info`
redis-cluster-monitor -t json --filter info --host my-elastic-cache-config.amazonaws.com:6379
>> {"timestamp":"2021-11-13T22:07:17-05:00","epoch":1636859237962,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
>> {"timestamp":"2021-11-13T22:07:27-05:00","epoch":1636859247962,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
>> {"timestamp":"2021-11-13T22:07:37-05:00","epoch":1636859257963,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
API
检查 RedisClusterMonitorOptions 所有选项。 这是上面 CLI 示例的一个快速示例。
import {
RedisClusterMonitor,
regexMonitorFilter
} from "@3fv/redis-cluster-monitor"
const monitor = new RedisClusterMonitor(
"my-elastic-cache-config.amazonaws.com:6379",
{
filters: [regexMonitorFilter(/info/)],
outputFormat: "json"
}
)
monitor.start().then(() => {
console.log("Monitoring all nodes")
})
redis-cluster-monitor
Monitor any Redis cluster, greatly simplifying development with Redis.
While most of the redis desktop tools as well as redis-cli
support the monitor
command, none of the tools subscribe to all nodes
(masters
& slaves
).
Depending on how well you understand Redis cluster-mode
, you likely are quick to realize that without executing monitor
on all nodes
and then merging the data to a shared stream, debugging consistency & locking is a bit difficult. Well, problem solved, redis-cluster-monitor
is here.
It uses ioredis
Cluster
client under the covers and has an API as well as CLI entry & OOB works with Amazon AWS Elasticache
.
Quick Start
npm i -g @3fv/redis-cluster-monitor
# Only required option is `host` or `clusterConfigEndpoint` (aliases)
# Which is a config endpoint for your redis cluster
# LOG FORMAT
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379
>> 2021-11-13T22:03:17-05:00 [172.0.12.116:51565] info [ 'all' ]
# JSON FORMAT
redis-cluster-monitor --format json --host my-elastic-cache-config.amazonaws.com:6379
>> {"timestamp":"2021-11-13T21:52:07-05:00","epoch":1636858327969,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
Extras
A few nice to have extras.
- Regex filtering of commands, keys & values
- Output
log
orjson
format (json
is reallyjsonl
, which is an Object per line)
Examples
# filters are regex compiled, so make sure to escape any values provided
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379 --filter info
# same as
redis-cluster-monitor --host my-elastic-cache-config.amazonaws.com:6379 --filter ".*info.*"
# Example of JSON format, filtering for `info`
redis-cluster-monitor -t json --filter info --host my-elastic-cache-config.amazonaws.com:6379
>> {"timestamp":"2021-11-13T22:07:17-05:00","epoch":1636859237962,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
>> {"timestamp":"2021-11-13T22:07:27-05:00","epoch":1636859247962,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
>> {"timestamp":"2021-11-13T22:07:37-05:00","epoch":1636859257963,"cmd":"info","args":["all"],"source":"172.0.12.116:51565","database":"0"}
API
Checkout RedisClusterMonitorOptions for all options. Here is a quick example of the CLI example above.
import {
RedisClusterMonitor,
regexMonitorFilter
} from "@3fv/redis-cluster-monitor"
const monitor = new RedisClusterMonitor(
"my-elastic-cache-config.amazonaws.com:6379",
{
filters: [regexMonitorFilter(/info/)],
outputFormat: "json"
}
)
monitor.start().then(() => {
console.log("Monitoring all nodes")
})