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

info.xiancloud.graylog2.unit.TestGraylogClientUnit Maven / Gradle / Ivy

package info.xiancloud.graylog2.unit;

import info.xiancloud.core.*;
import info.xiancloud.core.message.UnitRequest;
import info.xiancloud.core.message.UnitResponse;
import info.xiancloud.core.thread_pool.ThreadPoolManager;
import info.xiancloud.core.util.LOG;

import java.util.concurrent.CountDownLatch;

/**
 * @author happyyangyuan
 */
public class TestGraylogClientUnit implements Unit {
    @Override
    public String getName() {
        return "TestGraylogClientUnit";
    }

    @Override
    public Group getGroup() {
        return GraylogService.singleton;
    }

    @Override
    public UnitMeta getMeta() {
        return UnitMeta.createWithDescription("测试graylog日志输出").setDocApi(false);
    }

    @Override
    public Input getInput() {
        return new Input()
                .add("count", int.class, "总日志条数", REQUIRED)
                .add("tCount", int.class, "线程数", REQUIRED);
    }

    //返回的是执行的ms数
    @Override
    public void execute(UnitRequest msg, Handler handler) {
        handler.handle(UnitResponse.createSuccess(test(msg.get("count", int.class), msg.get("tCount", int.class))));
    }

    public static long test(int count, int tCount) {
        final int pCount = count / tCount;
        long start = System.currentTimeMillis();
        CountDownLatch la = new CountDownLatch(tCount);
        for (int i = 0; i < tCount; i++) {
            ThreadPoolManager.execute(() -> {
                for (int j = 0; j < pCount; j++) {
                    LOG.info("歪歪测试graylog客户端性能");
                }
                la.countDown();
            });
        }
        try {
            la.await();
        } catch (InterruptedException e) {
            LOG.error(e);
        }
        return System.currentTimeMillis() - start;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy