Class InvokeActivityStat

java.lang.Object
xyz.cofe.sql.cpool.proxy.InvokeActivityStat

public class InvokeActivityStat
extends java.lang.Object
Статистика вызовов методов
Author:
Kamnev Georgiy (nt.gocha@gmail.com)
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  InvokeActivityStat.Value
    Описывает статистику вызова метода
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Map<java.lang.String,​java.lang.Long> callCount  
    protected java.util.Map<java.lang.String,​java.lang.Long> firstCall  
    protected java.lang.Long lastActivity  
    protected java.util.Map<java.lang.String,​java.lang.Long> lastCall  
    protected java.util.concurrent.locks.ReadWriteLock readWriteLock  
  • Constructor Summary

    Constructors 
    Constructor Description
    InvokeActivityStat()
    Конструктор по умолчанию
  • Method Summary

    Modifier and Type Method Description
    void collect​(java.lang.String methodName)
    Сбор статистики вызова метода
    static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> constName​(java.lang.String name)
    Возвращает указанную константу в качестве метрики
    static MethodCallListener createActivityTracker​(java.lang.ref.WeakReference<InvokeActivityStat> wstat)
    Создает подписчика на вызовы методов прокси объектов
    static MethodCallListener createActivityTracker​(InvokeActivityStat stat)
    Создает подписчика на вызовы методов прокси объектов
    static MethodCallListener createActivityTracker​(InvokeActivityStat stat, boolean asWeak, xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> nameGeneraor)
    Создает подписчика для сбора статистики
    static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> exclude​(xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> include, java.lang.String... excludeMethodNames)
    Создает функц именования метрики для указаных метрик, за исключением указанных методов
    java.util.Map<java.lang.String,​java.lang.Long> getCallCount()
    ВОзвращает кол-во вызовов
    java.util.Map<java.lang.String,​java.lang.Long> getFirstCall()
    Возвращает время первого вызова
    java.lang.Long getLastActivity()
    Возвращает время последнего вызова методов
    java.util.Date getLastActivityDate()
    Возвращает время последнего вызова методов
    java.util.Map<java.lang.String,​java.lang.Long> getLastCall()
    Возвращает время последнего вызова
    java.util.List<InvokeActivityStat.Value> getValues()
    Возвращает выборку текущий метрик
    static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> simpleMethodName()
    Возвращает имя метода в качетсве имени метрики

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • lastCall

      protected final java.util.Map<java.lang.String,​java.lang.Long> lastCall
    • firstCall

      protected final java.util.Map<java.lang.String,​java.lang.Long> firstCall
    • callCount

      protected final java.util.Map<java.lang.String,​java.lang.Long> callCount
    • lastActivity

      protected volatile java.lang.Long lastActivity
    • readWriteLock

      protected java.util.concurrent.locks.ReadWriteLock readWriteLock
  • Constructor Details

    • InvokeActivityStat

      public InvokeActivityStat()
      Конструктор по умолчанию
  • Method Details

    • getLastCall

      public java.util.Map<java.lang.String,​java.lang.Long> getLastCall()
      Возвращает время последнего вызова
      Returns:
      метод / время
    • getFirstCall

      public java.util.Map<java.lang.String,​java.lang.Long> getFirstCall()
      Возвращает время первого вызова
      Returns:
      метод / время
    • getCallCount

      public java.util.Map<java.lang.String,​java.lang.Long> getCallCount()
      ВОзвращает кол-во вызовов
      Returns:
      метод / кол-во
    • collect

      public void collect​(java.lang.String methodName)
      Сбор статистики вызова метода
      Parameters:
      methodName - имя метода
    • getLastActivityDate

      public java.util.Date getLastActivityDate()
      Возвращает время последнего вызова методов
      Returns:
      время последнего вызова или null
    • getLastActivity

      public java.lang.Long getLastActivity()
      Возвращает время последнего вызова методов
      Returns:
      время или null
    • getValues

      public java.util.List<InvokeActivityStat.Value> getValues()
      Возвращает выборку текущий метрик
      Returns:
      выборка метрик
    • createActivityTracker

      public static MethodCallListener createActivityTracker​(InvokeActivityStat stat)
      Создает подписчика на вызовы методов прокси объектов
      Parameters:
      stat - куда будут записываться метрики
      Returns:
      подписчик
    • createActivityTracker

      public static MethodCallListener createActivityTracker​(java.lang.ref.WeakReference<InvokeActivityStat> wstat)
      Создает подписчика на вызовы методов прокси объектов
      Parameters:
      wstat - куда будут записываться метрики
      Returns:
      подписчик
    • constName

      public static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> constName​(java.lang.String name)
      Возвращает указанную константу в качестве метрики
      Parameters:
      name - имя метрики
      Returns:
      функц получения имени метрики
    • simpleMethodName

      public static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> simpleMethodName()
      Возвращает имя метода в качетсве имени метрики
      Returns:
      функц получения имени метрики
    • exclude

      public static xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> exclude​(xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> include, java.lang.String... excludeMethodNames)
      Создает функц именования метрики для указаных метрик, за исключением указанных методов
      Parameters:
      include - функция именования метрик
      excludeMethodNames - методы исключемые из сбора статистики
      Returns:
      функция сопоставления вызова метода и метрики
    • createActivityTracker

      public static MethodCallListener createActivityTracker​(InvokeActivityStat stat, boolean asWeak, xyz.cofe.fn.Fn4<java.lang.Object,​java.lang.Object,​java.lang.reflect.Method,​java.lang.Object[],​java.lang.String> nameGeneraor)
      Создает подписчика для сбора статистики
      Parameters:
      stat - куда будет записиываться статистика
      asWeak - статистика будет храниться в памяти как weak ссылка
      nameGeneraor - метод генерации имени метрики
      Returns:
      подписчик