Final project report for "Port prometheus to SL7" (377)

Project Description

"Port prometheus to SL7. This is a sub-project of the inf-unit's SL7 server project, forked for accounting reasons. (The work is already being done...)"

Project page

Project updates

Work Done

The work done on this project can be split into a few categories:

Building Perl Modules for SL7

Prometheus depends on a large number of perl modules, in particular dependencies for perl-Moose and perl-DBIx-Class. Quite a lot of time was spent on sourcing and building packages, particularly for the latter.

Port to Moose 2

Moose is an object-oriented framework for perl. Prometheus was originally written for Moose 0.95, the version on SL6 was Moose 1.15. SL7 originally came with Moose 2.1005, which was subsequently upgraded to 2.1804.

The original prometheus code depended on a part of Moose's internal API for its logging implementation (this is the part of prometheus that detects if an object has changed and hence must be modified in its backing store). This internal API was rewritten for Moose 2 and the method we used had disappeared. The solution we adopted used Moose's attribute triggers (this wasn't available to us when prometheus was originally written, which explains the dependence on an internal API). More details can be found by following the links here:


Moose 2.1804 also brought changes to way that nested traits behaved. It appeared that we were using them in a slightly non-standard way (or at least relying on behaviour which was never intentional. More details here:



To ensure that prometheus under SL7 was behaving correctly, we ran a server in parallel with the SL6 server for some time. In particular, we used it to populate an LDAP server and then compared that with our main LDAP service.


Rather than updating the existing prometheus server, vandellas, we reinstalled the SL7 server, redding, and then switched the prometheus service to that.

Headers and Documentation

The headers and documentation (PrometheusOverview) were reviewed and updated as necessary.

Effort Spent

The total time spent on this project was 206 hours (just under 6 weeks).

Future Considerations

Although not part of this project, we should consider running a prometheus ldap replica to make disaster recovery easier.

-- TobyBlake - 02 Jun 2017

Topic revision: r1 - 02 Jun 2017 - 11:01:15 - TobyBlake
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies