third-party-ci-tools/specs/third_party_ci_dashboard.rst
Mikhail S Medvedev 29160e71d3 Change all instances stackforge to openstack
Stackforge namespace was deprecated, all projects are now under
openstack namespace.

Change-Id: I9982d65c5edfec634789d20fb0f85e98954eb625
2015-10-17 14:22:41 -05:00

137 lines
3.7 KiB
ReStructuredText

::
Copyright (c) 2015 Triniplex.
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
===============================
CI Dashboard
===============================
https://storyboard.openstack.org/#!/story/2000013
The goal of this project is to create a dashboard for the
collection of statistics, monitoring, and usage information.
Problem Description
===================
Currently, there is no single, unified tool for the collection
and display of information which gives the developer the ability
to see how a system is performing against Jenkins. The creation
of a CI Dashboard was discussed at the Kilo Design
Summit [#kilo-third-party-items]_.
Proposed Change
===============
Implement a CI Dashboard system which would be used by operators
cross-project to determine the health of a third party system. The Third Party
CI Dashboard will collect statistics from Gerrit and generate reports which
can be used by distributed project teams as an indicator of the state
of a particular CI system, relative to other CI systems.
Initially, the Dashboard will be used to aggregate data for analysis, in order
to aide the developer in making a determination as to whether a CI system is
functioning as intended.
Alternatives
------------
None
Implementation
==============
The Dashboard will be modular in design in order to
maximize the re-usability and portability of the individual components.
The Dashboard will be composed of the following services:
#. The primary interface for the Dashboard will be a Pecan/WSME REST API
service. The service will provide a single point through which
operators may query the Dashboard data.
#. The API will be used by an AngularJS webclient, which may be built as
a separate component to query the Dashboard data. A command line client
(python-radar) will also allow the query and display of the data in
textual form.
#. The data collected by the Dashboard will be stored in a MySQL database.
The object relational mapper used for this will be SQLAlchemy, as
this technology already has significant usage across OpenStack projects.
#. Data will be periodically collected from the Gerrit REST API by a
python daemon. The initial frequency for the data collection has been
set at five (5) minutes.
Discussion of the process of evaluation and the methods which the Dashboard
will use to determine CI system health has begun on the third party mailing
list and community members should contribute their ideas to the
etherpad [#third-party-ci-dashboard-plan]_.
Assignee(s)
-----------
Primary assignee:
- Steve Weston (steve.weston)
Work Items
----------
TBD
Repositories
------------
During the Kilo Design Summit the group discussed
review of the radar repository [#radar-repo]_.
Servers
-------
The server for the test environment is online and hosted at:
http://dashboard.triniplex.com [#third-party-ci-dashboard-server]_.
DNS Entries
-----------
TBD
Documentation
-------------
The documentation should be created as part of the third-party
manual.
Security
--------
None
Testing
-------
TBD
Dependencies
============
- This will require coordination from CI operators
across all projects
References
==========
.. [#kilo-third-party-items] Session Kilo Design Summit
https://etherpad.openstack.org/p/kilo-third-party-items
.. [#third-party-ci-dashboard-plan] CI Dashboard Planning
https://etherpad.openstack.org/p/Third-Party-CI-Dashboard-InitialPlanning
.. [#ci-dashboard-repo] CI Dashboard Github Repository
https://github.com/Triniplex/third-party-ci-dashboard.git
.. [#radar-repo] https://github.com/openstack/radar
.. [#third-party-ci-dashboard-server] http://dashboard.triniplex.com