Opened 2 years ago

Last modified 18 months ago

#2106 reopened enhancement

Enhance /graphs

Reported by: Reportage Owned by:
Priority: minor Milestone: 0.9.35
Component: apps/console Version: 0.9.32
Keywords: graphs jrobin Cc: str4d
Parent Tickets: Sensitive: no

Description

Some suggestions for improving the presentation of graphs:

  • Allow the combined b/w graph to be displayed without needing to also display the individual send/receive rate graphs
  • Add more graphs that combine data points e.g. graphs that provide up and down bandwidth could be optionally combined into a single graph, graphs that display opposing values could be combined e.g. success/failure and graphs that represent a section of the netdb could be combined e.g. bandwidth tiers
  • Separate 'profiles' for normal/advanced user so that normal users get basic performance graphs (combined where relevant), advanced users get a more fine-grained overview (by default, overridden if the user configures the graph selection)

Subtickets

Change History (9)

comment:1 Changed 2 years ago by zzz

Component: apps/otherapps/console
Status: newopen

Yeah the combined graph code is ad-hoc and we don't have any generalized methods for generating arbitrary graphs with two data sets.

I'm not sure how we would make a sensible UI to offer dual graph selection, but it's probably possible.

comment:2 Changed 2 years ago by Reportage

Jrobin seems to have stalled development. Is it time to consider migrating to a compatible, more current library? RRD4J might be a relatively painless migration path and looks like it's being actively developed (last commit on github Nov 2017 vs June 2015 for Jrobin). It also offers a wider range of output formats including SVG which could potentially offer interactivity. Also claims to be format compatible with RRDtool, which Jrobin isn't. Works on Java7+. https://github.com/rrd4j/rrd4j

comment:3 Changed 2 years ago by zzz

Cc: str4d added

That would be a separate ticket. Please state the case for why we should switch, it would be a fair amount of work. If it's file-compatible with rrdtool, it is presumably incompatible with jrobin's file format, which would be a big mess to migrate.

Jrobin has moved around alot (last seen supported by OpenNMS), perhaps it's moved again, would have to research more.

If rrd4j were in Debian, that would be a big reason (jrobin isn't). But rrd4j isn't either. A Debian package would be the biggest motivation to switch to something else.

comment:4 Changed 2 years ago by Reportage

Reasons to switch:

  • In active development, active community: https://groups.google.com/forum/#!forum/rrd4j-discuss
  • More output file formats supported including portable .xml (to allow export to alternative rendering tools) and .svg
  • Better presentation of graphs via svg: speedier/lighter mem rendering of graphs, dpi-independent
  • Graph definitions not much different from existing Jrobin defs
  • Available on Maven/Github?; Gradle, Junit support

comment:5 Changed 21 months ago by slumlord

Suggestions for graphs to be included (also mentioned at http://trac.i2p2.i2p/ticket/2145#comment:7 )

  • Hidden service usage statistics
    • Connections per unit of time
    • Bandwidth per unit of time
    • POSTs per unit of time

comment:6 Changed 21 months ago by zzz

Per-tunnel bandwidth graphs have always been available when full stats are enabled. Changed in be76ba2255fc684793e36605d449b5a4225c42ba 0.9.33-23-rc to enable w/o full stats.

comment:7 Changed 20 months ago by zzz

Add links to bandwidth graphs on /tunnels
In 93a1a96011a02ab6b12e4ef5370aef1144428a9b to be 0.9.34-3

comment:8 Changed 18 months ago by zzz

Milestone: undecided0.9.35
Resolution: fixed
Status: openclosed

Hide individual tx/rx graphs if showing combined graph in e344cedebd61113784ff801b3c181c8232d42d2e to be 0.9.34-22-rc
2nd and 3rd bullets in OP are too hard, especially the UI part as answered in comment 1, and would be for power users only.
Replacement for jrobin (comment 2) a lot of work and not required at this time. Justifications in comment 4 are helpful but there's no compelling reason in there. If we had graphs all over (perhaps in snark or the console summary bar) then speed would be more important, perhaps, but that's not in our plans. Jrobin does support xml output, we used to have links on /stats for each stat but commented them out as useless clutter.
More per-hidden-service stats (can only graph what stats we gather) (comment 5) added in comments 6 and 7 for bandwidth. Others TBD, please enter a new ticket with use case/need.

comment:9 Changed 18 months ago by Reportage

Resolution: fixed
Status: closedreopened

Regarding combined graphs for inbound and outbound traffic on the same tunnel definition, adding an option to the graph config section on the main graphs page that offers to combine inbound/outbound graphs where permissible ("Combine bandwidth graphs") (ie user has configured both in/out graphs for a tunnel definition) would be the simplest way of activating the option, and the current code for generating the combined router bandwidth graph could be extended to handle any in/out tunnel graph sets. The advantage, aside from the general usefulness of being able to review in/out stats on a single graph, is the space saving afforded in the browser, permitting more data to be displayed in less space, as in/out graphs very quickly consume all the screen real estate.

Note: See TracTickets for help on using tickets.