← Back to team overview

launchpad-dev team mailing list archive

production configs and OOPS settings

 

tl;dr:
 - the error_dirs layout has changed. See production configs commits to see how.
 - do not set error_dir for new services unless its running as a
different unix user
 - you don't need to set oops_prefix *if* your service is configured
via a service entry (rather than via a custom config directory)

Another payoff from the new OOPS stack has been implemented today.

The new OOPS stack no longer needs unique directories for processes
with the same oops prefix. The errorlog utility will synthesize a
prefix when a configure() call is made with a custom section. Finally,
the root error_dir will be used if none is present in the section
passed to configure().

Specifically, given a config like we used to have:
---
[error_reports]
oops_prefix: PRODUCTION
error_dir: foo

[codehosting]
oops_prefix: bar
error_dir: quux
---

We can now just do
---
[error_reports]
oops_prefix: PRODUCTION
error_dir: foo
---

Calling IErrorReportingUtility.configure('codehosting') will now set
an oops prefix of 'PRODUCTION-CODEHOSTING' automatically.

Excluding cocoplum (pending puppetisation) all our error dirs are now
/srv/<site>/var/local-oopses-<unixuser>

So they don't take up time getting rsynced. Instead datedir2amqp runs
on these dirs periodically, picking up and transferring any oops
reports filed during AMQP outages over AMQP when it returns.

OOPS pruning now takes place on lp-oops itself, for all services, so
we're able to run it more often as less resources are being used. Best
of all it now runs incrementally so it only considers recently changed
items rather than all objects ever :)

-Rob