Murano unified logging

https://blueprints.launchpad.net/murano/+spec/unified-style-logging

Rewrite murano logging in unified OpenStack style proposed by https://blueprints.launchpad.net/nova/+spec/log-guidelines

Problem description

Now log levels and messages in murano are mixed and don’t match the OpenStack logging guideliness.

Proposed change

The good way to unify our log system would be to follow the major guidelines. Here is a brief description of log levels:

  • Debug: Shows everything and is likely not suitable for normal production operation due to the sheer size of logs generated (e.g. scripts executions, process execution, etc.).

  • Info: Usually indicates successful service start/stop, versions and such non-error related data. This should include largely positive units of work that are accomplished (e.g. service setup, environment create, successful application deployment).

  • Warning: Indicates that there might be a systemic issue; potential predictive failure notice (e.g. package execution problems, problems with categories listing).

  • Error: An error has occurred and an administrator should research the event (e.g. deployment failed, app add failed).

  • Critical: An error has occurred and the system might be unstable, anything that eliminates part of murano’s intended functionality; immediately get administrator assistance (e.g. failed to access keystone/database, plugin load failed).

As far as murano-dashboard has it own notification system all notifications should be duplicated at log messages and should follow this spec in the selection of log level.

Here are examples of log levels depending on environment execution:

  • Action execution:

LOG.debug('Action:Execute <ActionId: {0}>'.format(action_id))
  • Environment creation:

LOG.info(_LI('Environments:Create {id} succeed>'.format(id=environment.id)))
  • Package execution problems

LOG.warning(_LW("Class is defined in multiple packages!"))
  • Environment is not found

LOG.error(_LE('Environment {id} is not found').format(id=environment_id))

Additional step for our logging system should be usage of pep3101 as unified format for all our logging messages. As soon as we try to make our code more readable please use {<smthg>} instead of {0} in log messages.

Alternatives

We need to follow OpenStack guidelines, but if needed we can move plugin logs to DEBUG level instead of INFO. It should be discussed separately in each case.

Data model impact

None

REST API impact

None

Other end user impact

None

Deployer impact

None

Developer impact

None

murano-image-elements impact

None

murano-dashboard / Horizon impact

None

Implementation

Assignee(s)

Primary assignee:

starodubcevna

Work Items

  • Unify existing logging system

  • Unify logging messages

  • Synchronize dasboard notifications and log entries

  • Add additional logs if needed

Dependencies

None

Testing

None

Documentation Impact

None

References

https://blueprints.launchpad.net/nova/+spec/log-guidelines https://www.python.org/dev/peps/pep-3101/