Giter Club home page Giter Club logo

kafka-kit's Introduction

testing

Kafka topic management tools

Read the blog post: Introducing Kafka-Kit: Tools for Scaling Kafka

This repository contains several services and tools for that help better operate Kafka. See the README for each tool for further details.

topicmappr

Topicmappr replaces and extends the kafka-reassign-partition tool bundled with Kafka. It allows for minimal movement broker replacements, cluster storage rebalancing / partition bin-packing, leadership optimization, many-at-once topic management, and more—all with rack awareness support.

README

registry

A gRPC+HTTP API service for Kafka that allows granular resource (topics, brokers) lookup and management with custom tagging support.

README

autothrottle

A service that automatically paces Kafka replication/recovery throttle rates, powered with metrics using the Datadog API.

README

metricsfetcher

A utility that fetches metrics via the Datadog API for Kafka storage rebalancing and partition mapping with topicmappr.

README

Building

All tools/services will likely build on recent versions of MacOS and Go: go install ./cmd/....

A Docker based environment is available for repeatable linux builds and local testing. This will setup a Kafka environment with a running Registry instance from which all other Kafka-Kit tools will be available:

$ make run-compose
docker-compose build
zookeeper uses an image, skipping
kafka uses an image, skipping
Building ssl_setup
[+] Building 0.5s (15/15) FINISHED
[...build output...]

$ docker exec -ti kafka-kit_registry_1 bash
root@280ae6597b9b:/go/src/github.com/DataDog/kafka-kit# which topicmappr registry autothrottle metricsfetcher
/go/bin/topicmappr
/go/bin/registry
/go/bin/autothrottle
/go/bin/metricsfetcher

root@280ae6597b9b:/go/src/github.com/DataDog/kafka-kit# curl -s localhost:8080/v1/topics/list | jq
{
  "topics": {},
  "names": [
    "__consumer_offsets"
  ]
}

When finished, make stop-compose will tear down the environment.

Development

See the Development Guide for testing and contributing changes.

kafka-kit's People

Contributors

jamiealquiza avatar mborst avatar scanterog avatar zrosenberg avatar kravisha91 avatar dopuskh3 avatar lizthegrey avatar abolibibelot avatar davidrusu avatar bpineau avatar nmlc avatar tompowell-dd 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.