/*
* Copyright 1999-2017 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.support.http.stat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
public class WebSessionStatValue {
String sessionId;
int runningCount;
int concurrentMax;
long requestCount;
long requestErrorCount;
long requestTimeNano;
long jdbcFetchRowCount;
long jdbcUpdateCount;
long jdbcExecuteCount;
long jdbcExecuteTimeNano;
long jdbcCommitCount;
long jdbcRollbackCount;
long createTimeMillis;
long lastAccessTimeMillis;
String remoteAddress;
String principal;
String userAgent;
int requestIntervalHistogram_0_1;
int requestIntervalHistogram_1_10;
int requestIntervalHistogram_10_100;
int requestIntervalHistogram_100_1000;
int requestIntervalHistogram_1000_10000;
int requestIntervalHistogram_10000_100000;
int requestIntervalHistogram_100000_1000000;
int requestIntervalHistogram_1000000_10000000;
int requestIntervalHistogram_10000000_more;
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public int getRunningCount() {
return runningCount;
}
public void setRunningCount(int runningCount) {
this.runningCount = runningCount;
}
public int getConcurrentMax() {
return concurrentMax;
}
public void setConcurrentMax(int concurrentMax) {
this.concurrentMax = concurrentMax;
}
public long getRequestCount() {
return requestCount;
}
public void setRequestCount(long requestCount) {
this.requestCount = requestCount;
}
public long getRequestErrorCount() {
return requestErrorCount;
}
public void setRequestErrorCount(long requestErrorCount) {
this.requestErrorCount = requestErrorCount;
}
public long getRequestTimeNano() {
return requestTimeNano;
}
public void setRequestTimeNano(long requestTimeNano) {
this.requestTimeNano = requestTimeNano;
}
public long getJdbcFetchRowCount() {
return jdbcFetchRowCount;
}
public void setJdbcFetchRowCount(long jdbcFetchRowCount) {
this.jdbcFetchRowCount = jdbcFetchRowCount;
}
public long getJdbcUpdateCount() {
return jdbcUpdateCount;
}
public void setJdbcUpdateCount(long jdbcUpdateCount) {
this.jdbcUpdateCount = jdbcUpdateCount;
}
public long getJdbcExecuteCount() {
return jdbcExecuteCount;
}
public void setJdbcExecuteCount(long jdbcExecuteCount) {
this.jdbcExecuteCount = jdbcExecuteCount;
}
public long getJdbcExecuteTimeNano() {
return jdbcExecuteTimeNano;
}
public void setJdbcExecuteTimeNano(long jdbcExecuteTimeNano) {
this.jdbcExecuteTimeNano = jdbcExecuteTimeNano;
}
public long getJdbcCommitCount() {
return jdbcCommitCount;
}
public void setJdbcCommitCount(long jdbcCommitCount) {
this.jdbcCommitCount = jdbcCommitCount;
}
public long getJdbcRollbackCount() {
return jdbcRollbackCount;
}
public void setJdbcRollbackCount(long jdbcRollbackCount) {
this.jdbcRollbackCount = jdbcRollbackCount;
}
public long getCreateTimeMillis() {
return createTimeMillis;
}
public void setCreateTimeMillis(long createTimeMillis) {
this.createTimeMillis = createTimeMillis;
}
public long getLastAccessTimeMillis() {
return lastAccessTimeMillis;
}
public void setLastAccessTimeMillis(long lastAccessTimeMillis) {
this.lastAccessTimeMillis = lastAccessTimeMillis;
}
public String getRemoteAddress() {
return remoteAddress;
}
public void setRemoteAddress(String remoteAddresses) {
this.remoteAddress = remoteAddresses;
}
public String getPrincipal() {
return principal;
}
public void setPrincipal(String principal) {
this.principal = principal;
}
public String getUserAgent() {
return userAgent;
}
public void setUserAgent(String userAgent) {
this.userAgent = userAgent;
}
public long getRequestTimeMillis() {
return getRequestTimeNano() / (1000 * 1000);
}
public Date getCreateTime() {
if (createTimeMillis == -1L) {
return null;
}
return new Date(createTimeMillis);
}
public Date getLastAccessTime() {
if (lastAccessTimeMillis < 0L) {
return null;
}
return new Date(lastAccessTimeMillis);
}
public long getJdbcExecuteTimeMillis() {
return getJdbcExecuteTimeNano() / (1000 * 1000);
}
public long[] getRequestInterval() {
return new long[] {
//
requestIntervalHistogram_0_1, //
requestIntervalHistogram_1_10, //
requestIntervalHistogram_10_100, //
requestIntervalHistogram_100_1000, //
requestIntervalHistogram_1000_10000, //
requestIntervalHistogram_10000_100000, //
requestIntervalHistogram_100000_1000000, //
requestIntervalHistogram_1000000_10000000, //
requestIntervalHistogram_10000000_more //
};
}
public Map<String, Object> getStatData() {
Map<String, Object> data = new LinkedHashMap<String, Object>();
data.put("SESSIONID", this.getSessionId());
data.put("Principal", this.getPrincipal());
data.put("RunningCount", this.getRunningCount());
data.put("ConcurrentMax", this.getConcurrentMax());
data.put("RequestCount", this.getRequestCount());
data.put("RequestTimeMillisTotal", this.getRequestTimeMillis());
data.put("CreateTime", this.getCreateTime());
data.put("LastAccessTime", this.getLastAccessTime());
data.put("RemoteAddress", this.getRemoteAddress());
data.put("Principal", this.getPrincipal());
data.put("JdbcCommitCount", this.getJdbcCommitCount());
data.put("JdbcRollbackCount", this.getJdbcRollbackCount());
data.put("JdbcExecuteCount", this.getJdbcExecuteCount());
data.put("JdbcExecuteTimeMillis", this.getJdbcExecuteTimeMillis());
data.put("JdbcFetchRowCount", this.getJdbcFetchRowCount());
data.put("JdbcUpdateCount", this.getJdbcUpdateCount());
data.put("UserAgent", this.getUserAgent());
data.put("RequestInterval", this.getRequestInterval());
return data;
}
}