Aardvark is a general purpose visualiser for OpenTSDB. Its aim is to provide a simple yet rich user interface to explore time series data, however given the wealth of features available, some guidance is necessary in order to be able to get the best out of Aardvark.
The Aardvark user interface is split up into 6 main areas:
Various fields allow the specification of time periods. Aardvark uses the same shorthand format as OpenTSDB consisting of a number followed by a character:
Aside from providing a thin header, this provides access to reset the entire app to a blank status, and links to the manual and user preferences.
This dialog provides the ability to customize the Aardvark interface to your own tastes. Changes here are persisted in browser storage.
These are controls which affect either the whole page, all graphs, or all metrics.
Aardvark allows time to be specified as either relative or absolute.
When time is relative, then all you need provide is a period to look back over from now.
When time is absolute, then you must specify a date/time to begin and you may optionally specify a date/time to end (else now is used).
Aardvark also allows you to auto-reload (rerender) the graphs every entered time period.
By default, Aardvark permits downsampling to be specified on a per metric query basis, the global downsampling section allows forcible downsampling of all queries to the same period. The aggregator to be used is still specified by the metric query.
Baselining allows the comparison of the time period being queried with an earlier period in time to allow comparisons to occur (typically after a change has been made). An extra timeseries will be added for each resulting timeseries from your queries with a [BL] suffix for renderers which support this (currently only dygraph).
The period is determined using a baselining style or method, which must be one of:
Baselining may give odd results when combined with certain other graph options.
If you have only one graph then this will be stretched to use up all the vertical space on the screen.
Once you have more than one, then you will be provided with more control over how the vertical space is used:
Aardvark supports rendering multiple graphs for the same time period, with the ability to change render engine, chart style and other options independently for each.
Aardvark defaults to a single graph, the renderer for which can be defaulted via (configuration)[config.html].
New graphs can be added by clicking ‘Add graph’ at the bottom of the graph controls panel.
Individual graphs offer the opportunity to change the title, renderer and also to delete it.
Additions and deletions of graphs are not applied to the render view until ‘Save’ has been pressed, regardless of render mode. All other changes apply according to the render mode.
The gnuplot renderer uses OpenTSDB to render timeseries charts on the server and the controls available mirror those found on the default OpenTSDB user interface.
The horizon renderer uses Cubism from Square.io to render horizon charts, horizon charts are particularly useful for spotting event correlations across a large number of timeseries.
The horizon renderer allows you to exclude negative values from the plot and apply linear interpolation to gaps between points.
The dygraph renderer uses Dygraph to provide client-side rendered time series charts with additional capabilities and flexibility over those provided by gnuplot.
These options affect how time series are rendered. Some of these options may clash in unexpected ways, but full control is left to the user to mix and match as appropriate (unless otherwise noted).
The dygraph renderer supports both a left (Y) and right (Y2) axis and each can be individually controlled:
The dygraph renderer supports annotation rendering:
Aardvark supports additional filtering of results received from OpenTSDB prior to rendering, allowing a reduction in the number of time series displayed, 2 ‘modes’ are supported, which are ANDed together to determine the final list of time series to be displayed:
The scatter renderer uses Dygraph to plot metrics against each other, this is particularly useful for determining strength or manner of correlation.
The scatter renderer requires exactly 2 time series to be able to render and will show a point for a point in time where a value exists for both plotted series. If you have time series which don’t often have points at the same time you may find downsampling will help.
Control over the scatter renderer is currently limited to:
The heatmap renderer uses D3 to render calendar based grids showing the magnitude of a timeseries over time, it is well suited to identifying recurring time-based events.
The heatmap renderer requires exactly 1 time series to be able to render.
The style of calendar grid is selectable between:
Filtering allows you to exclude values outside the selected range from the range of values included in the colour scheme, allowing you to see finer differences. Cells excluded by the filter are rendered in an off colour to distinguish from cells with no value.
The heatmap renderer also allows you to exclude negative values from the plot and to choose your colour scheme.
This area displays the rendered graphs. For most renderers it is possible to interact with the charts.
The gnuplot renderer doesn’t provide any opportunities for interaction with a chart.
The horizon renderer doesn’t provide any opportunities for interaction with a chart.
It will however show series’ values on hover along with a vertical bar allowing you to easily see correlations with other series.
The dygraph renderer offers some basic controls to interact with your graph:
Additionally, there are some extra capabilities around annotations:
The scatter renderer uses the same chart library as the dygraph renderer and so offers the same interaction options:
The heatmap renderer doesn’t provide any opportunities for interaction with a chart.
It will however show cell values on hover.
Aardvark allows selection of metrics to graph via a tree view which is constructed from the set of available metrics on your instance on OpenTSDB, splitting using the “.” character.
Select a metric to graph by selecting an underlined node, which may be present at any level (not just leaf nodes).
The tree may be filtered using a text search (press the F button to show the filter).
The tree may also be fully expanded (+ button - honouring filters) and fully collapsed (- button). A word of caution though - if you have a large tree this can lock your browser up, so it can be disabled via a config option (see the config reference).
If UI wide exclusions have been configured then the show (S) and hide (H) buttons allow you to include/exclude them from the tree. This is useful if you have old metrics or namespaces you no longer use in normal use.
The metric controls allow you to customise the query performed for a metric and assign the resulting time series to a graph. If you wish you can assign queries to the special “None” graph, allowing interesting queries to be stored for later use. Almost all options found here mirror those found in OpenTSDB
Additionally if more than one time series are known for a given metric you may add one or more tag queries. To do so, click on the tag you wish to query (the number in the badge is the number of unique values for this metric) which presents a tag row. This allows you to select whether to group by the values (only in TSDB 2.2 onwards) resulting from the query in addition to entering your query. If you specify multiple queries for a single tag these are ANDed together by OpenTSDB.