Once you’ve deployed your application to the cloud, use the Explore feature of Weave Cloud to troubleshoot and ensure that your app is operating as expected. The Explore feature of Weave Cloud automatically detects and monitors hosts, Docker containers and processes that make up your app and its infrastructure. It then builds a graphical map showing their communication pathways. This graphical view allows you to visualize, monitor and interact with your distributed applications so that you can troubleshoot bottlenecks, memory leaks or navigate the container image in real-time.
There are several features that allow you to examine your app or your newly deployed microservice:
- Topology Mapping
- Filtering and Searching
- Real-time App and Container Metrics
- Troubleshoot and Manage Containers
- Time Travel
Weave Cloud builds logical topologies of your application and infrastructure. A topology is a collection of nodes and edges, where nodes represent objects like processes, container or hosts. In a view edges indicate TCP connections between nodes. Different node types can be filtered on and viewed and specific microservices can be drilled down on and inspected. Nodes are presented in a particular order with the clients above servers. As a general rule, Weave Cloud views are read by going from top to bottom.
Views can be thought of as high-level filters on your containerized microservices as they run in the cloud. They are categorized into: Processes, Containers, Orchestrators, and Hosts. Weave Cloud is orchestrator aware which means that if an app is running in a Kubernetes cluster then it displays Pods, Replica Sets, Deployments, and Services.
If your app is deployed to the Amazon EC2 cluster service, then it displays the Services and Tasks that make up an ECS cluster.
Under the hosts view, and if you are using Weave Net for container or pod networking, a specific Weave Net view appears. This view is useful for troubleshooting any networking problems you may be having. This view displays a number of Weave Net specific attributes such as whether quorum has been reached, the IP addresses used, whether fast datapath is enabled, or if encryption is running and many other useful attributes.
See the Weave Net User Guide for more information.
In addition to these views, nodes can be presented either in graphical or in table mode. The graphical mode is practical for obtaining a quick visual overview of your app, its infrastructure and connections between all of the nodes. And when you switch to table mode, nodes are presented in a convenient list that displays the resources being consumed by processes, containers, and hosts by dynamically shifting the resource heavy nodes to the top of the table, much like the UNIX
top command does.
Resources mode is yet another way to view Resource usage. It displays your app in its infrastructure and provides a quick graphical overview of Memory and CPU usage by Process, Container and Host.
In the left-hand corner of the UI are other filtering and other options. Nodes can be filtered by CPU and Memory so that you can easily find containers using the most resources. In the container view, options are available to filter by system, application or to show all of the containers and 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.
Use Search to quickly find node types, containers and processes by name, label or even path. The search functionality supports simple operands so that you can for example, find processes consuming a certain memory limit or nodes that are using a range of CPU cycles. Search terms may also be stacked to create custom, complex search criterion. See the online help within the product for a full list of allowable operands and also the allowable fields and metrics on which you can search.
View contextual metrics, tags and metadata for your containers by clicking on a node to display its details panel. Drilldown on processes inside your container to the hosts that your containers run on, arranged in expandable, sortable tables.
Choose an overview of your container infrastructure, or focus on a specific microservice. Identify and correct issues to ensure the stability and performance of your containerized applications.
Click on a container, pod or host to view the controls that allow you to: pause, restart, stop and delete without having to leave the Scope browser window. Logs of selected containers or pods (if you are running Kubernetes) can also be displayed by clicking the terminal icon.
And 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. Launch a terminal by clicking the
>_ icon from the details panel of a selected container or host.
Another way to troubleshoot your app running in the cloud is to use the Time Travel controls. All Scope views: Processes, Containers, Orchestrators and Hosts allow you to travel back in time to view an in situ state of your app that can be compared with its live state.
To gain insight into a newly deployed service, click on it and then toggle the Time Travel control. Compare its live state with a state in the past by scrolling through the Timeline that appears. This feature is useful for verifying that newly deployed fixes have actually improved the functionality or performance of your app as it runs in the cluster. It also allows you to quickly see changes that have been as the service or container is running in its environment.
Other troubleshooting scenarios include:
- Comparing resources from the current state with one in the past
- Comparing the state of your orchestrator at different points in time
- Comparing container configuration from one deployment to the next