Class Counter

java.lang.Object
net.bull.javamelody.internal.model.Counter
All Implemented Interfaces:
Serializable, Cloneable

public class Counter extends Object implements Cloneable, Serializable
Données statistiques des requêtes pour un compteur nommé comme http ou sql. Ces données sont accumulées au fil du temps selon les requêtes dans l'application. Elles correspondent soit aux statistiques courantes depuis une date initiale, soit à une période donnée pour un jour, une semaine, un mois ou une année. Toutes les méthodes sur une instance de cette classe sont conçues pour être thread-safe, c'est-à-dire qu'elles gère un état qui est non modifiable ou alors synchronisé pour être accessible et modifiable depuis plusieurs threads. Les instances sont sérialisables pour pouvoir être persistées sur disque et transmises au serveur de collecte.
Author:
Emeric Vernat
See Also:
  • Field Details

    • HTTP_COUNTER_NAME

      public static final String HTTP_COUNTER_NAME
      Nom du counter des requêtes http.
      See Also:
    • ERROR_COUNTER_NAME

      public static final String ERROR_COUNTER_NAME
      Nom du counter des erreurs systèmes http.
      See Also:
    • LOG_COUNTER_NAME

      public static final String LOG_COUNTER_NAME
      Nom du counter des logs d'erreurs systèmes.
      See Also:
    • JSP_COUNTER_NAME

      public static final String JSP_COUNTER_NAME
      Nom du counter des JSPs.
      See Also:
    • STRUTS_COUNTER_NAME

      public static final String STRUTS_COUNTER_NAME
      Nom du counter des actions Struts.
      See Also:
    • JSF_COUNTER_NAME

      public static final String JSF_COUNTER_NAME
      Nom du counter des actions JSF RI (Mojarra).
      See Also:
    • SQL_COUNTER_NAME

      public static final String SQL_COUNTER_NAME
      Nom du counter des requêtes SQL.
      See Also:
    • JOB_COUNTER_NAME

      public static final String JOB_COUNTER_NAME
      Nom du counter des jobs.
      See Also:
    • BUILDS_COUNTER_NAME

      public static final String BUILDS_COUNTER_NAME
      Nom du counter des builds Jenkins.
      See Also:
    • MAX_ERRORS_COUNT

      public static final int MAX_ERRORS_COUNT
      Nombre max d'erreurs conservées par le counter (si counter d'erreurs http ou de log d'erreurs).
      See Also:
  • Constructor Details

    • Counter

      public Counter(String name, String iconName)
      Constructeur d'un compteur.
      Parameters:
      name - Nom du compteur (par exemple: sql...)
      iconName - Icône du compteur (par exemple: db.png)
    • Counter

      public Counter(String name, String storageName, String iconName, String childCounterName)
      Constructeur d'un compteur.
      Parameters:
      name - Nom du compteur (par exemple: sql...)
      storageName - Nom unique du compteur pour le stockage (par exemple: sql_20080724)
      iconName - Icône du compteur (par exemple: db.png)
      childCounterName - Nom du compteur fils (par exemple: sql)
    • Counter

      public Counter(String name, String iconName, Counter childCounter)
      Constructeur d'un compteur.
      Parameters:
      name - Nom du compteur (par exemple: http...)
      iconName - Icône du compteur (par exemple: db.png)
      childCounter - Compteur fils (par exemple: sqlCounter)
  • Method Details

    • getName

      public String getName()
      Retourne le nom de ce counter (non null).
      Returns:
      String
    • getStorageName

      public String getStorageName()
      Retourne le nom de ce counter quand il est stocké sur disque (non null).
      Returns:
      String
    • getIconName

      public String getIconName()
      Retourne le nom de l'icône de ce counter (peut être null).
      Returns:
      String
    • getChildCounterName

      public String getChildCounterName()
      Retourne le nom de l'éventuel counter fils (peut être null).
      Returns:
      String
    • getStartDate

      public Date getStartDate()
      Retourne la date et l'heure de début (non null).
      Returns:
      Date
    • isDisplayed

      public boolean isDisplayed()
      Retourne true si ce counter est affiché dans les rapports.
      Returns:
      boolean
    • setDisplayed

      public void setDisplayed(boolean displayed)
      Définit si ce counter est affiché dans les rapports.
      Parameters:
      displayed - boolean
    • isUsed

      public boolean isUsed()
      Retourne true si ce counter est utilisé (servira éventuellement à initialiser displayed dans FilterContext).
      Returns:
      boolean
    • setUsed

      public void setUsed(boolean used)
      Définit si ce counter est utilisé (servira éventuellement à initialiser displayed dans FilterContext).
      Parameters:
      used - boolean
    • setRequestTransformPattern

      public void setRequestTransformPattern(Pattern requestTransformPattern)
      Définit l'expression régulière permettant de transformer les requêtes de ce counter avant agrégation dans les statistiques.
      Parameters:
      requestTransformPattern - Pattern
    • setMaxRequestsCount

      public void setMaxRequestsCount(int maxRequestsCount)
      Définit le nombre maximum de requêtes dans ce counter (entier positif).
      Parameters:
      maxRequestsCount - int
    • bindContextIncludingCpu

      public void bindContextIncludingCpu(String requestName)
    • bindContext

      public void bindContext(String requestName, String completeRequestName, HttpServletRequest httpRequest, long startCpuTime, long startAllocatedBytes)
    • unbindContext

      public void unbindContext()
    • addRequestForCurrentContext

      public void addRequestForCurrentContext(boolean systemError)
    • addRequestForCurrentContext

      public void addRequestForCurrentContext(String systemErrorStackTrace)
    • addRequest

      public void addRequest(String requestName, long duration, int cpuTime, int allocatedKBytes, boolean systemError, long responseSize)
    • addRequestForSystemError

      public void addRequestForSystemError(String requestName, long duration, int cpuTime, int allocatedKBytes, String stackTrace)
    • addRumHit

      public void addRumHit(String requestName, long networkTime, long domProcessing, long pageRendering)
    • isErrorCounter

      public boolean isErrorCounter()
      Retourne true si ce counter est un counter d'error (c'est-à-dire si son nom est "error", "log" ou "job").
      Returns:
      boolean
    • isJobCounter

      public boolean isJobCounter()
      Retourne true si ce counter est un counter de job (c'est-à-dire si son nom est "job").
      Returns:
      boolean
    • isJspOrStrutsCounter

      public boolean isJspOrStrutsCounter()
      Retourne true si ce counter est un counter de jsp ou d'actions Struts (c'est-à-dire si son nom est "jsp").
      Returns:
      boolean
    • isBusinessFacadeCounter

      public boolean isBusinessFacadeCounter()
      Retourne true si ce counter est un counter de "façades métiers" ou "business façades" (c'est-à-dire si son nom est "ejb", "spring", "guice" ou "services").
      Returns:
      boolean
    • isRequestIdFromThisCounter

      public boolean isRequestIdFromThisCounter(String requestId)
    • addErrors

      public void addErrors(List<CounterError> counterErrorList)
    • getCounterRequest

      public CounterRequest getCounterRequest(CounterRequestContext context)
      Retourne l'objet CounterRequest correspondant au contexte de requête en cours en paramètre.
      Parameters:
      context - CounterRequestContext
      Returns:
      CounterRequest
    • getCounterRequestByName

      public CounterRequest getCounterRequestByName(String requestName, boolean saveRequestIfAbsent)
      Retourne l'objet CounterRequest correspondant au nom sans agrégation en paramètre.
      Parameters:
      requestName - Nom de la requête sans agrégation par requestTransformPattern
      saveRequestIfAbsent - true except for current requests because the requestName may not be yet bestMatchingPattern
      Returns:
      CounterRequest
    • getCounterRequestById

      public CounterRequest getCounterRequestById(String requestId)
      Retourne l'objet CounterRequest correspondant à l'id en paramètre ou null sinon.
      Parameters:
      requestId - Id de la requête
      Returns:
      CounterRequest
    • getRequestsCount

      public int getRequestsCount()
      Retourne le nombre de requêtes dans ce counter.
      Returns:
      int
    • getRequests

      public List<CounterRequest> getRequests()
      Returns:
      Liste des requêtes non triées, la liste et ses objets peuvent être utilisés sans synchronized et sans crainte d'accès concurrents.
    • getOrderedRequests

      public List<CounterRequest> getOrderedRequests()
      Returns:
      Liste des requêtes triées par durée cumulée décroissante, la liste et ses objets peuvent être utilisés sans synchronized et sans crainte d'accès concurrents.
    • getErrors

      public List<CounterError> getErrors()
      Returns:
      Liste des erreurs triée par date croissante, la liste et ses objets peuvent être utilisés sans synchronized et sans crainte d'accès concurrents.
    • getErrorsCount

      public int getErrorsCount()
      Retourne le nombre d'erreurs dans ce counter.
      Returns:
      int
    • clear

      public void clear()
      Purge les requêtes et erreurs puis positionne la date et heure de début à l'heure courante, mais sans toucher aux requêtes en cours pour qu'elles restent affichées, par exemple dans le serveur de collecte (#871).
    • clone

      public Counter clone()
      Overrides:
      clone in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object