Skip to content

[QUESTION] Overview Warnings #2422

Description

@ehaar

Which component is your question about?

Darling

Performance Monitor Version

3.5.0

Is your question about how it works, or the results?

How the tool works

What's your question?

Watching the Overview tab I can see several Criticals (in red), Warnings (in yellow) and so on. The first server info block in the screenshot says 'Warning' in yellow.
The question: what is it that this text warns me about...? How can I find what it means and how can I resolve this warning?
The warnings in the 'Needs Attention' block point to other servers than the ones displayed in the screenshot.
'+52 More need attention' - Where do I find these warnings?
Thanks in advance.

Additional Context

Image

Activity

  1. erikdarlingdata commented on Aug 21, 2026

    @erikdarlingdata
    Owner

    Good questions, and two of the three have answers I am not happy with — the product knows the thing you are asking for and does not show it to you. Details below, and I have opened #2423 to fix both.

    What the "Warning" on a server card means

    The band is derived from that card's own metrics — nothing hidden, nothing off-screen. ServerHealthClassifier.ClassifyBand takes four inputs: is the server online, is it awaiting its first collection, does it have collector errors, and the worst severity across the card's metrics. Those metrics are:

    CPU · Threads · Memory · Blocking · Deadlocks · Collectors

    So the card says Warning because at least one of those rows on that same card is in its warning range, and Critical if any is critical. Offline and "awaiting first collection" are separate states rather than metric-driven ones.

    How to find which one — today, and why it is annoying

    Read down the card and find the metric that is yellow or red. That works, but it is a worse answer than it should be, because the code already computes exactly the sentence you want:

    if (s.CpuSeverity >= HealthSeverity.Warning)     parts.Add($"CPU {s.CpuDisplay}");
    if (s.ThreadsSeverity >= HealthSeverity.Warning) parts.Add($"Threads {s.ThreadsDisplay}");
    if (s.MemorySeverity >= HealthSeverity.Warning && s.HasMemoryPressure) parts.Add($"Memory: {s.MemoryDetail}");

    BuildReason produces "CPU 94%, Blocking 12" for any server — and it is used only for the Needs Attention list, never for the card. The card's status is a bare text block with no tooltip. So the explanation exists, is already computed for the server you are looking at, and is thrown away. That is the first half of #2423.

    For resolving it: open the server's tab and the relevant sub-tab for whichever metric is flagged — that is where the history, the top queries, the blocking chains and the wait breakdown live. The card is a summary surface, not a diagnostic one.

    Why Needs Attention names different servers than the cards

    They are two different views and the mismatch is expected, though nothing on screen says so.

    Needs Attention is a fleet-wide, worst-first ranking capped at 5. The ordering is: band rank dominates (Offline > Critical > Warning > Healthy) in steps of 1000; within a band, the count of Critical metrics, then Warning metrics; then blocking + deadlock incident counts as the tiebreak. So it is "the 5 worst servers anywhere in the fleet".

    The cards below are the server list itself. With 50+ servers the worst 5 will usually not be the first 5 cards, so the two lists disagreeing is the normal case rather than a bug.

    "+52 more need attention" — where do you find them?

    Nowhere, and that is a real defect rather than something you missed. It is a plain TextBlock:

    <TextBlock x:Name="FleetAdditionalProblemsText" Text="{Binding AdditionalProblemText}"
               FontSize="11" Foreground="{DynamicResource ForegroundMutedBrush}" .../>

    No click handler, no navigation, no filter. It tells you 52 servers need attention and offers no way to see which. With a fleet your size that is the majority of the information hidden behind a number, which is the second half of #2423 — it should filter the card list to the servers that need attention, or at minimum be honest that it is only a count.

    Thanks for asking rather than assuming you had missed a menu. The "+52" one in particular is the kind of thing that reads as "I do not know where to look" when the honest answer is "there is nowhere to look yet".

  2. erikdarlingdata commented on Aug 21, 2026

    @erikdarlingdata
    Owner

    Both of these are fixed on dev now (#2429), and your question turned up more than the two things you asked about.

    The card will tell you why. Hovering the status word gives the reason, built from the same metric displays shown underneath it — so it cannot drift from what the card says. Critical — CPU 96%, Blocking 6, and so on.

    Your card specifically was not a metric at all. The first block in your screenshot reads Warning — collection stale. StatusDisplay renders the word "Warning" for a stale collection as well as for a metric breach, and nothing on screen distinguished them — so you were looking for a threshold to chase when the actual message was "this server has not reported recently". That is the single best example of why you had to ask, and it is now stated outright.

    "+52 more need attention" is a link. It turns on a "Needs attention only" toggle beside the Sort selector, filtering the card list to exactly the servers behind that number — the same predicate the count itself uses, so the destination cannot disagree with the label. It is clearable, and while it is on you get showing 12 of 57 next to it so a filtered list can never be mistaken for an unfiltered one.

    The Needs Attention list still caps at 5 deliberately. It sits in a header that does not scroll, so a list growing with the fleet would push the cards it points at off the screen and stop being a shortlist. The fix for an overflow is somewhere to go, which is what the link now is.

    One more thing worth telling you, because it came from chasing your question: the work found four places where the status word and the underlying state disagreed — two of them nobody had reported, caught by testing every combination of the flags rather than the cases we knew about. Two of those could show Warning — Needs attention on a card with nothing wrong with it. So the tooltip did not just explain the existing behaviour, it exposed some of it as incorrect.

    Thanks for asking rather than assuming you had missed a menu. It ships in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions