Commit Graph

1578 Commits

Author SHA1 Message Date
Herbert Wolverson
51b7c257a6 Tighten up the search a little 2023-05-10 20:24:11 +00:00
Herbert Wolverson
c1295a6461 Add child heat maps to site and ap 2023-05-10 19:44:10 +00:00
Herbert Wolverson
60224ba67b Add breadcrumbs to AP and Site pages. 2023-05-10 18:48:27 +00:00
Herbert Wolverson
8585cec8e6 For now, AP is the same as site 2023-05-10 16:57:25 +00:00
Herbert Wolverson
a1c4d6c6d0 Add initial site view. 2023-05-10 16:28:54 +00:00
Herbert Wolverson
3fe8e3db50 Basically functional site tree 2023-05-09 19:51:02 +00:00
Herbert Wolverson
d3e60caefe Check in before trying mermaid 2023-05-08 18:00:23 +00:00
Herbert Wolverson
c0aca98cdf Working site heatmap on root page. 2023-05-04 19:06:48 +00:00
Herbert Wolverson
a8b9248ab9 Fixup and improve the search function 2023-05-03 20:28:42 +00:00
Herbert Wolverson
76e4594915 This refactor is done. The client/server channels are persistent - allowing for bidirectional chatter in the future, cleaner separation and slightly better host tree stats in the database (not the GUI yet). 2023-05-03 19:05:09 +00:00
Herbert Wolverson
48d4b4cdd6 Work in progress. Major refactor, all of the LTS sender code is refactored into its own crate, and the TCP system is much smarter about keeping connections around and reusing - replacing if they go away. 2023-05-03 17:00:24 +00:00
Herbert Wolverson
551e55093a More refactoring: isolate key PKI functions into single space and reuse them. 2023-05-01 14:35:07 +00:00
Herbert Wolverson
abd58ca347 More refactoring - lts_client now contains the shared long-term stats data. 2023-05-01 14:09:12 +00:00
Herbert Wolverson
5a85406e30 Refactor the long-term stats module into cleaner code. 2023-05-01 13:34:52 +00:00
Herbert Wolverson
ac304b436b Checkpoint before I rearrange some things for efficiency. 2023-05-01 13:22:30 +00:00
Herbert Wolverson
72424fd433 Minimally working search function. Not great, but its a start. 2023-04-28 18:27:20 +00:00
Herbert Wolverson
0c0a7d48ce Very work in progress, but the tree data is now being collected. It's not as efficient as I'd like yet, but the data is there. Let's see how it scales with testing. 2023-04-28 14:04:44 +00:00
Herbert Wolverson
dfb7e0d342 Add node CPU/RAM usage 2023-04-27 17:23:50 +00:00
Herbert Wolverson
2d11ce87b7 Per-shaper page and shaper list page basically working, navigation functional. 2023-04-27 15:25:27 +00:00
Herbert Wolverson
b0c2a4dfd4 Calculate the WS url from the current active URL. 2023-04-26 18:48:36 +00:00
Herbert Wolverson
0d0b2d9b46 Finish RTT integration with multiple hosts.
Add a time period to graphs.
Add a drop-down selector for visible time period.
Remember your preferred setting from last time.
2023-04-26 18:04:17 +00:00
Herbert Wolverson
beab18b9ec Remove commented out code 2023-04-26 17:03:02 +00:00
Herbert Wolverson
1e806ebdd9 RTT is per-host aware. 2023-04-26 16:38:23 +00:00
Herbert Wolverson
84a3709a59 Separate per-host throughput lines 2023-04-26 16:09:30 +00:00
Herbert Wolverson
1c22faa0f0 Packets per second chart now includes all shaper nodes rendered separately. 2023-04-26 15:31:57 +00:00
Herbert Wolverson
107efcf845 Remove debug code 2023-04-26 13:54:57 +00:00
Herbert Wolverson
b13bbf232b Allow node_name to appear in lqos.conf, and use it as the display name for nodes. 2023-04-26 13:46:25 +00:00
Herbert Wolverson
945da4c740 Comment out some debug code that was left enabled by mistake 2023-04-26 13:16:03 +00:00
Herbert Wolverson
a3c7b4cc99 Include node type in tree building. 2023-04-26 13:07:40 +00:00
Herbert Wolverson
566d96e280 Starting work on tree merging. 2023-04-25 21:23:29 +00:00
Herbert Wolverson
de35424359 Show RTT data on dashboard. Stacking is now accurate. 2023-04-25 19:41:44 +00:00
Herbert Wolverson
ca52f3f696 Remove unused imports 2023-04-25 17:58:42 +00:00
Herbert Wolverson
3b4f95fdb1 Basic display of total statistics. 2023-04-25 17:49:56 +00:00
Herbert Wolverson
bdfc9d4ab6 Separate components in TS 2023-04-25 13:29:31 +00:00
Herbert Wolverson
09a9c28e3a Finish merge, round dashboard servers. 2023-04-25 01:40:52 +00:00
Herbert Wolverson
df3be0b73e Speed up integrationUISP.py
* Adds one more "is not none" check for a line that failed on my
  installation.
* Add a level of indentation to the inner "walkGraph" function,
  so it doesn't painstakingly check every node when it already
  knows that it won't pick them (for a route cost).

My testing gave the same results, substantially faster.
2023-04-24 20:53:43 +00:00
Herbert Wolverson
c7ca4b171d Reduce default maximum tracked hosts to 64k from 128k 2023-04-24 20:53:43 +00:00
Herbert Wolverson
92db07b449 Remove now unused code. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
c510a9399a Missing doctag 2023-04-24 20:53:43 +00:00
Herbert Wolverson
f573001007 Update Heimdall to also use eBPF iterators
This eliminates another set of syscalls per cycle. The old per_cpu
map system is now removed, in favor of direct iteration of maps.
2023-04-24 20:53:43 +00:00
Herbert Wolverson
1e5f59c5ce Now that we're differentiating between single-CPU and per-CPU map types, we can eliminate 8 bytes of bus traffic by not reporting CPU counts (and padding) 2023-04-24 20:53:43 +00:00
Herbert Wolverson
6db2cb0245 Add a little padding to the output stream kernel side, to nicely align on 64-bit boundaries. Then use aligned casting for zero-copy userspace access to the data. Another smallish speed increase. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
0c62268ed6 Avoid reallocation of multi-cpu vectors during iteration. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
cf7ccb7954 Start documenting the types created in this patch-chain. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
b192478a43 Remove a no-longer-needed import. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
dcf2c5f7e2 Remove 2 more syscalls by removing a useless mutex. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
082a16e532 Handle per-CPU maps correctly in eBPF iterators
The eBPF iterator interface is now per-CPU aware, and correctly
extracts a slice of data for each per-CPU map (or a slice of 1
when using a non-CPU divided map).
2023-04-24 20:53:43 +00:00
Herbert Wolverson
f0ea3edcff Use eBPF iterators (requires kernel 5.8+) instead of next_entry
Replaces the eBPF interface "bpf_map_get_next_key" followed by
"bpf_map_lookup_elem" cycle for iterating maps with a call to
the kernel-provided eBPF iterator service.

Currently only implemented for throughput and RTT tracking.
Further commits will tighten the scope and eventually remove
the legacy setup completely.

For 10k hosts, this reduces the number of system calls from
20,002 to 4. The remaining items are a futex lock (required
for safety), and an iterator call.
2023-04-24 20:53:43 +00:00
Herbert Wolverson
cadd3aa800 Add the new tool to the git ignore list. 2023-04-24 20:53:43 +00:00
Herbert Wolverson
5cd5b44496 Add a tool to track eBPF map performance
New tool: lqos_map_perf is included in the distribution. It
runs the two map iterators that pound the lqosd/eBPF system
with map iterations, counts the number of entries returned
and reports on overall performance (in µs).

This is intended to help with diagnosing map reading
performance issues and act as a bench-test to see if
using eBPF iterators actually helps.
2023-04-24 20:53:43 +00:00