========================================
kafka-overwatch
========================================
What started as a simple CLI/Service to evaluate Kafka cluster topics which have no activity,
ended up being a somewhat comprehensive way to monitor Kafka cluster activities.
Takes a configuration file as input, where you can list one or multiple cluster(s) you wish to monitor.
After a set period of time, it can produce a report (to local disk or AWS S3) with the list of topics that haven't seen any activity.
It also exposes metrics via a prometheus endpoint.
Usage
========
.. code-block::
kafka-overwatch -c config.local.yaml
Features
==========
* Supports evaluating multiple Kafka clusters at once
* Generates a report on topic usage based on topic watermarks offsets (store local or to S3)
* Generates commands script to re-create all the topics in case of DR (store local or to S3)
* Exposes metrics via prometheus
* Topics count
* Partitions count
* Number of new messages (measured with topic offsets)
* AWS Secret integration for client config values
Upcoming
----------
* Schema Registry integration
* Multi-nodes awareness (split the load with multiple nodes)
* `cfn-kafka-admin`_ output format
* topic messages meta-data analysis (i.e are messages compressed?)
* scripts to perform cleanup
* Recommendations generated from/based on models
* Conduktor Gateway vClusters auto-discovery
Configuration
===============
Whilst a much more comprehensive documentation is yet to be written, please look at ``kafka_overwatch/specs/config.json``
which is used with `jsonschema`_ to perform validation of the input.
Misc
=====
Thanks
-------
Thanks to the Apache Kafka OpenSource community for their continuous efforts in making the eco-system great.
Thanks to the `NASA`_ for having a public cluster to run tests with
Note
-----
Inspired by `kafka-idle-topics`_, yet completely re-written to be a continuous monitoring of the topics,
similar to `cruise-control`_.
.. _EMF: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html
.. _kafka-idle-topics: https://github.com/abraham-leal/kafka-idle-topics
.. _cfn-kafka-admin: https://github.com/compose-x/cfn-kafka-admin
.. _cruise-control: https://github.com/linkedin/cruise-control
.. _jsonschema: https://pypi.org/project/jsonschema/
.. _NASA: https://www.nasa.gov/
Status
=======
Images build status
|BUILD|
Docs build status
|DOCS_BUILD|
.. |BUILD| image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiU3RHQnZ2eFpnQTlOSmU2MUM3NDB5NW9uMDY2TS9DZXBWZ2hmejdoK2xJRStHK2Fhd3FkS1FoQjJOSTcvYjVBNkFTTW5kVDNZK0NqZEthU3gveFpOVEljPSIsIml2UGFyYW1ldGVyU3BlYyI6IjlUbE0vNmpPQU92U1o0SmkiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main
.. |DOCS_BUILD| image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiSVNBZkVSUkx1NHhtamlqSEJqempIdHd2aVNqV2RkTTFVYlphUzJ2ekprOVU4ODZ4cUNWcTNVSkRVM2ovcGFyak5NTTNJZ1Vra2ErSzVOdi84TkVLOUp3PSIsIml2UGFyYW1ldGVyU3BlYyI6IjAvK25MSmNPcjNScVpwdTQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main
Raw data
{
"_id": null,
"home_page": null,
"name": "kafka-overwatch",
"maintainer": "John \"Preston\" Mille",
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": "john@ews-network.net",
"keywords": "kafka, monitoring, reporting, usage-analysis, cost-savings",
"author": "John \"Preston\" Mille",
"author_email": "john@ews-network.net",
"download_url": "https://files.pythonhosted.org/packages/8b/39/de4d540df5ebcfccbf074fe7d9f2c1d5be98b2933abc6d37fc1b5e3325e9/kafka_overwatch-0.4.0.tar.gz",
"platform": null,
"description": "========================================\nkafka-overwatch\n========================================\n\nWhat started as a simple CLI/Service to evaluate Kafka cluster topics which have no activity,\nended up being a somewhat comprehensive way to monitor Kafka cluster activities.\n\nTakes a configuration file as input, where you can list one or multiple cluster(s) you wish to monitor.\n\nAfter a set period of time, it can produce a report (to local disk or AWS S3) with the list of topics that haven't seen any activity.\nIt also exposes metrics via a prometheus endpoint.\n\nUsage\n========\n\n.. code-block::\n\n kafka-overwatch -c config.local.yaml\n\nFeatures\n==========\n\n* Supports evaluating multiple Kafka clusters at once\n* Generates a report on topic usage based on topic watermarks offsets (store local or to S3)\n* Generates commands script to re-create all the topics in case of DR (store local or to S3)\n\n* Exposes metrics via prometheus\n\n * Topics count\n * Partitions count\n * Number of new messages (measured with topic offsets)\n\n* AWS Secret integration for client config values\n\nUpcoming\n----------\n\n* Schema Registry integration\n* Multi-nodes awareness (split the load with multiple nodes)\n* `cfn-kafka-admin`_ output format\n* topic messages meta-data analysis (i.e are messages compressed?)\n* scripts to perform cleanup\n* Recommendations generated from/based on models\n* Conduktor Gateway vClusters auto-discovery\n\n\nConfiguration\n===============\n\nWhilst a much more comprehensive documentation is yet to be written, please look at ``kafka_overwatch/specs/config.json``\nwhich is used with `jsonschema`_ to perform validation of the input.\n\nMisc\n=====\n\nThanks\n-------\n\nThanks to the Apache Kafka OpenSource community for their continuous efforts in making the eco-system great.\nThanks to the `NASA`_ for having a public cluster to run tests with\n\nNote\n-----\n\nInspired by `kafka-idle-topics`_, yet completely re-written to be a continuous monitoring of the topics,\nsimilar to `cruise-control`_.\n\n.. _EMF: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Specification.html\n.. _kafka-idle-topics: https://github.com/abraham-leal/kafka-idle-topics\n.. _cfn-kafka-admin: https://github.com/compose-x/cfn-kafka-admin\n.. _cruise-control: https://github.com/linkedin/cruise-control\n.. _jsonschema: https://pypi.org/project/jsonschema/\n.. _NASA: https://www.nasa.gov/\n\n\nStatus\n=======\n\nImages build status\n\n|BUILD|\n\nDocs build status\n\n|DOCS_BUILD|\n\n\n.. |BUILD| image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiU3RHQnZ2eFpnQTlOSmU2MUM3NDB5NW9uMDY2TS9DZXBWZ2hmejdoK2xJRStHK2Fhd3FkS1FoQjJOSTcvYjVBNkFTTW5kVDNZK0NqZEthU3gveFpOVEljPSIsIml2UGFyYW1ldGVyU3BlYyI6IjlUbE0vNmpPQU92U1o0SmkiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main\n\n.. |DOCS_BUILD| image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiSVNBZkVSUkx1NHhtamlqSEJqempIdHd2aVNqV2RkTTFVYlphUzJ2ekprOVU4ODZ4cUNWcTNVSkRVM2ovcGFyak5NTTNJZ1Vra2ErSzVOdi84TkVLOUp3PSIsIml2UGFyYW1ldGVyU3BlYyI6IjAvK25MSmNPcjNScVpwdTQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main\n",
"bugtrack_url": null,
"license": "MPL-2.0",
"summary": "Continuously monitors Kafka cluster topics & consumer groups",
"version": "0.4.0",
"project_urls": {
"Bug Tracker": "https://github.com/JohnPreston/kafka-overwatch/issues"
},
"split_keywords": [
"kafka",
" monitoring",
" reporting",
" usage-analysis",
" cost-savings"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4c4f25f7b7dc0cbdd50c1cd7159badf7cb76f310437a770d961f633c3947de71",
"md5": "3422878ef4a26fdc0c579e8a8386ab88",
"sha256": "5cbc2168e03f461e79027b5e42fae6154e4d884fa840586a133e02e462f95720"
},
"downloads": -1,
"filename": "kafka_overwatch-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3422878ef4a26fdc0c579e8a8386ab88",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 68896,
"upload_time": "2024-04-25T16:37:34",
"upload_time_iso_8601": "2024-04-25T16:37:34.626580Z",
"url": "https://files.pythonhosted.org/packages/4c/4f/25f7b7dc0cbdd50c1cd7159badf7cb76f310437a770d961f633c3947de71/kafka_overwatch-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8b39de4d540df5ebcfccbf074fe7d9f2c1d5be98b2933abc6d37fc1b5e3325e9",
"md5": "9925bfae4215cab5be075f1e3e3d7616",
"sha256": "8d5e1dd11e35b95d2dd5f131a18f7bcbae21a0821bb820cadd7b4859401d5ba6"
},
"downloads": -1,
"filename": "kafka_overwatch-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "9925bfae4215cab5be075f1e3e3d7616",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 44500,
"upload_time": "2024-04-25T16:37:36",
"upload_time_iso_8601": "2024-04-25T16:37:36.059096Z",
"url": "https://files.pythonhosted.org/packages/8b/39/de4d540df5ebcfccbf074fe7d9f2c1d5be98b2933abc6d37fc1b5e3325e9/kafka_overwatch-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-25 16:37:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JohnPreston",
"github_project": "kafka-overwatch",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "kafka-overwatch"
}