This article is an excerpt from the book, Elastic Stack 8.x Cookbook, by Huage Chen and Yazid Akadiri. Unlock the full potential of Elastic Stack for search, analytics, security, and observability and manage substantial data workloads in both on-premise and cloud environments
In this guide, we will integrate all previously created visualizations into a comprehensive dashboard consisting of multiple panels. Additionally, we will explore how to enhance user interaction using control-based drilldowns.
Make sure to complete the following recipes from this chapter:
At the end of this recipe, you will have dashboards composed of the various visualizations and elements built into the aforementioned recipes.
Building dashboards is very straightforward in Kibana, especially if you’ve already created some visualizations. Follow these steps:
1. Go to Kibana | Analytics | Dashboard and click on Create dashboard.
This will bring you to a blank canvas, where you can start adding some visualizations.
2. We will start by adding a nice image! You can be creative, but we provided a sample picture:
A. Click on Add panel | Image. B. Select the Use link tab and set Link to image with the following URL: https://upload. wikimedia.org/wikipedia/commons/6/60/Ville_de_RENNES_Noir. svg. Then, click on Save:
Figure 6.54 – Adding an image for a logo
The logo will be added to the panel. Including a picture is a great way to add some personalization and branding to your dashboards. Let’s add some proper visualizations from the ones we’ve built in the last three recipes.
3. Click on Add from library and select the [Rennes Traffic] Number of locations visualization. Make sure to align it to the right with the image panel.
4. Let’s add another visualization; this time, we’ll pick [Rennes Traffic] Average speed gauge.
At this stage, your dashboard should look like the one shown in Figure 6.55:
Figure 6.55 – Rennes traffic dashboard – first step
You can easily rearrange the position of the different panels by clicking on the title section and moving the panel with your mouse anywhere you want on the canvas. To adjust the size and fit of the panel, position your mouse on the small arrow at the bottom right of the panel. Let’s keep adding more panels to our dashboard.
5. Click on Add from library and add the following visualizations in the respective order:
I. [Rennes Traffic] Traffic status waffle
II. [Rennes Traffic] Speed by road hierarchy
III. [Rennes Traffic] Average speed & Traffic Status
IV. [Rennes Traffic] Traffic status by hour
6. Finally, let’s add a Map visualization for a real-time view of the traffic; select the one named [Rennes Traffic] Traffic fluidity.
By now, your dashboard should look like the one shown in Figure 6.56:
Figure 6.56 – Rennes traffic dashboard – more visualizations
You can start playing around with the dashboard to see the built-in interactivity of the panels. For example, clicking on a specific road hierarchy will automatically apply the filter to the entire dashboard.
You can also have dedicated panels to filter and display only the data you are interested in with Controls. Let’s add some to our dashboard.
7. On the dashboard toolbar, click on Controls:
Figure 6.57 – Adding controls to the dashboard
8. From the drop-down list, select Add control; the Create control flyout will appear on the right of the screen.
9. Select the traffic_status field and click on Save and close.
10. Back to the dashboard, you now have a new panel on top of the visualization named traffic_status. By clicking on it, you will see a drop-down list where you can select the values associated with the status of the traffic you want to filter, as shown in Figure 6.58. Select congested as an example:
Figure 6.58 – Using controls in the dashboard
11. You can see on your dashboard that all the panels have been updated according to the value selected in the traffic_status control.
Imagine you want to filter your traffic data to analyze it within a specific time range, such as early in the morning or late in the afternoon, to better understand traffic patterns. This is where the time slider control proves to be incredibly useful.
12. Go to the Controls menu again in the dashboard toolbar and select Add time slider control.
You’ll see a new panel to the right of traffic_status:
Figure 6.59 – Time slider control
By clicking the play icon, you will see your dashboard animate and your data change over the defined time range. You can advance the time range forward as well as backward, which is especially useful when working with time series data.
Your dashboard should now look as shown in Figure 6.60, with our two controls:
Figure 6.60 – Rennes traffic dashboard with controls
13. Save the dashboard by clicking the Save button in the upper-right corner. Name it [Rennes Traffic] Overview.
To enhance our dashboard further, consider this: users frequently manage multiple dashboards, and the ability to navigate seamlessly from one to another is crucial, especially when aiming to refine analysis or focus on more detailed panels related to a specific dataset. Dashboard drilldowns are invaluable in this scenario as they allow you to transition between dashboards while maintaining the overall context. Let’s explore how to implement and use this feature effectively!
For this exercise, we have already built a drilldown dashboard. Download and save the NDJSON file of the exported dashboard from the following location: https://github.com/PacktPublishing/ Elastic-Stack-8.x-Cookbook/blob/main/Chapter6/kibana-objects/rennesdata-drilldown-dashboard.ndjson. Then, follow these steps:
1. To import the dashboard, go to Stack Management | Saved Objects.
2. Click on Import and select the NDJSON file you have previously downloaded from the GitHub repository. Upon completing the import process, you will notice a warning in the flyout about data view conflicts. The reason is straightforward: our saved objects rely on an existing data view. To resolve the conflict, simply click on the drop-down list under the New data view column and select metrics-rennes_traffic-raw, as shown in Figure 6.61, then click on Confirm all changes to finalize the import procedure:
Figure 6.61 – Importing saved objects and selecting the right data view
3. Once all the objects have been imported, you will get a recap as shown in the following screenshot:
Figure 6.62 – Saved objects successfully imported from the file
Return to the [Rennes Traffic] Overview dashboard. Then, open the menu for the [Rennes Traffic] Speed by road hierarchie panel and select Create drilldown:
Figure 6.63 – Creating drilldown from the panel
4. Navigate to the drilldowns page and select the Go to Dashboard option. Here, you will need to name your drilldown—consider View Details for Road Hierarchy as a suggestion. Then, from the Choose destination dashboard drop-down menu, select [Rennes Traffic] Detailed traffic drilldown dashboard, which you have recently imported. This process sets up a targeted navigation path within your dashboard environment, allowing for a seamless transition between your overview and detailed analysis dashboards:
Figure 6.64 – Configuring dashboard drilldown
5. Click on Create drilldown. Save the dashboard to test our drilldown, click on one of the five charts in the [Rennes Traffic] Speed by road hierarchie panel. You will be redirected to the detailed dashboard filtered on the value you have selected.
Figure 6.65 – Dashboard view after drilldown
Et voilà! You have just built your first dashboard with a nice touch of interactivity thanks to controls and drilldowns.
In Kibana, a dashboard is a collection of visualizations and saved searches that you can arrange and customize to display the data that is most important to you. You can create multiple dashboards for different use cases, and each dashboard can have its own set of visualizations and searches.
Dashboards are a powerful tool for data analysis because they allow you to see multiple visualizations side by side and quickly identify patterns and trends in your data. You can also use dashboards to monitor key metrics in real time, which is especially useful for operational use cases. Kibana provides a wide range of visualization types that you can use to create custom dashboards, including bar charts, line charts, pie charts, tables, and more.
The following table outlines a framework for choosing the right visualization:
Use case | Recommended type of visualization |
Comparison and correlation | Many items: Horizontal bar Few items: Vertical bar |
Comparison over time | Few periods and categories: Stacked bar Few time periods but many categories: Line graph |
Distribution of values | Few numbers of points: Vertical bar histogram Many points: Line histogram |
Composition of a whole | Simple compositions with few items: Waffle or Treemap Multiple grouping dimensions for a few bottomlevel items: Mosaic Multiple grouping dimensions for many bottomlevel items: Treemap |
Eye-catching summary | One value: Metric Many values: Table with color styling |
Visualizing goals or targets | Vertical bar or Line with reference lines Metric |
Table 6.2 – Choosing the right visualization
In addition to visualizations, Kibana dashboards also support saved searches, which allow you to quickly filter your data based on specific criteria. You can save searches that you use frequently and add them to your dashboard for easy access.
Overall, Kibana dashboards are a powerful tool for data analysis and monitoring. They allow you to quickly identify patterns and trends in your data, monitor key metrics in real time, and customize your view of the data to suit your needs.
In our recipe, we have used dashboard drilldowns, but you can also create URL and Discover drilldowns. With the former, you can link to data outside of Kibana, and with the latter, you can open Discover from a Lens panel while keeping all the contextual information.
Dashboards are great when used in Kibana, but you can also share them with teams and colleagues outside of Kibana. You have many options that are easily accessible from the Share menu in the toolbar when it comes to sharing dashboards: you can interactively embed dashboards as an iFrame, export them as reports in various formats (PNG, CSV, PDF, etc.), and share them as direct links for easy access.
When building dashboards, design thinking is a good practice. Start by asking yourself the following questions:
In this guide, we've explored the process of integrating various visualizations into a comprehensive Kibana dashboard, enhancing user interaction through control-based drilldowns. By following the steps outlined, you should now have a functional and interactive dashboard that can provide valuable insights into your data.
We began by preparing the necessary visualizations and then moved on to assembling the dashboard by adding images for personalization and aligning various traffic visualizations. We also incorporated control panels for dynamic filtering, allowing for more precise data analysis. The final touch was adding drilldowns to enable seamless navigation between detailed and overview dashboards.
Kibana dashboards offer powerful tools for data analysis and real-time monitoring. By displaying multiple visualizations side by side, you can quickly identify patterns and trends, making dashboards invaluable for operational and analytical use cases.
Remember, the key to a successful dashboard is thoughtful design—consider the goals, the audience, and the specific data insights needed. Utilize the wide range of visualization types that Kibana offers and don't hesitate to leverage the sharing options to collaborate with your team effectively.
For further reading and advanced tips on designing intuitive dashboards, building them efficiently, or debugging, check out the additional resources provided. Happy dashboarding!
Huage Chen is a member of Elastic's customer engineering team and has been with Elastic for over five years, helping users throughout Europe to innovate and implement cloud-based solutions for search, data analysis, observability, and security. Before joining Elastic, he worked for 10 years in web content management, web portals, and digital experience platforms.
Yazid Akadiri has been a solutions architect at Elastic for over four years, helping organizations and users solve their data and most critical business issues by harnessing the power of the Elastic Stack. At Elastic, he works with a broad range of customers, with a particular focus on Elastic observability and security solutions. He previously worked in web services-oriented architecture, focusing on API management and helping organizations build modern applications.