The deployment docs recommend that log-stats-collector be run from cron once per hour. If the process get's behind it can take more than an hour to run. Only one instance of swift-log-stats-collector (LogProcessorDaemon) should be processing logs at a time. Starting a second process while one is already running will most likely result in double processing of some stats data.
Lack of native locking places extra burden on deployment as care must be taken to prevent starting a new swift-logs-stats-collector process if one is already running.
Adding a locking context manager to common.utils might be useful for other swift daemons. Alternatively, it may be possible to avoid contention by implementing stats.log_processor.LogProcessorDaemon.run_forever and start swift-log-stats-collector via init.