Code Monkey home page Code Monkey logo

redis-hawk's Introduction

redis-hawk

redis-hawk is an easy-to-use monitoring and visualizing web application for understanding granular key-level details for your Redis deployment.

It can be deployed locally on your desktop or on a server for continuous and remote monitoring of your Redis deployment.

Table of Contents

Features

redis-hawk allows you to monitor the keyspace and its events within all databases of any number of deployed instances.

  • View details on every keyspace in your Redis deployment
  • View a log of keyspace events occuring in every keyspace
  • View graphs to understand both key and event volumes over time
  • Utilize flexible filters to filter based on a keyname pattern, specific data type, and/or event type.

Demo

With redis-hawk you can:

Access keyspace information and visualize trends

click-through-pages-gif

View all databases for all instances of your deployment

instance-and-databases-for-events

Filter by key names, event types, or data types

filtering-and-refreshing-events

Customize your keyspace view

filtering-pagination-on-keyspace

Filter, zoom, and pan through your graphs

filtering-zooming-on-graph

Installation

redis-hawk is a web application that you can either run locally or deploy on a server for continuous and remote monitoring.

To install:

npm install

then, either

npm run build
npm start

OR

npm run dev

Then, please configure your redis-hawk monitoring options as decribed in the subsequent Configuration section.

Configuration

Currently, configuration for your redis-hawk monitoring deployment must be managed via a config.json, located in the root directory of the repository. We will aim to support configuration directly via the web application in the near future.

We support connecting via either a host/port combination or via a conenction URL. Using one option is required to monitor an instance.


Field Description
host (string) IP address of the Redis server
port (number) Port of the Redis server
url (string) URL of the Redis server. The format should be [redis[s]:]//[[user][:password@]][host][:port][/db-number][?db=db-number[&password=bar[&option=value]]]. For more information, please reference IANA.
recordKeyspaceHistoryFrequency (number) The frequency at which keyspace histories should be recorded, in milliseconds. For more information, please see the configuration notes below.

The config.json defaults to monitoring the default local Redis instance via the following configuration options:

{
  "host": "127.0.0.1",
  "port": 6379,
  "recordKeyspaceHistoryFrequency": 60000
}

Notes:

  • If setting recordKeyspaceHistoryFrequency to sub-minute frequencies or deployments with extensively high key volumes, please consider the impact on the performance for both your server and monitored Redis deployment.
    • Every recordKeyspaceHistoryFrequency milliseconds, the server will perform a non-blocking redis SCAN command against each database of the instance to record a snapshot of keyspace details.
    • While the SCAN command is non-blocking and rapid, it may have performance impacts for your Redis deployment if utilized very frequently for larger Redis deployments.
    • For more details on SCAN performance and behavior, please read the Redis documentation.

Feature Roadmap

The development team intends to continue improving redis-hawk and adding more features. Future features will include:

  • Ability to configure monitoring preferences directly via the redis-hawk UI.
  • Ability to configure maximum volumes of events and keyspace histories to record.
  • Additional graphs, such as viewing memory usage by keys over time
  • Additional database-level and instance-level metrics, such as overall memory usage and average key TTL
  • Performance recommendations based on observed metrics and patterns in your Redis deployment

redis-hawk's People

Contributors

amgjurich avatar jespy2 avatar swattoboe avatar wesleyjia34 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.