Git Product home page Git Product logo

rumour's Introduction

Rumour

GoDoc Build Status Go Report Card

Rumour is a leaner, meaner and more easily configurable version of LinkedIn's Burrow. It is a small binary which can perform continuous monitoring tasks of Apache Kafka consumer states, offsets and lags.

Setup

Download the latest release from GitHub or run it directly via Docker:

docker run --rm \
  -e RUMOUR_CLUSTERS=default \
  -e RUMOUR_DEFAULT_BROKERS=kafka:9092 \
  blacksquaremedia/rumour:latest

Configuration

All configuration is done via ENV variables. The main configuration parameters are:

  • RUMOUR_CLUSTERS - a comma-separated list of cluster names to monitor. Default: default
  • RUMOUR_HTTP_ADDR - the address to listen on. Default: :8080.
  • RUMOUR_LOG_LEVEL - the log level. Default: info.
  • RUMOUR_LOG_JSON - use JSON format. Default: false.
  • RUMOUR_LOG_TAGS - additional logging tags as comma-separated map key1:value,key1:value. Default: none.

Additonal configuration can be specified for each of the named clusters using the RUMOUR_{cluster}_ prefix.

  • RUMOUR_{cluster}_BROKERS - a comma-separated list of broker addresses.
  • RUMOUR_{cluster}_META_REFRESH - metadata refresh interval. Default: 180s.
  • RUMOUR_{cluster}_OFFSET_REFRESH - offset refresh interval. Default: 30s.

Example:

RUMOUR_CLUSTERS=main,prio \
RUMOUR_MAIN_BROKERS=10.0.0.1:9092,10.0.0.2:9092,10.0.0.3:9092 \
RUMOUR_PRIO_BROKERS=10.0.0.1:9192,10.0.0.2:9192,10.0.0.3:9192 \
RUMOUR_PRIO_META_REFRESH=120s \
./rumour

Integrations

  • datadog - a Datadog check to pull metrics out of Rumour and push them to Datadog.

API

Rumour exposes metrics via a HTTP API for data collectors. It is loosely based on Burrow's HTTP endpoints.

Error Responses

For bad requests, the API will return an appropriate HTTP status code and a JSON body containing:

{
  "error": true,
  "message": "Full error message"
}

Endpoints

Health check:

GET /healthz

List clusters:

GET /v1/clusters
{
  "clusters": ["main", "prio"]
}

Show cluster details:

GET /v1/clusters/NAME
{
  "cluster": "main",
  "brokers": ["10.0.0.1:9092", "10.0.0.2:9092", "10.0.0.3:9092"],
  "topics": ["my-topic"],
  "consumers": ["consumer-x", "consumer-y"]
}

Show cluster topics:

GET /v1/clusters/NAME/topics
{
  "cluster": "main",
  "topics": ["my-topic"]
}

Show cluster consumers:

GET /v1/clusters/NAME/consumers
{
  "cluster": "main",
  "consumers": ["consumer-x", "consumer-y"]
}

Show topic:

GET /v1/clusters/NAME/topics/TOPIC
{
  "cluster": "main",
  "topic": "my-topic",
  "offsets": [1041, 1042, 1043, 1044]
}

Show consumer:

GET /v1/clusters/NAME/consumers/GROUP
{
  "cluster": "main",
  "consumer": "consumer-x",
  "topics": [
    {
      "topic": "my-topic",
      "timestamp": 1515151515,
      "offsets": [
        { "offset": 1037, "lag": 4 },
        { "offset": 1041, "lag": 1 },
        { "offset": 1029, "lag": 14 },
        { "offset": 1044, "lag": 0 }
      ]
    }
  ]
}

rumour's People

Contributors

dim avatar mxmcherry 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.