diff --git a/specs/third_party_ci_dashboard.rst b/specs/third_party_ci_dashboard.rst new file mode 100644 index 0000000..1f3d0b9 --- /dev/null +++ b/specs/third_party_ci_dashboard.rst @@ -0,0 +1,136 @@ +:: + + 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 Stackforge radar repository [#radar-stackforge-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-stackforge-repo] https://github.com/stackforge/radar +.. [#third-party-ci-dashboard-server] http://dashboard.triniplex.com +