Today, we’re excited to introduce a new release of Vector, our instance performance analysis tool. This one is a little bigger than our usual releases, and includes a few new features. That’s why we’re bumping the minor version number from 1.0.x to 1.1.x. It also took a bit longer and included more changes, and that was mainly because some of the new features required multiple new components working together to be truly useful for users.
Here’s a quick summary of what’s new and improved.
A few container-specific widgets were added to the previous version of Vector, but turned off by default. In this release, we added a lot more features specifically designed for engineers working with containers, aiming to provide a better overall solution.
Our approach was to collect metrics from the host, instead of directly from agents running in the containers, like many other solutions opted for. This decision was mainly driven by the fact that containers can provide different levels of isolation depending on the configuration used, and since that isolation is not complete, it’s important, from a performance perspective, to look at the entire host, and all it’s containers, to have a full picture.
To start, we created several widgets to help users visualize resource utilization on containers, including CPU, Memory, Disk and Network I/O.
In the CPU dimension, the following widgets were added:
For memory, the following widgets were added:
At this point, we have limited visibility into network and disk metrics, but two widgets are already available.
For both disk widgets, two versions were added, one reporting
cgroup.blkio.all.throttle.* metrics and the other
cgroup.blkio.all.*. We labeled the former as
(Throttled). In this particular case,
throttled doesn’t mean throttled I/O, but just a different metrics being pulled.
We know that working on hosts with several containers can be difficult, that’s why we also added two filtering options, while trying to keep the flow simple. Vector still works the same way. You use the hostname to connect to a host that has containers running. From that, you should be able expand the hostname menu and get access to the two new filters. The first one is an open-text filter, that will be applied to all container widgets, to filter the entries in each graph. This is specially useful if you have a set of containers running, that belong to the same class, and have a similar name. The second filter is a drop-down list, that gets populated with the name of all containers running in that host. From there, you can select a single container you would like to analyze. If you prefer, there’s also a hook for an external container name resolver.
We also added a filter to the Network Throughput and Packets widgets. The filter allows the user to filter specific network interfaces, with an open-text input, which is extremely useful if you use different network interfaces for your containers.
On top of all these new features, we also created a predefined “container” dashboard, with common container-specific widgets in it. Just use the “/#/containers” path to load it!
There are two components to Vector: the agent software that runs on every host, and a single web server that loads the Vector dashboard software in your browser. The web server software can now be deployed as a Docker image, which some may find easier than building Vector from source, or downloading a build and deploying a web server. So now we have an official Docker image!
Just pull ‘netflixoss/vector’ to get up and running!
docker run \ -d \ --name vector \ -p 80:80 \ netflixoss/vector:latest
You still need to load the agent software on each monitored host for the Vector dashboard to connect to.
And what could be easier than loading a Docker image? How about not having to do anything! Another option is to just load Vector from our public web server. More about that in the next section!
Although not directly related to the release, we also launched a new website for Vector. Previously, most of the documentation around Vector was kept under the repository wiki on GitHub. This worked great so far, but the new website gives us more flexibility around how things are presented and organized. The new website also allows us to publish and have a central source for news and blog posts related to Vector. Subscribe to the RSS feed to keep updated! Since Vector is a static, client-side application, that runs completely in the user’s browser, there’s no reason why we couldn’t host it ourselves, so users could try it out before deploying it themselves. Check getvector.io/demo to try the latest version!
A complete list of changes can be found here.