Skip to content

Conversation

@glennmatthews
Copy link
Collaborator

Fixes #7. Use structlog for structured logging, and ensure that the current logs generated by DSync provide the necessary structured log context to be usable for SOT Sync.

Example, with debug logs enabled:

(dsync-Umutkkqc-py3.8) glennmatthews@Glenns-MacBook-Pro example1 % PYTHONPATH=../.. python main.py -vv
Initializing and loading Backend A...
Initializing and loading Backend B...
Initializing and loading Backend C...
Getting diffs from Backend A to Backend B...
2020-10-09 20:44.02 [info     ] Beginning diff                 [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
2020-10-09 20:44.02 [info     ] Diff complete                  [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
site
  site: nyc
    device
      device: nyc-spine1
        interface
          interface: eth0
            description   Backend-A(Interface 0)   Backend-B(Interface 0/0)
  site: sfo
    device
      device: sfo-spine2
        interface
          interface: eth2 MISSING in Backend-B
  site: atl MISSING in Backend-A
    device
      device: atl-spine1 MISSING in Backend-A
        interface
          interface: eth0 MISSING in Backend-A
          interface: eth1 MISSING in Backend-A
      device: atl-spine2 MISSING in Backend-A
        interface
          interface: eth0 MISSING in Backend-A
          interface: eth1 MISSING in Backend-A
Syncing changes from Backend A to Backend B...
2020-10-09 20:44.02 [info     ] Beginning diff                 [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
2020-10-09 20:44.02 [info     ] Diff complete                  [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
2020-10-09 20:44.02 [info     ] Beginning sync                 [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
2020-10-09 20:44.02 [debug    ] Attempting object update       [dsync] action=update diffs={'description': {'src': 'Interface 0', 'dst': 'Interface 0/0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=nyc-spine1__eth0
2020-10-09 20:44.02 [info     ] Updated successfully           [dsync] action=update diffs={'description': {'src': 'Interface 0', 'dst': 'Interface 0/0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=nyc-spine1__eth0
2020-10-09 20:44.02 [debug    ] Attempting object creation     [dsync] action=create diffs={'description': {'src': 'Interface 2', 'dst': None}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=sfo-spine2__eth2
2020-10-09 20:44.02 [info     ] Created successfully           [dsync] action=create diffs={'description': {'src': 'Interface 2', 'dst': None}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=sfo-spine2__eth2
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=site src=<Backend A "Backend-A"> unique_id=atl
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=site src=<Backend A "Backend-A"> status=success unique_id=atl
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=device src=<Backend A "Backend-A"> unique_id=atl-spine1
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=device src=<Backend A "Backend-A"> status=success unique_id=atl-spine1
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=atl-spine1__eth0
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=atl-spine1__eth0
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 1'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=atl-spine1__eth1
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 1'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=atl-spine1__eth1
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=device src=<Backend A "Backend-A"> unique_id=atl-spine2
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=device src=<Backend A "Backend-A"> status=success unique_id=atl-spine2
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=atl-spine2__eth0
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 0'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=atl-spine2__eth0
2020-10-09 20:44.02 [debug    ] Attempting object deletion     [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 1'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> unique_id=atl-spine2__eth1
2020-10-09 20:44.02 [info     ] Deleted successfully           [dsync] action=delete diffs={'description': {'src': None, 'dst': 'Interface 1'}} dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> model=interface src=<Backend A "Backend-A"> status=success unique_id=atl-spine2__eth1
2020-10-09 20:44.02 [info     ] Sync complete                  [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
Getting updated diffs from Backend A to Backend B...
2020-10-09 20:44.02 [info     ] Beginning diff                 [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">
2020-10-09 20:44.02 [info     ] Diff complete                  [dsync] dst=<BackendB "Backend-B"> flags=<DSyncFlags.NONE: 0> src=<Backend A "Backend-A">

@dgarros dgarros self-requested a review October 11, 2020 18:25
@glennmatthews glennmatthews merged commit be67a12 into master Oct 13, 2020
@glennmatthews glennmatthews deleted the gfm-logging branch October 13, 2020 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Detailed logging via configurable API

3 participants