@3fv/redis-cluster-monitor 中文文档教程

发布于 3年前 浏览 25 项目主页 更新于 3年前

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 or json format (json is really jsonl, 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 or json format (json is really jsonl, 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")
})
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文