Class 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 Detail

      • DEFAULT_DATABASES

        public static final String DEFAULT_DATABASES
        Since:
        public since 0.9.33, was package private
        See Also:
        Constant Field Values
    • Constructor Detail

    • Method Detail

      • instance

        public static StatSummarizer instance()
        Returns:
        null if disabled
      • 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,
                                 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
      • 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