如果您只是在运行日志,那么您可能需要查看诸如Splunk之类的东西。
一般来说,如果你想要这个内存中和快速(实时),你可以创建一个分布式缓存的登录数据与驱逐后,例如。 24小时,然后你可以查询该缓存,例如在过去一小时内登录。
假设登录记录看起来类似:
public class Login implements Serializable {
public Login(String userId, long loginTime) {..}
public String getUserId() {..}
public long getLoginTime() {..}
public long getLastSeenTime() {..}
public void setLastSeenTime(long logoutTime) {..}
public long getLogoutTime() {..}
public void setLogoutTime(long logoutTime) {..}
String userId;
long loginTime;
long lastSeenTime;
long logoutTime;
}
为了支持驱逐24小时后,只需在缓存
<expiry-delay>24h</expiry-delay>
当前查询所有用户配置失效(TTL)登录:
long oneHourAgo = System.currentTimeMillis() - 60*60*1000;
Filter query = QueryHelper.createFilter("loginTime > " + oneHourAgo
+ " and logoutTime = 0");
Set idsLoggedIn = cache.keySet(query);
要查询登录和/或活动用户数过去一小时:
long oneHourAgo = System.currentTimeMillis() - 60*60*1000;
Filter query = QueryHelper.createFilter("loginTime > " + oneHourAgo
+ " or lastSeenTime > " + oneHourAgo);
int numActive = cache.keySet(query).size();
(有关查询的详细信息,请参阅http://docs.oracle.com/cd/E15357_01/coh.360/e15723/api_cq.htm。所有这些示例均来自Oracle Coherence。)
为了充分披露,我在Oracle工作。本文所表达的意见和观点属于我自己的观点,并不一定反映我的雇主的意见或看法。
你有这个标签为.net - 这是否意味着你在IIS托管?如果是这样的话,你可能想看看微软的AppFabric框架 - 它为你提供了一些预先构建的监控工具。 –
@ 500-InternalServerError酷的名称和AppFabric – Paparazzi