All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.test.Service24H Maven / Gradle / Ivy

There is a newer version: 2.20.0
Show newest version
/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  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 scouter.test;

import java.util.Random;
import java.util.Stack;

import scouter.AnyTrace;
import scouter.agent.AgentBoot;
import scouter.agent.Configure;
import scouter.agent.netio.data.net.TcpRequestMgr;
import scouter.agent.trace.TraceContext;
import scouter.agent.trace.TraceContextManager;
import scouter.agent.trace.TraceMain;
import scouter.io.DataOutputX;
import scouter.lang.pack.XLogPack;
import scouter.util.CastUtil;
import scouter.util.DateUtil;
import scouter.util.HashUtil;
import scouter.util.IPUtil;
import scouter.util.KeyGen;
import scouter.util.ShellArg;
import scouter.util.SysJMX;
import scouter.util.ThreadUtil;

public class Service24H {
	public static void main(String[] args) {

		ShellArg sh = new ShellArg(args);
		String server = sh.get("-h", "127.0.0.1");
		String port = sh.get("-p", "6100");
		int tps =CastUtil.cint(sh.get("-tps","5000"));
		String type = sh.get("-type", "tomcat");
		String name = sh.get("-name", "java"+SysJMX.getProcessPID());
		System.setProperty("obj_type", type);
		System.setProperty("obj_name", name);
		
		System.setProperty("server.addr", server);
		System.setProperty("server.port", port);

		
		System.out.println("Scouter Test Simulation!!");
		System.out.println("  server = " + server + ":" +port);
		System.out.println("  tcp = " + tps);
		
		AgentBoot.boot();
		TcpRequestMgr.getInstance();
		
		double interval = 1000.0/tps;
		
		long now = System.currentTimeMillis();
		
		Random r = new Random();

		long txcount = 0 ;
		double tm = 0;
		long last_unit = 0;
		while (true) {
			txcount++;
			
			String serviceName = "service" + (next(r, 1000));
			int service_hash = HashUtil.hash(serviceName);
			long txid = KeyGen.next();
			profile(txid,service_hash);
			long endtime = getEndTime();
			
			
			int elapsed =next(r, 10000);
			int cpu = next(r, 10000);
			int sqlCount = next(r, 100);
			int sqlTime = next(r, 1000);
			String remoteAddr = IPUtil.toString(DataOutputX.toBytes(next(r,255)));
			String error = null;
			long visitor = KeyGen.next();
			
			
			
			XLogPack pack = TraceMain.txperf(endtime, txid, service_hash,serviceName, elapsed, cpu, sqlCount, sqlTime, remoteAddr, error, visitor);
			TraceMain.metering(pack);
			
		    long unit=endtime/5000;
		    if(last_unit!=unit){
		    	last_unit = unit;
		    	System.out.println(DateUtil.timestamp(endtime) + "  exe-tx=" + txcount+ "  " + Configure.getInstance().getObjName());
		    }
			tm = tm+interval;
			if(tm>1){
				ThreadUtil.sleep((int)tm);
			     tm = tm - ((int)tm);
			}
			long x = System.currentTimeMillis();
			if(x-now >3000000)
				break;
		}
		ThreadUtil.sleep(100000);
	}

	static int rate[]={2,2,3,3,4,
			            5,6,7,8,9,
	                    10,10,9,10,8,
			            7,6,5,4,3,
			           3,2,1,1};
	static Stack stack = new Stack();
	static Random r = new Random();
    static long time= DateUtil.yyyymmdd(DateUtil.yyyymmdd());
	private static long getEndTime() {
		if(stack.size()==0){
			for(int i = 0 ; i <24 ; i++){
				for(int j=0;j




© 2015 - 2024 Weber Informatics LLC | Privacy Policy