[SERVER-61744] Handle a new WiredTiger system log component hierarchy in LOGV2 Created: 25/Nov/21  Updated: 29/Oct/23  Resolved: 12/Jan/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.3.0

Type: New Feature Priority: Major - P3
Reporter: Deepti Hasija Assignee: Alison Felizzi (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File diff.txt    
Issue Links:
Depends
depends on WT-8479 Expose verbose category identifiers i... Closed
is depended on by SERVER-62360 Handle reconfiguring the WiredTiger L... Closed
Documented
is documented by DOCS-15025 Investigate changes in SERVER-61744: ... Closed
Duplicate
duplicates SERVER-61745 Update servers WT_EVENT_HANDLER imple... Closed
duplicates SERVER-61746 Update the server’s initialisation of... Closed
Backwards Compatibility: Minor Change
Sprint: Storage - Ra 2021-12-13, Storage - Ra 2022-01-10, Storage - Ra 2022-01-24
Participants:
Story Points: 8

 Description   
  • Define a new system log component hierarchy in LOGV2: systemLog.component.wiredTiger.<newComponent>|systemLog.component.storage.wiredTiger.<newComponent>
    • Determining which WiredTiger verbose events we want to map into the LOGV2 component hierarchy
  • Update the server’s initialization to use WiredTiger JSON message strings
    • Server initialization of WiredTiger passes ‘json_output’ configuration options
    • Server initialization of WiredTiger constructs the WiredTiger configuration string to reflect our new logging component hierarchy.
    • Prevent reconfiguring the WiredTiger component verbose levels at runtime.
  • Update servers WT_EVENT_HANDLER implementation to be able to handle JSON message strings
    • Parses JSON and passes it onto the corresponding LOGV2 message/errors.
  • Implement functional tests


 Comments   
Comment by Githook User [ 12/Jan/22 ]

Author:

{'name': 'Etienne Petrel', 'email': 'etienne.petrel@mongodb.com', 'username': 'etienneptl'}

Message: SERVER-61744 Integrate WiredTiger's verbose messaging system with LOGV2

Co-authored-by: Alison Felizzi <alison.felizzi@mongodb.com>
Branch: master
https://github.com/mongodb/mongo/commit/dbba52bba7f7a822e0f43d14bffe782e0706b570

Comment by Etienne Petrel [ 03/Dec/21 ]

Posting some code changes that seem to be a good start: diff.txt

Comment by Alison Felizzi (Inactive) [ 30/Nov/21 ]

To map the WiredTiger verbose categories into the server, etienne.petrel and I discussed establishing the following LOGV2 component hierarchy below.

Generally, we aimed to expose a WT category as a distinct component if its either a subsystem that MongoDB could explicitly interact with (i.e. via the API), or if the subsystem is considered a significant function of WiredTiger from an observability perspective (e.g eviction). Otherwise, if the verbosity component is more specific to WiredTiger internals or is only mostly useful for debugging, we default it to the top-level 'wiredtiger' component.

Happy to take any feedback with respect to splitting/removing/merging a category.

WiredTiger LOGV2 Hierarchy:

Component Log Name WiredTiger Verbose Message Mapping Notes
wiredtiger
(systemLog.component.storage.wiredtiger)
WT
  • "api"
  • "block"
  • "block_cache"
  • "error_returns"
  • "fileops"
  • "handleops"
  • "lsm"
  • "lsm_manager"
  • "metadata"
  • "mutex"
  • "overflow"
  • "read"
  • "reconcile"
  • "shared_cache"
  • "split"
  • "temporary"
  • "thread_group"
  • "version"
  • "write"
Default top-level WiredTiger component, child of 'systemLog.component.storage'. 
 
Serves additionally as the default fallback component for any WiredTiger verbose message categories without an explicit mapping.
wiredtigerBackup
(systemLog.component.storage.wiredtiger.wiredtigerBackup)
WTBACKUP
  • "backup"
 
wiredtigerCheckpoint
(systemLog.component.storage.wiredtiger.wiredtigerCheckpoint)
WTCHKPT
  • "checkpoint"
  • "checkpoint_cleanup"
  • "checkpoint_progress"
 
wiredtigerCompact
(systemLog.component.storage.wiredtiger.wiredtigerCompact)
WTCMPCT
  • "compact"
  • "compact_progress"
 
wiredtigerEviction
(systemLog.component.storage.wiredtiger.wiredtigerEviction)
WTEVICT
  • "evict"
  • "evict_stuck"
  • "evictserver"
 
wiredtigerHS
(systemLog.component.storage.wiredtiger.wiredtigerHS)
WTHS
  • "history_store"
  • "history_store_activity"
 
wiredtigerRecovery
(systemLog.component.storage.wiredtiger.wiredtigerRecovery)
WTRECOV
  • "recovery"
  • "recovery_progress"
 
wiredtigerRTS
(systemLog.component.storage.wiredtiger.wiredtigerRTS)
WTRTS
  • "rts"
 
wiredtigerSalvage
(systemLog.component.storage.wiredtiger.wiredtigerSalvage)
WTSLVG
  • "salvage"
  • "salvage_progress"
 
wiredtigerTiered
(systemLog.component.storage.wiredtiger.wiredtigerTiered)
WTTIER
  • "tiered"
 
wiredtigerTimestamp
(systemLog.component.storage.wiredtiger.wiredtigerTimestamp)
WTTS
  • "timestamp"
 
wiredtigerTransaction
(systemLog.component.storage.wiredtiger.wiredtigerTransaction)
WTTXN
  • "transaction"
 
wiredtigerVerify
(systemLog.component.storage.wiredtiger.wiredtigerVerify)
WTVRFY
  • "verify"
 
wiredTigerWriteLog
(systemLog.component.storage.wiredtiger.wiredTigerWriteLog)
WTWRTLOG
  • "log"
 
Generated at Thu Feb 08 05:53:13 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.