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
RamiBerm 77ced2a46d
Merge pull request #126 from up9inc/disable_redact_flag
Add option to disable sensitive data redaction by flag and fix CPU leaks
2021-07-21 11:20:36 +03:00
.github/workflows . 2021-07-21 11:05:20 +03:00
api Update main.go 2021-07-21 11:04:12 +03:00
cli Merge pull request #126 from up9inc/disable_redact_flag 2021-07-21 11:20:36 +03:00
shared Update main.go, tap.go, and 4 more files... 2021-07-21 10:49:27 +03:00
tap Missing request body (#120) 2021-07-19 12:38:28 +03:00
ui TRA-3440 - add confirmation message and info on hover (tooltip) chagne analyze to analysis (#109) 2021-07-14 18:37:59 +03:00
.dockerignore no message 2021-04-28 17:54:32 +03:00
.gitignore Infinite scroll (#28) 2021-05-04 18:23:58 +03:00
build-push-featurebranch.sh Versioning (#116) 2021-07-15 16:19:29 +03:00
debug.Dockerfile Update debug.Dockerfile 2021-07-20 09:58:21 +03:00
Dockerfile Versioning (#116) 2021-07-15 16:19:29 +03:00
LICENSE Initial commit 2021-04-19 13:29:56 +03:00
Makefile More complex message (preparation for knowing status of tapped items in UI) (#49) 2021-05-23 13:11:59 +03:00
README.md Update readme, add prerequisites section 2021-07-15 09:17:58 -07:00

水 mizu

A simple-yet-powerful API traffic viewer for Kubernetes to help you troubleshoot and debug your microservices. Think TCPDump and Chrome Dev Tools combined.

Download

Download mizu for your platform and operating system

Latest stable release

  • for MacOS - Intel
curl -Lo mizu \
https://github.com/up9inc/mizu/releases/latest/download/mizu_darwin_amd64 \
&& chmod 755 mizu
  • for Linux - Intel 64bit
curl -Lo mizu \
https://github.com/up9inc/mizu/releases/latest/download/mizu_linux_amd64 \
&& chmod 755 mizu

SHA256 checksums are available on the Releases page.

Development (unstable) build

Pick one from the Releases page.

Prerequisites

  1. Set KUBECONFIG environment variable to your kubernetes configuration. If this is not set, mizu assumes that configuration is at ${HOME}/.kube/config
  2. mizu needs following permissions on your kubernetes cluster to run
- apiGroups:
  - ""
  - apps
  resources:
  - pods
  - services
  verbs:
  - list
  - get
  - create
  - delete
- apiGroups:
  - ""
  - apps
  resources:
  - daemonsets
  verbs:
  - list
  - get
  - create
  - patch
  - delete
  1. Optionally, for resolving traffic ip to kubernetes service name, mizu needs below permissions
- apiGroups:
  - ""
  - apps
  - "rbac.authorization.k8s.io"
  resources:
  - clusterroles
  - clusterrolebindings
  - serviceaccounts
  verbs:
  - get
  - create
  - delete

How to run

  1. Find pod you'd like to tap to in your Kubernetes cluster
  2. Run mizu tap PODNAME or mizu tap REGEX
  3. Open browser on http://localhost:8899 as instructed ..
  4. Watch the WebAPI traffic flowing ..
  5. Type ^C to stop

Examples

Run mizu help for usage options

To tap specific pod -

 $ kubectl get pods 
 NAME                            READY   STATUS    RESTARTS   AGE
 front-end-649fc5fd6-kqbtn       2/2     Running   0          7m
 ..

 $ mizu tap front-end-649fc5fd6-kqbtn
 +front-end-649fc5fd6-kqbtn
 Web interface is now available at http://localhost:8899
 ^C

To tap multiple pods using regex -

 $ kubectl get pods 
 NAME                            READY   STATUS    RESTARTS   AGE
 carts-66c77f5fbb-fq65r          2/2     Running   0          20m
 catalogue-5f4cb7cf5-7zrmn       2/2     Running   0          20m
 front-end-649fc5fd6-kqbtn       2/2     Running   0          20m
 ..

 $ mizu tap "^ca.*"
 +carts-66c77f5fbb-fq65r
 +catalogue-5f4cb7cf5-7zrmn
 Web interface is now available at http://localhost:8899
 ^C