Class Counter
java.lang.Object
net.bull.javamelody.internal.model.Counter
- All Implemented Interfaces:
Serializable,Cloneable
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classComparateur pour ordonner les requêtes en cours par durées écoulées. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringNom du counter des builds Jenkins.static final StringNom du counter des erreurs systèmes http.static final StringNom du counter des requêtes http.static final StringNom du counter des jobs.static final StringNom du counter des actions JSF RI (Mojarra).static final StringNom du counter des JSPs.static final StringNom du counter des logs d'erreurs systèmes.static final intNombre max d'erreurs conservées par le counter (si counter d'erreurs http ou de log d'erreurs).static final StringNom du counter des requêtes SQL.static final StringNom du counter des actions Struts. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddErrors(List<CounterError> counterErrorList) voidaddRequest(String requestName, long duration, int cpuTime, int allocatedKBytes, boolean systemError, long responseSize) voidaddRequestForCurrentContext(boolean systemError) voidaddRequestForCurrentContext(String systemErrorStackTrace) voidaddRequestForSystemError(String requestName, long duration, int cpuTime, int allocatedKBytes, String stackTrace) voidvoidbindContext(String requestName, String completeRequestName, HttpServletRequest httpRequest, long startCpuTime, long startAllocatedBytes) voidbindContextIncludingCpu(String requestName) voidclear()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()Retourne le nom de l'éventuel counter fils (peut être null).getCounterRequest(CounterRequestContext context) Retourne l'objetCounterRequestcorrespondant au contexte de requête en cours en paramètre.getCounterRequestById(String requestId) Retourne l'objetCounterRequestcorrespondant à l'id en paramètre ou null sinon.getCounterRequestByName(String requestName, boolean saveRequestIfAbsent) Retourne l'objetCounterRequestcorrespondant au nom sans agrégation en paramètre.intRetourne le nombre d'erreurs dans ce counter.Retourne le nom de l'icône de ce counter (peut être null).getName()Retourne le nom de ce counter (non null).intRetourne le nombre de requêtes dans ce counter.Retourne la date et l'heure de début (non null).Retourne le nom de ce counter quand il est stocké sur disque (non null).booleanRetourne 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").booleanRetourne true si ce counter est affiché dans les rapports.booleanRetourne true si ce counter est un counter d'error (c'est-à-dire si son nom est "error", "log" ou "job").booleanRetourne true si ce counter est un counter de job (c'est-à-dire si son nom est "job").booleanRetourne true si ce counter est un counter de jsp ou d'actions Struts (c'est-à-dire si son nom est "jsp").booleanisRequestIdFromThisCounter(String requestId) booleanisUsed()Retourne true si ce counter est utilisé (servira éventuellement à initialiser displayed dans FilterContext).voidsetDisplayed(boolean displayed) Définit si ce counter est affiché dans les rapports.voidsetMaxRequestsCount(int maxRequestsCount) Définit le nombre maximum de requêtes dans ce counter (entier positif).voidsetRequestTransformPattern(Pattern requestTransformPattern) Définit l'expression régulière permettant de transformer les requêtes de ce counter avant agrégation dans les statistiques.voidsetUsed(boolean used) Définit si ce counter est utilisé (servira éventuellement à initialiser displayed dans FilterContext).toString()void
-
Field Details
-
HTTP_COUNTER_NAME
Nom du counter des requêtes http.- See Also:
-
ERROR_COUNTER_NAME
Nom du counter des erreurs systèmes http.- See Also:
-
LOG_COUNTER_NAME
Nom du counter des logs d'erreurs systèmes.- See Also:
-
JSP_COUNTER_NAME
Nom du counter des JSPs.- See Also:
-
STRUTS_COUNTER_NAME
Nom du counter des actions Struts.- See Also:
-
JSF_COUNTER_NAME
Nom du counter des actions JSF RI (Mojarra).- See Also:
-
SQL_COUNTER_NAME
Nom du counter des requêtes SQL.- See Also:
-
JOB_COUNTER_NAME
Nom du counter des jobs.- See Also:
-
BUILDS_COUNTER_NAME
Nom du counter des builds Jenkins.- See Also:
-
MAX_ERRORS_COUNT
public static final int MAX_ERRORS_COUNTNombre max d'erreurs conservées par le counter (si counter d'erreurs http ou de log d'erreurs).- See Also:
-
-
Constructor Details
-
Counter
Constructeur d'un compteur.- Parameters:
name- Nom du compteur (par exemple: sql...)iconName- Icône du compteur (par exemple: db.png)
-
Counter
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
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
Retourne le nom de ce counter (non null).- Returns:
- String
-
getStorageName
Retourne le nom de ce counter quand il est stocké sur disque (non null).- Returns:
- String
-
getIconName
Retourne le nom de l'icône de ce counter (peut être null).- Returns:
- String
-
getChildCounterName
Retourne le nom de l'éventuel counter fils (peut être null).- Returns:
- String
-
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
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
-
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
-
addRequest
public void addRequest(String requestName, long duration, int cpuTime, int allocatedKBytes, boolean systemError, long responseSize) -
addRequestForSystemError
-
addRumHit
-
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
-
addErrors
-
getCounterRequest
Retourne l'objetCounterRequestcorrespondant au contexte de requête en cours en paramètre.- Parameters:
context- CounterRequestContext- Returns:
- CounterRequest
-
getCounterRequestByName
Retourne l'objetCounterRequestcorrespondant au nom sans agrégation en paramètre.- Parameters:
requestName- Nom de la requête sans agrégation par requestTransformPatternsaveRequestIfAbsent- true except for current requests because the requestName may not be yet bestMatchingPattern- Returns:
- CounterRequest
-
getCounterRequestById
Retourne l'objetCounterRequestcorrespondant à 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
- 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
- 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
- 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
-
toString
-