Grafana is an open source dashboard tool that helps users to easily create and edit dashboards. Grafana uses Golang as a backend and Angular as frontend. It is quite a large codebase and supports a large number of options for its components (data sources, options, panels, etc.). Grafana’s stylesheet is written using the Sass CSS extension language. This preprocessor can help customizing themes.
If you’ve already looked at some example functions within the existing Icinga JS code, you will have noticed that all these functions follow the Design Patterns structure.
What is a Design Pattern?
Design patterns are advanced object-oriented solutions to commonly occurring software problems. The bane of every developer is writing readable, maintainable, and reusable code, and design patterns are crucial for solving this challenge. Solid design patterns are the basic building block for maintainable software applications. In other words, a design pattern is a reusable software solution to a specific type of problem that occurs frequently when developing software.
Icinga Web 2 is a powerful PHP framework for web applications in a clean, minimal design. It’s fast, responsive, accessible and easily extensible with modules. It can be installed quickly and easily from packages found in the official package repositories (see the resource links at the bottom of this blog post).
Besides the global configuration settings, each user has individual configuration options like the interface’s language, the current time zone, and the preferred theme. My aim here is to explain how you can easily create a new customized theme to make your Icinga interface the one you’ve always dreamed of.