This implements Prometheus metric integration, including metric
definition, collection, and exportation.
Actions measured include overall Manifest application, and Chart
application with sub-actions of download, deployment, and test.
Prometheus labels are included for Manifest and Chart name as
appropriate. Chart deployment also includes a label for which action
was taken (install, upgrade, noop).
For each of these actions, metrics are included for quantity of completed
and in progress attempts and failures, as well as the duration of the
attempts.
For the chart deployment and test actions, timeout and timeout usage
are included in order to identify charts whose timeouts may need to
be changed to avoid potential failures or to acheive faster failures.
For the chart handle action, a count of total concurrent charts is
included in order to identify opportunities for greater chart
concurrency.
The API exposes these metrics via an endpoint, and the Armada chart
includes the appropriate pod annotations to configure Prometheus
scraping of this endpoint.
The CLI includes a --metrics-output option to define a path
in which to output the metric data.
Change-Id: Ia0837f28073d6cd8e0220ac84cdd261b32704ae4