Weave Scope is a visualization, and monitoring tool for Docker and Kubernetes.For Microservices-based architecture,Weave scope would be useful in visualizing network bottlenecks, troubleshooting CPU consumption and troubleshooting memory leaks.It provides a top down view into your app as well as your entire infrastructure, and allows you to diagnose any problems with your distributed containerized app, in real time, as it being deployed to a cloud provider.
- Drill down Views: For an app which is running in Kubernetes, Scope displays Pods, Replica Sets, Deployments, and related Services on clusters.So for containerized microservices running in the cloud,you can view Processes, Containers, Orchestrators, and Hosts.
- Real time Contextual metrics : By clicking on a node you can get detailed panel with additional metrics on the node.From the detailed panel,you can drilldown on processes inside your container to the hosts that your containers run on.
- Troubleshoot / Manage Containers : On clicking of a container, pod or host, you can view the controls pane from there you can pause, restart, stop and delete without having to leave the Scope browser window.If further troubleshooting is required, terminal windows can be launched from any container or host so that you can interact with your app and run any UNIX command to diagnose issues.
- Search : Weave supports simple operands so that for example, you can find processes consuming a certain amount memory or nodes using too much CPU.
- Filtering options : Nodes can be filtered by CPU and Memory usage so that you can easily find containers using the most resources.If you are running an app in Kubernetes then your app can be filtered by namespace and by container state whether running or stopped or contained and uncontained.
- Graphic / Table Mode : Views can be presented in Graphic as well as Table Mode.Graphical mode is more useful in cases where you want to have a quick visual overview of your app.Table mode is for viewing data like resources being consumed by processes, containers, and hosts etc.,
How it Works ?
Weave Scope consists of two components: the app and the probe.The probe is responsible for gathering information about the host on which it is running. This information is sent to the app in the form of a report. The app processes reports from the probe into various visualizations (ex.Topologies).
Scope app can be run as standalone mode or as hosted Cloud offering.In standalone mode,when running Scope in a cluster, each probe sends its reports to a dedicated app. The app merges the reports from its probe into a comprehensive report that is sent to the browser.
Scope can also be used to feed reports to Weave Cloud. With Weave Cloud offering, you can centrally manage and share access to your Scope user interface. In this configuration, the probe is run locally and the apps are hosted on the cloud.
Install Weave Scope
As discussed in the earlier section,Weave Scope consists of three parts: (1) probe, (2) app and (3) user interface. Scope can be deployed in either a standalone configuration or you can use Weave Cloud, in which case only the probes run in your environment, and the app and user interface are hosted by Weave Cloud.
In the below example,I’m going to use Kubernetes but it can be deployed to Docker environment as well.
On your Kubernetes cluster, run the following command
kubectl create -f "https://cloud.weave.works/launch/k8s/weavescope.yaml"
Above command downloads a Scope image from Dockerhub and launches a probe onto every node as well as a single Scope app.
Now that deployment is created,lets check the deployment information using kubectl get pods command :
Once all of the Pods as up and running,use kubectl expose pod command to the expose the services to the outside world.
View Metrics using Weave Scope
Views in Scope is more like high-level filters,they are categorized into: Processes, Containers, Orchestrators, and Hosts etc.,
Detailed App View
Apart from the above views,custom metrics can also be generated using plugins.
Congrats! today we have learnt how to deploy WeaveScope on to Kubernetes cluster.
Like this post? Don’t forget to share it!