Context
Walk Ex9 added Chef::Log.debug("op=knife_...")) timing to knife status and knife node show. Three high-usage commands remain uninstrumented: search, node list, and ssh.
Code Paths
lib/chef/knife/search.rb — wrap search call with CLOCK_MONOTONIC
lib/chef/knife/node_list.rb — wrap list query
lib/chef/knife/ssh.rb — wrap SSH session setup
Acceptance Criteria
Dependencies
Walk Ex9 timing pattern (merged). No blocking deps.
Size
Small — one PR covering all three commands.
Context
Walk Ex9 added
Chef::Log.debug("op=knife_..."))timing toknife statusandknife node show. Three high-usage commands remain uninstrumented:search,node list, andssh.Code Paths
lib/chef/knife/search.rb— wrap search call withCLOCK_MONOTONIClib/chef/knife/node_list.rb— wrap list querylib/chef/knife/ssh.rb— wrap SSH session setupAcceptance Criteria
Chef::Log.debug("op=knife_<cmd> status=ok elapsed_ms=N")after main I/OChef::Log.debugcalled with the timing patternai-track-docs/observability.mdupdatedDependencies
Walk Ex9 timing pattern (merged). No blocking deps.
Size
Small — one PR covering all three commands.