mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 18:20:27 +00:00
Similar to video compression which uses key-frames and differences between them: every N publishes we send a full report, but inbetween we only send what has changed. Fairly simple approach in the probe - hold on to the last full report, and for the deltas remove anything that would be merged in from the full report. On the receiving side in the app it already merges a set of reports together to produce the final output for rendering, so provided N is smaller than that set we don't need to do anything different. Deltas don't need to represent nodes that have disappeared - an earlier full node will have that node so it would be merged into the final output anyway.
Quick overview
Information gatherers
These implement the Reporter interface
awsecsDeals with talking to AWS ECS to get stats and infodockerInspects the docker statusendpointGathers connection datahostGets data from the host os, including things like CPU and mem statskubernetesGathers data from k8soverlayTalks to Weave Net for network stats from the overlay networkprocessIs code that looks up running process and stats form the os
Utility and control
appclientDeals with generating and sending reportscontrolsUtility code for control messages and the likepluginsallows plugins to be added to the probe.