Wayseer

User guideWayseer 0.28.3Contents

Wayseer itself

The internal module shows Wayseer's own health: how fast it draws, how much memory it holds, its event bus, the state of every other module, and its log. It is in the default config, and it always has something to show, so a new config is never empty.

Configuration

modules:
  - kind: internal
    name: wayseer

The options below go under options.

OptionTypeDefaultMeaning
intervalduration1sHow often Wayseer samples itself.
historyduration1hHow far back series are kept, 10 intervals to 24h.

What shows

process (Wayseer)

ok

Attributes
pid
go_version
version
started

wayseer/bus

ok

Attributes
topics

wayseer/module

ok when live; warn with no recent data; crit with the module's error; down when disconnected

Attributes
kind
freshness
note

Each module and the bus runs on Wayseer. A module's entity is the quickest way to see why a source shows nothing: its status reason is the module's last error. note holds what the module reports without failing, such as a machine without systemd.

Each line of its log becomes an event, at the line's level, in Stream and on the Timeline. So does the outcome of each action, on the entity it was for, of kind action; a failed one is a warning.

Metrics

MetricUnitKindsMeaning
frame.timesecondsprocessMean time to draw a frame; no point while nothing is drawn.
frame.time_maxsecondsprocessSlowest frame.
memory.heapbytesprocessLive heap objects.
memory.runtimebytesprocessAll memory the Go runtime holds, which memory.limit bounds.
memory.limitbytesprocessThe config's memory_limit, past which the GC works harder.
runtime.goroutinescountprocessLive goroutines.
bus.publishedper_secondwayseer/busEvents published on every topic.
bus.droppedper_secondwayseer/busEvents a full subscriber missed.
log.missedper_secondprocessLog lines overwritten in the ring before they became events.
frame.rate.inputper_secondprocessFrames drawn for a key, the pointer, the window, or a reply to them.
frame.rate.animationper_secondprocessFrames drawn while something moves.
frame.rate.worldper_secondprocessFrames drawn because a module changed the world.
frame.rate.seriesper_secondprocessFrames drawn because series or events arrived.
frame.rate.liveper_secondprocessFrames drawn to move a live time bar on.
frame.rate.desktopper_secondprocessFrames drawn because the desktop's look changed.

F3 also shows frame times on screen (keys), and beneath them why frames were drawn, a second at a time: input, animation, world, series, live or desktop. The frame.rate metrics count the same. Wayseer draws only when something changes, so an idle window draws when a module updates and, with a live time window, as the time bar moves on: about twice a second for 15 minutes, and never more than four times. A degraded entity's glow breathing in Topology draws 30 frames a second.