User Guide
Custom Dashboards
Diagnostic information is often useful in a particular context. Dashboards are a great way of saving these metrics and grouping them together for easy access when needed.
For example you might want to create a dashboard to show the health of some particularly important services. In this dashboard you can include charts on metoro-collected data like traces, APM data, log information and container metrics. Then show that side by side with custom metrics emitted from your services.
Dashboards View
The dashboards view in Metoro shows all the dashboards that have been created in your organization.
Each dashboard has a unique url that you can share with others, for example, this test dashboard.
Creating a Dashboard
To create a new dashboard, click on the Create Dashboard button on the top right corner of the dashboards view.
Editing a Dashboard
To edit a dashboard, click on the Edit button on the dashboard card.
You can add new charts and groups by clicking the Add widget button on the dashboard view.
When creating a new chart, you'll run through the chart creation wizard where you can search for metrics, select aggregations and filters, and customize the chart appearance.
Widgets
A dashboard is composed of widgets arranged on a canvas.
Group Widget
The group widget is used to group related widgets together. It is useful for organizing charts and other widgets. Widgets that are grouped can be moved together as a single entity.
Variables
Variables allow you to dynamically apply filters to charts. The values of variables can be constant or can be edited by users when they are looking at a dashboard.
When a user edits the value of a variable in the dashboard, it will not be saved. It will only be applied to the current session. This allows you to build generic dashboards, for example: a postgres dashboard showing performance metrics for different a particular database. Then users can select the database they're interested in.
A variables is made up of these components:
- Name - The name of the variable which will be referenced when applying the filter.
- Possible Values - Suggested values for the variable. This is all the values of a particular tag for traces or metrics.
- Default Value - The default value of the variable. This is the value that will be applied when the variable is not edited by the user. If the value is {% keyboardshortcut k="*" %/} then it is for all values of the key.
- Overrideable - Whether a user can edit the value of the variable inside the dashboard for their session.
An example variable definition is below:
This variable has a name of {% keyboardshortcut k="serviceName" %/} and a default value of {% keyboardshortcut k="*" %/} which means all service names. The possible values are the unique values of the serviceName tag for traces.
You can create a variable by clicking the variable icon on any group widget in edit mode.
After a variable is created, you will see it in the header of the group widget.
After you have created a variable you can use it in the filters of any chart that is nested below that group.
In the chart editor you can set any filter equal to the variable value.
After using a variable in the chart. Change the value of the variable by clicking the variable in the widget and selecting (or typing) the new value.
Chart Widget
The chart widget is used to display any sort of data. After you add a chart widget you can configure it through the Chart Builder.
A chart is comprised of 7 key elements:
The metric type. This is the underlying data that will be queried. It is either metric or trace
The chart type. This defines the visualisation. Either a bar or line chart.
The metric name. This is the name of the metric that will be displayed. This is only relevant for metric charts.
Filters. Filters consist of a number of key value pairs. This will restrict the queried data to only data points matching the filters. Each filter is ANDed with every other filter. Individual filters can be ORed together by inserting || between each value.
Aggregation. This is the operation to apply to the data. For example, if you want to sum the data you would select sum. The available aggregations for metrics are:
- sum
- avg
- min
- max
The available aggregations for traces are:
- count
- request size
- response size
- total size
- p50 latency
- p90 latency
- p95 latency
- p99 latency
Groups. This is a list of keys that will be used to group the data.
Functions. Functions are mathematical operations that can be applied to the data. For example, if you want to calculate the monotonic difference of the data you would select monotonic_diff. The available functions are:
- monotonic_diff - The difference between the current value and the previous value in the timeseries. If the difference is negative, it will be clamped at 0.
- value_diff - The difference between the current value and the previous value in the timeseries.
- custom_math_expression - An arbitrary math expression applied to the time series. The timeseries is passed as the parameter a to the expression. For example, if you want to divide the data by 2 you would select a / 2.
Markdown Widget
The markdown widget is used to display arbitrary markdown. For example if you have a dashboard corresponding to a run book for a particular type of incident you can use the markdown widget to display the run book and keep it up to date with the actual dashboard. The markdown widget supports any markdown that is compatible with the CommonMark format. A cheat sheet can be found here