Merge OpenStack related logs meaningfully.
Go to file
Miguel Angel Ajo db9527b3d4 Ignore initial non-dated lines
Initial lines, if non dated, generated an exception, this fixes
the issue by ignoring those lines.
2015-11-08 22:41:42 +01:00
contrib/debug-live-migration Include contrib script to debug live migrations. 2015-10-29 16:22:50 +01:00
oslogmerger Ignore initial non-dated lines 2015-11-08 22:41:42 +01:00
README.rst Support for URLS instead of local log files, simple caching. 2015-11-06 14:11:56 +01:00
setup.cfg Fixed rst file, bumped version, fixed homepage link 2015-10-27 14:48:05 +01:00
setup.py Support for URLS instead of local log files, simple caching. 2015-11-06 14:11:56 +01:00

README.rst

oslogmerger

What is oslogmerger?

oslogmerger stands for OpenStack LOG merger, it's a tool designed to take a bunch of openstack logs across different projects, and merge them in a single file, ordered by time entries.

It should work as long as the logs are based on oslo logger output.

Limitations

This tool is not able to properly (or meaningfully) merge logs if your servers are not time synced to a common source.

This is a naive implementation, not smart at all, instead of runtime comparing input dates as they come from log files, we create a big memory list with all log lines, sort them, and spite them out. This can be improved.

How to install

pip install oslogmerger

How to use it

oslogmerger ../bz/1257567/40-os1ctrl01/var/log/neutron/server.log:NS1 \
            ../bz/1257567/50-os1ctrl02/var/log/neutron/server.log:NS2 \
            ../bz/1257567/40-os1ctrl01/var/log/neutron/openvswitch-agent.log:OVS1 \
            ../bz/1257567/50-os1ctrl02/var/log/neutron/openvswitch-agent.log:OVS2

Please note that the :NS1, :NS2, :OVS1, :OVS2 are aliases and can be omitted, and in such case, the extra column used to associate a log file to a log line will use the original file path instead of the [ALIAS]

The previous example would produce something like this:

2015-08-25 09:37:15.463000 [NS1] 15062 DEBUG neutron.context [req-b751a750-f5d8-4b6e-9af3-82d143ef9416 None] Arguments dropped when creating context: {u'project_name': None, u'tenant': None} __init__ /usr/lib/python2.7/site-packages/neutron/context.py:83
2015-08-25 09:37:15.463000 [NS1] 15062 DEBUG neutron.plugins.ml2.db [req-b751a750-f5d8-4b6e-9af3-82d143ef9416 None] get_ports_and_sgs() called for port_ids [u'4136d577-e02f-47c1-b543-f0bfd65ef85e', u'5d5ea109-4807-4df3-bef4-b5d89c3ffebc', u'6adcffbf-09d5-4a85-9339-9d6beb2bf82c', u'6b4d7b51-c87d-483e-9606-0e2a54ad8184', u'743ccaa6-7ed9-4195-aabd-3d55006338e1', u'dc662767-61a5-4807-b2ed-a7c76b541fd6', u'4decdd33-6f13-46df-b2f0-d9ff99878514', u'34b826df-9787-443c-9bef-084374827a85', u'7bbc404b-3df7-498a-b6fb-e81f9370a19f', u'c12e6e06-ff6a-44dc-b75f-78ec55dd3dd3', u'586cd86d-59d0-434b-ab27-76975ce5abc4', u'79b33879-3232-4b3a-a27c-c0a79da10379', u'ba6a28cc-9851-4cd7-acae-40034a19c761', u'05c4115a-da58-41db-b3f7-7326e1a22971'] get_ports_and_sgs /usr/lib/python2.7/site-packages/neutron/plugins/ml2/db.py:224
2015-08-25 09:37:15.463000 [OVS1] 12613 DEBUG neutron.agent.linux.utils [req-588c942a-6526-464f-a447-782a5e2d436a None]
                                    Command: ['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ovs-vsctl', '--timeout=10', 'list-ports', 'br-int']
                                    Exit code: 0
                                    Stdout: 'ha-2cdba01d-e4\nha-44dca3a9-44\nha-499d3db7-97\nha-55a19f5e-ef\nha-b2d04f15-f2\nha-b5b271a1-d8\nha-fa58d644-81\nint-br-enp7s0\nint-br-ex\nqr-34b826df-97\nqr-5d5ea109-48\nqr-6adcffbf-09\nqr-743ccaa6-7e\nqr-79b33879-32\nqr-c12e6e06-ff\nqr-dc662767-61\n'

References to http url files instead of local files is also supported. Files will be cached locally to avoid re-downloading on next runs.