[DRIVERS-1204] Easier debugging with standardized logging Created: 22/Apr/20  Updated: 31/Jan/24

Status: Implementing
Project: Drivers
Component/s: Logging
Fix Version/s: None

Type: Epic Priority: Major - P3
Reporter: Bernie Hackett Assignee: Boris Dogadov
Resolution: Unresolved Votes: 6
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Cloners
Depends
depends on CSHARP-2829 Add logging to the driver Closed
depends on PYTHON-2076 Provide importable APM event listeners Closed
is depended on by TOOLS-2636 Remove logging code in MTC in favor o... Waiting (Blocked)
is depended on by PHPC-1425 Sanitize URI and certificate password... Blocked
is depended on by CSHARP-3589 Unknown compressor does not log a war... Blocked
Gantt Dependency
has to be done before DRIVERS-2754 Log Successfully Retried Reads/Writes Backlog
Issue split
split to CDRIVER-3775 Easier debugging with standardized lo... Backlog
split to CXX-2448 Easier debugging with standardized lo... Backlog
split to PHPC-2061 Easier debugging with standardized lo... Backlog
split to RUBY-2900 Easier debugging with standardized lo... Backlog
split to CSHARP-4044 Easier debugging with standardized lo... Closed
split to GODRIVER-1712 Easier debugging with standardized lo... Closed
split to MOTOR-888 Easier debugging with standardized lo... Closed
split to RUST-1176 Easier debugging with standardized lo... Closed
split to JAVA-4485 Easier debugging with standardized lo... Scheduled
split to NODE-3974 Easier debugging with standardized lo... Implementing
split to PYTHON-3113 Easier debugging with standardized lo... Implementing
Problem/Incident
Related
related to RUBY-3182 Easier debugging with standardized lo... Scheduled
related to JAVA-4486 POC changes needed to implement unifi... Closed
related to CSHARP-3663 Introduce simple logging instrumentat... Closed
related to PHPC-1991 Enable logging <various level> in driver Closed
related to DRIVERS-2530 Do not perform server selection to de... Implementing
related to DRIVERS-2480 Mitigate negative effects of OCSP end... Backlog
related to DRIVERS-2676 Add additional logging messages to SDAM Backlog
is related to GODRIVER-1242 Logging framework Closed
is related to NODE-3503 Fix logger options and reintroduce lo... Closed
is related to DRIVERS-2527 Log timeoutMS at the operation level Backlog
Driver Changes: Needed
Quarter: FY23Q3, FY23Q4, FY24Q1
Downstream Changes Summary:
  • Implement logging infrastructure and unified test runners defined in DRIVERS-1677
  • Implement log messages and corresponding tests for each component
Case:
Engineering Lead: James Kovacs James Kovacs
Product Manager: Rachelle Palmer Rachelle Palmer
Program Manager: Esha Bhargava Esha Bhargava
Start date:
Scope Cost Estimate: 8
Cost to Date: 12
Final Cost Estimate: 16
Detailed Project Statuses:

Engineer: Isabel Atkinson/Boris Dogadov
Summary: The goal of this project is to define a default set of debug logging messages that drivers should produce, and a standardized, trivial mechanism drivers should support for enabling, disabling, and configuring debug logging.

2023-07-21:

  • Spec work is now complete! Go, .NET and Rust implementations close to wrapping up

2023-07-07:

  • Go implementation for SDAM logging is in review, Rust in progress

 

2023-06-23:

  • Go picked up the second implementation for SDAM logging last week. Hoping to wrap that up by 6/30

2023-06-08

  • Currently waiting on the second implementation for SDAM logging work

2023-05-26

  • Server Selection Logging done in the spec, .NET, and Rust! SDAM Logging work in review.

2023-05-12

  • Boris is actively working on this and plans on wrapping up the work within the next week

2023-04-28

  •  On pause since Boris is OOO until 5/5

2023-04-14

  • Remaining spec work on pause since Boris is OOO until 5/5

2023-03-31

  • Spec work for adding log messages to the SDAM spec is now complete. Waiting on the second implementation (Rust) before finalizing the changes
  • Spec work for adding log messages to the server selection spec is currently on hold due to limited bandwidth. Boris has some time off coming up and is currently prioritizing reviewing / ramping up on things on Dima's plate. We'll revisit the timeline for finishing the spec work as a part of our upcoming QP prep meeting

2023-03-17

  • Boris is planning on wrapping up the remaining spec work in the next 2 weeks

2023-03-03

  • Boris is currently working on the SDAM spec and will work on the server selection spec next. He is hoping to wrap up the remaining spec work in the next two weeks

2023-02-17

  • Boris will resume the SDAM spec work next week

2023-02-03

  • Boris has taken the spec over from Kaitlin.
  •  SDAM logging is in progress.

2023-01-20

  • SDAM logging is in progress.
  • Server selection PR remains paused because of a dependency on DRIVERS-2337.  
  • Boris will take over the spec from Kaitlin.

2023-01-06

  • Server selection PR is paused because of a dependency on DRIVERS-2337.
  • SDAM logging is in progress.

2022-12-23

  • Server selection PR is close to complete.
  • SDAM logging is in progress.

2022-11-23

  • Server selection PR is in review.
  • SDAM logging is in progress.

2022-11-11

  • CMAP PR merged.
  • Server selection PR is in review.
  • Last piece of work is SDAM logging.

2022-10-28

  • First PR for Logging Spec and Command logging merged.
  • CMAP is in review. 
  • Server selection PR is up next.
  • Minor follow up conversations now that Node and Go started their implementations, no major changes so far.

2022-10-14

  • First PR is in review. Still working on open questions remain on redaction of errors and testing.
  • PR to add CMAP messages and tests is up next.

2022-09-29

  • First PR is in review. A few open questions remain on redaction of errors and testing.
  • PR to add CMAP messages and tests is up next.

2022-09-16

  • First PR is up for review.
  • Tests are passing in RUST, Java, .NET.
  • PR to add CMAP messages and tests is up next.

2022-09-02

  • Spent time looking into server selection logging, now focused on getting the first spec PR ready, targeting next week.
  • Delayed SDAM logging due to a possible conflict with streamable hello.
  • Adding cost based on estimated time to prepare spec PRs and reviews.

2022-08-19

  • Finished POCing connection pool logging tests. Now working on server selection logging in Rust, + corresponding tests.
  • Following that, remaining tasks are SDAM logging, and then preparing spec PRs for formal review.
  • Second implementation in .NET has been started.

2022-08-05

  • Implemented connection pool logging in Rust, now working on writing YAML tests. Met with Boris and James to discuss .NET implementation

 2022-07-25

  • Wrote more unified and prose command logging tests, and incorporated feedback on them.
  • Got CMAP log messages POC implemented in Rust; now working on tests for them.

 2022-07-08

  • Not incrementing cost due to holiday and PTO.
  • Jeff determined via Java that proposed tests will be feasible for drivers doing unstructured logging

 


 2022-06-14:

  • Drafted some command logging tests; got corresponding test runner changes implemented and tests passing in Rust. TBD if proposed tests will be feasible for drivers doing unstructured logging - will determine this via a Java POC
  • Next going to try implementing log messages for a couple more specs (SDAM, CMAP) to see if there are any considerations we've missed with command messages.

2022-06-10: Have made a small amount of progress on drafting tests and Rust test runner changes needed to run them. Not incrementing cost as only 1-2 days were spent on this


2022-05-27: Converted command monitoring tests to the unified format. Started on logging assertions to tests.


2022-05-12: Initial implementation of command logging in RUST is almost complete, shifting focused to testing.


2022-04-22: Project was on hold as Kaitlin was focused on other priority tasks.


2022-04-19: Kaitlin is working on a first implementation of the spec and logging command messages in Rust.


2022-04-01: Kaitlin resuming this project with a future implementation in RUST.


Lead: Jeff Yemin
Author: Kaitlin Mahar

2021-01-12:

  • On Pause. We’ll revisit priority in our QP prep meeting on 1/15

2020-12-22:

  • No new updates. Kaitlin OOO from 12/21 - 1/3.

2020-12-15:

  • Still on pause. Kaitlin spent the last few weeks wrapping up the work for unified test runner in Swift, working on a design for Nataly’s rotation project, and getting ramped up on Node.
  • She’ll be OOO from 12/21 - 01/3 and will pick this up after coming back.
Driver Compliance:
Key Status/Resolution FixVersion
PYTHON-2076 Fixed 3.11
CSHARP-2829 Won't Do
SWIFT-991 Won't Do
CDRIVER-3775 Backlog
GODRIVER-1712 Fixed 1.13.0, 1.13.1
CXX-2448 Backlog
CSHARP-4044 Done
JAVA-4485 Scheduled
NODE-3974 Implementing
MOTOR-888 Duplicate
PYTHON-3113 Implementing 4.7
PHPC-2061 Backlog
RUBY-2900 Backlog
RUST-1176 Fixed 2.7.0

 Description   
Epic Summary

Summary

A common complaint from our support team is that they don't know how to get debugging information out of drivers. Some drivers provide debug logging for this purpose, others do not. For drivers that do provide it, the log messages produced and the mechanisms for enabling debug logging are not consistent.

The goal of this project is to define a default set of debug logging messages that drivers should produce, and a standardized, trivial mechanism drivers should support for enabling, disabling, and configuring debug logging. This will provide TSEs, CEs and users an easy way to get debugging information out of our drivers. Each driver should additionally provide easily discoverable documentation on how to enable logging and what features are provided.

The key idea here is to provide consistency across drivers, making it easier to support all drivers and far easier to document how to debug specific issues.

Cast of Characters

Lead: Jeff Yemin
Author: Kaitlin Mahar
POCs: Rust - Kaitlin, C# - Boris
Product Owner: Rachelle Palmer

Documentation

Scope Document
Technical Design Document



 Comments   
Comment by PM Bot [ 31/Mar/22 ]

If you are not logged in, you can view the tickets in this epic by following this link.

Comment by PM Bot [ 14/Jan/22 ]

If you are not logged in, you can view the tickets in this epic by following this link.

Comment by Alexander Golin (Inactive) [ 20/Jan/21 ]

Moving back to Open after deprioritizing in QP prep for FY22Q1

Generated at Thu Feb 08 08:23:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.