Ovirt Engine logs

This module contains the following parsers:

ServerLog - file /var/log/ovirt-engine/server.log

UILog - file /var/log/ovirt-engine/ui.log

EngineLog - file /var/log/ovirt-engine/engine.log

BootLog - file /var/log/ovirt-engine/boot.log

ConsoleLog - file /var/log/ovirt-engine/console.log

class insights.parsers.ovirt_engine_log.BootLog(context)[source]

Bases: Syslog

Provide access to /var/log/ovirt-engine/boot.log using the Syslog parser class.

Sample input:

03:46:19,238 INFO  [org.jboss.as.server] WFLYSRV0039: Creating http management service using socket-binding (management)
03:46:19,242 INFO  [org.xnio] XNIO version 3.5.5.Final-redhat-1
03:46:19,250 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.5.5.Final-redhat-1

Examples

>>> xnio_lines = boot_log.get('xnio.nio')
>>> len(xnio_lines)
1
>>> xnio_lines[0].get('procname')
'org.xnio.nio'
>>> xnio_lines[0].get('level')
'INFO'
>>> xnio_lines[0].get('message')
'XNIO NIO Implementation Version 3.5.5.Final-redhat-1'
time_format = '%H:%M:%S,%f'

The timestamp format assumed for the log files. A subclass can override this for files that have a different timestamp format. This can be:

  • A string in strptime() format.

  • A list of strptime() strings.

  • A dictionary with each item’s value being a strptime() string. This allows the item keys to provide some form of documentation.

  • A None value when there is no timestamp info in the log file

class insights.parsers.ovirt_engine_log.ConsoleLog(context)[source]

Bases: LogFileOutput

Provide access to /var/log/ovirt-engine/console.log using the LogFileoutput parser class.

class insights.parsers.ovirt_engine_log.EngineLog(context)[source]

Bases: LogFileOutput

Provide access to /var/log/ovirt-engine/engine.log using the LogFileoutput parser class.

Sample input:

2018-08-06 04:06:33,229+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engine' is using 0 threads out of 500, 8 threads waiting for tasks and 0 tasks in queue.
2018-08-06 04:06:33,229+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engineScheduled' is using 0 threads out of 100, 100 threads waiting for tasks.
2018-08-06 04:06:33,229+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engineThreadMonitoring' is using 1 threads out of 1, 0 threads waiting for tasks.
2018-08-06 04:06:33,229+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'hostUpdatesChecker' is using 0 threads out of 5, 5 threads waiting for tasks.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'commandCoordinator' is using 0 threads out of 10, 2 threads waiting for tasks.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'default' is using 0 threads out of 1, 5 threads waiting for tasks.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engine' is using 0 threads out of 500, 8 threads waiting for tasks and 0 tasks in queue.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engineScheduled' is using 0 threads out of 100, 100 threads waiting for tasks.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engineThreadMonitoring' is using 1 threads out of 1, 0 threads waiting for tasks.
2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'hostUpdatesChecker' is using 0 threads out of 5, 5 threads waiting for tasks.
2018-08-06 04:26:33,233+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'commandCoordinator' is using 0 threads out of 10, 2 threads waiting for tasks.
2018-08-06 04:26:33,233+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'default' is using 0 threads out of 1, 5 threads waiting for tasks.
2018-08-06 04:26:33,233+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'engine' is using 0 threads out of 500, 8 threads waiting for tasks and 0 tasks in queue.
2018-08-22 00:16:14,357+05 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.HotUnplugLeaseVDSCommand] (default task-133) [e3bc976c-bc3e-4b41-807f-3a518169ad18] START, HotUnplugLeaseVDSCommand(HostName = example.com, LeaseVDSParameters:{hostId='bfa308ab-5add-4ad7-8f1c-389cb8dcf703', vmId='789489a3-be62-40e4-b13e-beb34ba5ff93'}), log id: 7a634963

Examples

>>> from datetime import datetime
>>> "Thread pool 'engine'" in engine_log
True
>>> len(list(engine_log.get_after(datetime(2018, 8, 6, 4, 16, 33, 0))))
10
>>> matched_line = "2018-08-06 04:16:33,231+05 INFO  [org.ovirt.engine.core.bll.utils.ThreadPoolMonitoringService] (EE-ManagedThreadFactory-engineThreadMonitoring-Thread-1) [] Thread pool 'hostUpdatesChecker' is using 0 threads out of 5, 5 threads waiting for tasks."
>>> engine_log.get('hostUpdatesChecker')[-1].get('raw_message') == matched_line
True
>>> engine_log.get('vdsbroker')[-1].get('procname') == 'org.ovirt.engine.core.vdsbroker.vdsbroker.HotUnplugLeaseVDSCommand'
True
class insights.parsers.ovirt_engine_log.ServerLog(context)[source]

Bases: EngineLog

Provide access to /var/log/ovirt-engine/server.log using the EngineLog parser class.

Sample input:

2018-01-17 01:46:15,834+05 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0207: Starting subdeployment (runtime-name: "services.war")
2018-01-17 01:46:16,834+05 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0207: Starting subdeployment (runtime-name: "webadmin.war")
2018-01-17 01:46:17,739+05 WARN  [org.jboss.as.dependency.unsupported] (MSC service thread 1-7) WFLYSRV0019: Deployment "deployment.engine.ear" is using an unsupported module ("org.dom4j") which may be changed or removed in future versions without notice.

Examples

>>> 'is using an unsupported module' in server_log
True
>>> from datetime import datetime
>>> len(list(server_log.get_after(datetime(2018, 1, 17, 1, 46, 16, 0))))
2
>>> matched_line = '2018-01-17 01:46:17,739+05 WARN  [org.jboss.as.dependency.unsupported] (MSC service thread 1-7) WFLYSRV0019: Deployment "deployment.engine.ear" is using an unsupported module ("org.dom4j") which may be changed or removed in future versions without notice.'
>>> server_log.get('WARN')[-1].get('raw_message') == matched_line
True
>>> sec_lines = server_log.get('org.wildfly.security')
>>> len(sec_lines)
1
>>> sec_lines[0]['level']
'INFO'
class insights.parsers.ovirt_engine_log.UILog(context)[source]

Bases: EngineLog

Provide access to /var/log/ovirt-engine/ui.log using the EngineLog parser class.

Sample input:

2018-01-24 05:31:26,243+05 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-134) [] Permutation name: C068E8B2E40A504D3054A1BDCF2A72BB
2018-01-24 05:32:26,243+05 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-134) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError)

Examples

>>> 'Permutation name' in ui_log
True
>>> from datetime import datetime
>>> len(list(ui_log.get_after(datetime(2018, 1, 24, 5, 31, 26, 0))))
2
>>> exception_lines = ui_log.get('Uncaught exception')
>>> len(exception_lines)
1
>>> exception_lines[0].get('procname')
'org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService'
>>> exception_lines[0].get('level')
'ERROR'