Deployment dashboards
Deployment Dashboards
There are a number of applications with a dashboard showing useful information for the deployment process.
They can be found in Grafana, and they are all named “Application dashboard - application name”, such as Application dashboard - Whitehall.
The existing deployment dashboards are written by Puppet every 30 minutes and loaded when Grafana starts. Don’t change them directly.
You can also see further tips on how we use Graphite to present the data below.
Change the Dashboards
Each dashboard panel is configured by a .json.erb template in Puppet and these are combined to generate the JSON config for each application dashboard.
You can export the entire dashboard by clicking on the cog:
Or you can export a single panel by clicking on the panel title to add it to a partial:
Please delete any temporary dashboards after you’ve finished.
If you’re adding a new panel
Create a new partial in Puppet with the exported JSON Replace any application specific text/urls/queries in the partial with template variables.
govuk-puppet
uses an array structure to dynamically control which partials are rendered.
Adding your partial name to this structure will result in it being rendered in Grafana.
Add a new application
The list of applications that have dashboards generated is stored in the hiera data inside Puppet under grafana::dashboards::deployment_applications
.
Each dashboard can have parameters associated with it which affect how the dashboard is generated.
Parameters:
has_workers
: Adds a row with worker failure and success panels. This is required for applications that have Sidekiq workers. Defaults tofalse
.show_controller_errors
: Adds a row which graphs 5XX responses broken down by Rails controller and action. For this graph to contain data, the application must report response statuses to Kibana asstatus
, and also report the controller and action ascontroller
andaction
. You may wish to set this tofalse
for apps with very low request rates to avoid having an empty and potentially confusing graph. Defaults totrue
.show_slow_requests
: Adds a row which graphs response times broken down by Rails controller. For this graph to contain data, the application must report response times to Kibana asduration
and the controller ascontroller
. You may wish to set this tofalse
for apps with very low request rates to avoid having an empty and potentially confusing graph. Defaults totrue
.docs_name
: This is the name of the application used in the developer documentation. Often the same as the repository name on GitHub. This defaults to theapp_name
.error_threshold
: The threshold at which application errors are highlighted in red. Defaults to 50.warning_threshold
: The threshold at which application errors are highlighted in orange. Defaults to 25.