Class StatSummarizer

java.lang.Object
net.i2p.router.web.StatSummarizer
All Implemented Interfaces:
Runnable, ClientApp

public class StatSummarizer extends Object implements Runnable, ClientApp
A thread started by RouterConsoleRunner that checks the configuration for stats to be tracked via jrobin, and adds or deletes RRDs as necessary. This also contains methods to generate xml or png image output. The rendering for graphs is in SummaryRenderer. To control memory, the number of simultaneous renderings is limited.
Since:
0.6.1.13
  • Field Details

    • DEFAULT_DATABASES

      public static final String DEFAULT_DATABASES
      Since:
      public since 0.9.33, was package private
      See Also:
  • Constructor Details

  • Method Details

    • instance

      public static StatSummarizer instance()
      Returns:
      null if disabled
    • instance

      public static StatSummarizer instance(I2PAppContext ctx)
      Returns:
      null if disabled
      Since:
      0.9.38
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • isDisabled

      public static boolean isDisabled(I2PAppContext ctx)
      Since:
      0.9.38
    • setDisabled

      static void setDisabled(I2PAppContext ctx)
      Disable graph generation until restart See SummaryRenderer.render()
      Since:
      0.9.6
    • setDisabled

      void setDisabled()
      Disable graph generation until restart See SummaryRenderer.render()
      Since:
      0.9.38
    • startup

      public void startup()
      Does nothing, we aren't tracked
      Specified by:
      startup in interface ClientApp
      Since:
      0.9.38
    • shutdown

      public void shutdown(String[] args)
      Does nothing, we aren't tracked
      Specified by:
      shutdown in interface ClientApp
      Parameters:
      args - generally null but could be stopArgs from clients.config
      Since:
      0.9.38
    • getState

      public ClientAppState getState()
      Description copied from interface: ClientApp
      The current state of the ClientApp.
      Specified by:
      getState in interface ClientApp
      Returns:
      non-null
      Since:
      0.9.38
    • getName

      public String getName()
      Description copied from interface: ClientApp
      The generic name of the ClientApp, used for registration, e.g. "console". Do not translate.
      Specified by:
      getName in interface ClientApp
      Returns:
      non-null
      Since:
      0.9.38
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: ClientApp
      The display name of the ClientApp, used in user interfaces. The app must translate.
      Specified by:
      getDisplayName in interface ClientApp
      Returns:
      non-null
      Since:
      0.9.38
    • getListeners

      public List<SummaryListener> getListeners()
      List of SummaryListener instances
      Since:
      public since 0.9.33, was package private
    • renderPng

      public boolean renderPng(Rate rate, OutputStream out) throws IOException
      Throws:
      IOException
    • renderPng

      public boolean renderPng(Rate rate, OutputStream out, int width, int height, boolean hideLegend, boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount, int end, boolean showCredit) throws IOException
      This does the single data graphs. For the two-data bandwidth graph see renderRatePng(). Synchronized to conserve memory.
      Parameters:
      end - number of periods before now
      Returns:
      success
      Throws:
      IOException
    • renderPng

      @Deprecated public boolean renderPng(OutputStream out, String templateFilename) throws IOException
      Deprecated.
      unused
      Throws:
      IOException
    • getXML

      public boolean getXML(Rate rate, OutputStream out) throws IOException
      Throws:
      IOException
    • renderRatePng

      public boolean renderRatePng(OutputStream out, int width, int height, boolean hideLegend, boolean hideGrid, boolean hideTitle, boolean showEvents, int periodCount, int end, boolean showCredit) throws IOException
      This does the two-data bandwidth graph only. For all other graphs see renderPng() above. Synchronized to conserve memory.
      Parameters:
      end - number of periods before now
      Returns:
      success
      Throws:
      IOException
    • parseSpecs

      public Set<Rate> parseSpecs(String specs)
      Parameters:
      specs - statName.period,statName.period,statName.period
      Returns:
      list of Rate objects
      Since:
      public since 0.9.33, was package private