The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters. Inspired by Wireshark, purposely built for Kubernetes
Go to file
M. Mert Yıldıran d3e6a69d82
Refactor tap module to achieve synchronously closing other protocol dissectors upon identification (#1026)
* Remove `tcpStreamWrapper` struct

* Refactor `tap` module and move some of the code to `tap/api` module

* Move `TrafficFilteringOptions` struct to `shared` module

* Change the `Dissect` method signature to have `*TcpReader` as an argument

* Add `CloseOtherProtocolDissectors` method and use it to synchronously close the other protocol dissectors

* Run `go mod tidy` in `cli` module

* Rename `SuperIdentifier` struct to `ProtoIdentifier`

* Remove `SuperTimer` struct

* Bring back `CloseTimedoutTcpStreamChannels` method

* Run `go mod tidy` everywhere

* Remove `GOGC` environment variable from tapper

* Fix the tests

* Bring back `debug.FreeOSMemory()` call

* Make `CloseOtherProtocolDissectors` method mutexed

* Revert "Remove `GOGC` environment variable from tapper"

This reverts commit cfc2484bbb.

* Bring back the removed `checksum`, `nooptcheck` and `ignorefsmerr` flags

* Define a bunch of interfaces and don't export any new structs from `tap/api`

* Keep the interfaces in `tap/api` but move the structs to `tap/tcp`

* Fix the unit tests by depending on `github.com/up9inc/mizu/tap`

* Use the modified `tlsEmitter`

* Define `TlsChunk` interface and make `tlsReader` implement `TcpReader`

* Remove unused fields in `tlsReader`

* Define `ReassemblyStream` interface and separate `gopacket` specififc fields to `tcpReassemblyStream` struct

Such that make `tap/api` don't depend on `gopacket`

* Remove the unused fields

* Make `tlsPoller` implement `TcpStream` interface and remove the call to `NewTcpStreamDummy` method

* Remove unused fields from `tlsPoller`

* Remove almost all of the setter methods in `TcpReader` and `TcpStream` interface and remove `TlsChunk` interface

* Revert "Revert "Remove `GOGC` environment variable from tapper""

This reverts commit ab2b9a803b.

* Revert "Bring back `debug.FreeOSMemory()` call"

This reverts commit 1cce863bbb.

* Remove excess comment

* Fix acceptance tests (`logger` module) #run_acceptance_tests

* Bring back `github.com/patrickmn/go-cache`

* Fix `NewTcpStream` method signature

* Put `tcpReader` and `tcpStream` mocks into protocol dissectors to remove `github.com/up9inc/mizu/tap` dependency

* Fix AMQP tests

* Revert 960ba644cd

* Revert `go.mod` and `go.sum` files in protocol dissectors

* Fix the comment position

* Revert `AppStatsInst` change

* Fix indent

* Fix CLI build

* Fix linter error

* Fix error msg

* Revert some of the changes in `chunk.go`
2022-04-28 17:19:14 +03:00
.github Introducing eslint (#1048) 2022-04-28 11:46:00 +03:00
acceptanceTests Fix acceptance tests (logger module) (#1049) 2022-04-27 23:59:16 +03:00
agent Fix: remove agent unused go dependency (#1050) 2022-04-28 12:08:59 +03:00
assets Update the UI screenshots (#476) 2021-11-16 22:44:31 +03:00
cli Make logger a separate module such that don't depend on shared module as a whole for logging (#1047) 2022-04-27 22:26:27 +03:00
devops Introducing eslint (#1048) 2022-04-28 11:46:00 +03:00
docs Readme changes: moving all usage documentation to getmizu.io, and have only dev documentation in Github (#879) 2022-03-06 10:44:37 +02:00
logger Make logger a separate module such that don't depend on shared module as a whole for logging (#1047) 2022-04-27 22:26:27 +03:00
shared Refactor tap module to achieve synchronously closing other protocol dissectors upon identification (#1026) 2022-04-28 17:19:14 +03:00
tap Refactor tap module to achieve synchronously closing other protocol dissectors upon identification (#1026) 2022-04-28 17:19:14 +03:00
ui Introducing eslint (#1048) 2022-04-28 11:46:00 +03:00
ui-common validation that grpc error render only when needed (#1051) 2022-04-28 15:18:08 +03:00
.dockerignore Split UI build (#681) 2022-01-24 10:02:35 +02:00
.gitignore UI Splitting to common components (#883) 2022-03-15 18:45:43 +02:00
codecov.yml codecov yml for tests threshold (#214) 2021-08-15 12:19:00 +03:00
Dockerfile Fix: remove agent unused go dependency (#1050) 2022-04-28 12:08:59 +03:00
LICENSE Initial commit 2021-04-19 13:29:56 +03:00
Makefile Updated Dockerfile and fixed typo in Makefile (#929) 2022-03-27 01:39:50 +03:00
README.md Readme changes: moving all usage documentation to getmizu.io, and have only dev documentation in Github (#879) 2022-03-06 10:44:37 +02:00

Mizu: The API Traffic Viewer for Kubernetes

GitHub License GitHub Latest Release Docker pulls Image size Slack

The API Traffic Viewer for Kubernetes

A simple-yet-powerful API traffic viewer for Kubernetes enabling you to view all API communication between microservices to help your debug and troubleshoot regressions.

Think TCPDump and Wireshark re-invented for Kubernetes.

Simple UI

Quickstart and documentation

You can run Mizu on any Kubernetes cluster (version of 1.16.0 or higher) in a matter of seconds. See the Mizu Getting Started Guide for how.

For more comprehensive documentation, start with the docs.

Working in this repo

We ❤️ pull requests! See CONTRIBUTING.md for info on contributing changes.
In the wiki you can find an intorduction to mizu components, and development workflows.

Code of Conduct

This project is for everyone. We ask that our users and contributors take a few minutes to review our Code of Conduct.