Update getting-started.md - #907
Merged
Merged
Conversation
jeremydmiller
added a commit
that referenced
this pull request
Aug 1, 2026
…c-metrics System traffic no longer counts as application message metrics (CritterWatch GH-907)
uniquelau
pushed a commit
to uniquelau/wolverine
that referenced
this pull request
Aug 1, 2026
…erWatch JasperFxGH-907) An idle Wolverine app with CritterWatch applied reported ~150 messages a minute of nothing but its own machinery: agent commands on the node control queues, acknowledgements, and CritterWatch's monitoring messages — the last of which fed back on itself, since the accumulator's exports are published to CritterWatch as messages that were themselves counted. Three gaps closed, all resolved ONCE at construction time (per endpoint, per executor) with no per-envelope branching, following the same shape as InlineSendingAgent's sendWithTracing/sendWithOutTracing split: - The meter counters in WolverineRuntime.Tracking were unconditional — every send incremented wolverine-messages-sent no matter what the traffic was. Sending agents, local queues, and listening pipelines now resolve their tracker through MessageTrackingFor(endpoint): a System-role endpoint or one with TelemetryEnabled = false gets the new metrics-silent SystemTrafficMessageTracker, which keeps the debug logging, tracked-session bookkeeping, and wire taps but records nothing. - The executor factory excluded only IAgentCommand, and only in the CritterWatch publishing modes. It now excludes the full system-message surface (IInternalMessage, IAgentCommand, INotToBeRouted — which covers ICritterWatchMessage and acknowledgements — and opted-out assemblies) in EVERY metrics mode, and consults the endpoint's role as well. - An endpoint promoted to node control duty (UseTcpForControlEndpoint) never received the System role, unlike the database and shared-memory control endpoints that are born with it. The NodeControlEndpoint setter stamps it now. The old IsSystemEndpoint string match stays as defense in depth for the accumulator paths, but the classification the system actually relies on is EndpointRole, per the JasperFxGH-907 acceptance criteria. Wolverine.CritterWatch's own endpoints get marked System-role in a matching CritterWatch-repo change (InternalsVisibleTo already covers it). Full CoreTests (2176) and MetricsTests (25, including the pump tests that prove application traffic is still counted in CritterWatch/Hybrid modes) pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013eR4GL278688VhyhrGcttJ
jeremydmiller
added a commit
that referenced
this pull request
Aug 2, 2026
…H-3774) MessageSucceededContinuation, NoHandlerContinuation, MoveToErrorQueue, and DiscardEnvelope reported through the runtime's GLOBAL tracker, bypassing the metrics-silent tracker the GH-907 work resolves at construction time — so a system message's completion still recorded wolverine-messages-succeeded and wolverine-effective-time, and in the publishing modes still fed the accumulator's effective-time rollup (the CritterWatch#880 producer: console round-trips like dlq-operation reported Avg Effective in the tens of millions of ms). The executor now stamps its resolved tracker on the MessageContext at execution time (NoHandlerExecutor gets the resolved tracker from the factory and does the same), and completion continuations resolve through CompletionTrackerFor: divert ONLY when the stamped tracker is the metrics-silent one; every other resolved tracker keeps the historical runtime-global reporting, because the Direct/Hybrid publishing trackers' completion methods post to their own sink AND delegate to the runtime — routing completions through them would double-count application traffic. Also guards the effective-time arithmetic against an unset SentAt in the runtime tracker and both publishing trackers (CritterWatch#880's other half): success/failure still count, the ~56-year now-minus-default figure is no longer recorded. Envelope.SentAt auto-initializes to UtcNow; the unset case arrives via wire deserialization when the header is absent. Four new tests in system_traffic_metrics_silencing pin the continuation diversion, the application-traffic fallback, and the SentAt guard; the two diversion tests were verified to FAIL against the unfixed continuations. Closes GH-3774 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix some missed/removed link