Skip to content

Kubernetes-based Microservices Analyzing and Monitoring system using Istio and Zipkin - KMamiz

License

Notifications You must be signed in to change notification settings

stanley2058/KMamiz

Repository files navigation

KMamiz

Kubernetes-based Microservices Analyzing and Monitoring system using Istio and Zipkin - KMamiz (KK /ˈke mæmɪz/)

The core concept of KMamiz is to provide endpoint-level system analyzing and monitoring features, making the work for the DevOps team much more effortless. Concept Diagram of KMamiz

Preconditions

Systems aimed to be monitored by KMamiz need to fulfill the following requirements:

  • Running on Kubernetes
  • Running an Istio deployment with Zipkin enabled
  • Capable of forwarding request headers

The operation concept is as follows, KMamiz will be deployed in the same Kubernetes cluster as the System Under Monitoring. Traffic generated by the end-users or end-to-end testing tools will be recorded by Envoy (Istio's sidecar) and reported to Zipkin. KMamiz will then retrieve traces from Zipkin and logs from KMamiz's extended EnvoyFilter. Finally, KMamiz visualizes all the parsed metrics to the system admin. For more architectural details, see ARCHITECTURE.

KMamiz C4 Architecture Diagram Layer1

Functionalities

KMamiz is a monitoring service utilizing traces from Zipkin and extended logs from Envoy proxy to provide the following functionality.

  • Endpoint-level dependency topology for the System Under Monitoring (SUM).
  • Provides metrics including total requests, error amount, and latency.
  • Request/response body extraction.
  • Estimated service risk value based on multiple factors.
  • Endpoint-level request dependency chain.
  • Automatic OpenAPI documentation generation, visualized with Swagger UI.
  • Endpoint path guessing and path variable extraction based on request/response body and string pattern matching.
  • Provides service cohesion and coupling metrics based on multiple research papers.
  • Provides service instability metrics based on the Stable Dependencies Principle (SDP) from Clean Architecture.
  • Provides service risk exposure by doing risk analysis.

KMamiz is implemented in such a way that the SUM only needs minimal intrusive changes to be monitorable. Services in the SUM need to forward the following X-B3 headers while making requests to other services.

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • b3
  • x-ot-span-context

See the b3-propagation for more information and the Envoy HTTP header manipulation for details on these headers.

Try KMamiz

Online Demo

We currently have two online demo systems:

We do check the health of these sites periodically. Nevertheless, we do not have high availability guarantee on these sites. Feel free to open an issue if any of them are down.

  • Bookinfo (Istio)
  • Personal Data Authorization System (PDAS)
    • This is a system previously developed by our team. The details are published in 2020 International Computer Symposium (ICS) and accessible here.
    • Demo Site

Deploy Using Templates

Follow the deployment instructions here.

Build KMamiz Yourself

See BUILD.md.

About

Kubernetes-based Microservices Analyzing and Monitoring system using Istio and Zipkin - KMamiz

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published