Search in sources :

Example 1 with OperationPerfGroups

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups in project incubator-servicecomb-java-chassis by apache.

the class TestDefaultLogPublisher method onPolledEvent.

@Test
public void onPolledEvent(@Mocked VertxImplEx vertxImplEx) {
    new Expectations(VertxUtils.class) {

        {
            VertxUtils.getVertxMap();
            result = Collections.singletonMap("v", vertxImplEx);
            vertxImplEx.getEventLoopContextCreatedCount();
            result = 1;
        }
    };
    DefaultPublishModel model = new DefaultPublishModel();
    PerfInfo perfTotal = new PerfInfo();
    perfTotal.setTps(10);
    perfTotal.setMsTotalTime(100);
    OperationPerf operationPerf = new OperationPerf();
    operationPerf.setOperation("op");
    operationPerf.getStages().put(MeterInvocationConst.STAGE_TOTAL, perfTotal);
    operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTOR_QUEUE, perfTotal);
    operationPerf.getStages().put(MeterInvocationConst.STAGE_EXECUTION, perfTotal);
    OperationPerfGroup operationPerfGroup = new OperationPerfGroup(Const.RESTFUL, Status.OK.name());
    operationPerfGroup.addOperationPerf(operationPerf);
    OperationPerfGroups operationPerfGroups = new OperationPerfGroups();
    operationPerfGroups.getGroups().put(operationPerfGroup.getTransport(), Collections.singletonMap(operationPerfGroup.getStatus(), operationPerfGroup));
    model.getConsumer().setOperationPerfGroups(operationPerfGroups);
    model.getProducer().setOperationPerfGroups(operationPerfGroups);
    new MockUp<PublishModelFactory>() {

        @Mock
        DefaultPublishModel createDefaultPublishModel() {
            return model;
        }
    };
    publisher.onPolledEvent(new PolledEvent(Collections.emptyList()));
    List<LoggingEvent> events = collector.getEvents().stream().filter(e -> {
        return DefaultLogPublisher.class.getName().equals(e.getLoggerName());
    }).collect(Collectors.toList());
    LoggingEvent event = events.get(0);
    Assert.assertEquals("\n" + "vertx:\n" + "  name       eventLoopContext-created\n" + "  v          1\n" + "consumer:\n" + "  tps     latency(ms) max-latency(ms) operation\n" + "  rest.OK:\n" + "  10      10.000      0.000           op\n" + "  10      10.000      0.000           \n" + "producer:\n" + "  tps     latency(ms) max-latency(ms) queue(ms) max-queue(ms) execute(ms) max-execute(ms) operation\n" + "  rest.OK:\n" + "  10      10.000      0.000           10.000    0.000         10.000      0.000           op\n" + "  10      10.000      0.000           10.000    0.000         10.000      0.000           \n" + "", event.getMessage());
}
Also used : Expectations(mockit.Expectations) LoggingEvent(org.apache.log4j.spi.LoggingEvent) OperationPerfGroup(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup) CompositeRegistry(com.netflix.spectator.api.CompositeRegistry) Expectations(mockit.Expectations) ArchaiusUtils(org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils) DefaultPublishModel(org.apache.servicecomb.metrics.core.publish.model.DefaultPublishModel) MeterInvocationConst(org.apache.servicecomb.metrics.core.meter.invocation.MeterInvocationConst) PerfInfo(org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo) VertxImplEx(io.vertx.core.impl.VertxImplEx) MetricsBootstrapConfig(org.apache.servicecomb.foundation.metrics.MetricsBootstrapConfig) EventBus(com.google.common.eventbus.EventBus) OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups) VertxUtils(org.apache.servicecomb.foundation.vertx.VertxUtils) After(org.junit.After) Mock(mockit.Mock) PolledEvent(org.apache.servicecomb.foundation.metrics.PolledEvent) OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) Status(javax.ws.rs.core.Response.Status) Before(org.junit.Before) LogCollector(org.apache.servicecomb.foundation.test.scaffolding.log.LogCollector) MockUp(mockit.MockUp) Const(org.apache.servicecomb.core.Const) LoggingEvent(org.apache.log4j.spi.LoggingEvent) Test(org.junit.Test) Collectors(java.util.stream.Collectors) List(java.util.List) Holder(javax.xml.ws.Holder) Assert(org.junit.Assert) Collections(java.util.Collections) Mocked(mockit.Mocked) OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups) PolledEvent(org.apache.servicecomb.foundation.metrics.PolledEvent) OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) DefaultPublishModel(org.apache.servicecomb.metrics.core.publish.model.DefaultPublishModel) MockUp(mockit.MockUp) PerfInfo(org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo) OperationPerfGroup(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup) Test(org.junit.Test)

Example 2 with OperationPerfGroups

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups in project incubator-servicecomb-java-chassis by apache.

the class TestPublishUtils method addOperationPerfGroups.

@Test
public void addOperationPerfGroups() {
    OperationPerfGroups groups = new OperationPerfGroups();
    PublishUtils.addOperationPerfGroups(groups, Const.RESTFUL, op, Utils.createStatusNode(Status.OK.name(), Utils.totalStageNode));
    Map<String, OperationPerfGroup> statusMap = groups.getGroups().get(Const.RESTFUL);
    OperationPerfGroup group = statusMap.get(Status.OK.name());
    PerfInfo perfInfo = group.getSummary().findStage(MeterInvocationConst.STAGE_TOTAL);
    Assert.assertEquals(10, perfInfo.getTps());
    Assert.assertEquals(1000, perfInfo.calcMsLatency(), 0);
    Assert.assertEquals(100000, perfInfo.getMsMaxLatency(), 0);
}
Also used : OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups) PerfInfo(org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo) OperationPerfGroup(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup) Test(org.junit.Test)

Example 3 with OperationPerfGroups

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups in project incubator-servicecomb-java-chassis by apache.

the class DefaultLogPublisher method printConsumerLog.

protected void printConsumerLog(DefaultPublishModel model, StringBuilder sb) {
    OperationPerfGroups consumerPerf = model.getConsumer().getOperationPerfGroups();
    if (consumerPerf == null) {
        return;
    }
    sb.append("consumer:\n");
    printConsumerPerfLog(consumerPerf, sb);
}
Also used : OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups)

Example 4 with OperationPerfGroups

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups in project incubator-servicecomb-java-chassis by apache.

the class DefaultLogPublisher method printProducerLog.

protected void printProducerLog(DefaultPublishModel model, StringBuilder sb) {
    OperationPerfGroups producerPerf = model.getProducer().getOperationPerfGroups();
    if (producerPerf == null) {
        return;
    }
    sb.append("producer:\n");
    sb.append("  tps     latency(ms) max-latency(ms) queue(ms) max-queue(ms) execute(ms) max-execute(ms) operation\n");
    for (Map<String, OperationPerfGroup> statusMap : producerPerf.getGroups().values()) {
        for (OperationPerfGroup perfGroup : statusMap.values()) {
            sb.append("  ").append(perfGroup.getTransport()).append(".").append(perfGroup.getStatus()).append(":\n");
            for (OperationPerf operationPerf : perfGroup.getOperationPerfs()) {
                printProducerOperationPerf(operationPerf, sb);
            }
            printProducerOperationPerf(perfGroup.getSummary(), sb);
        }
    }
}
Also used : OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups) OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) OperationPerfGroup(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup)

Example 5 with OperationPerfGroups

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups in project incubator-servicecomb-java-chassis by apache.

the class PublishModelFactory method generateOperationPerfGroups.

protected OperationPerfGroups generateOperationPerfGroups(MeasurementTree tree, String invocationTypeName) {
    MeasurementNode node = tree.findChild(MeterInvocationConst.INVOCATION_NAME, invocationTypeName);
    if (node == null) {
        return null;
    }
    OperationPerfGroups groups = new OperationPerfGroups();
    // group by transport
    for (MeasurementNode transportNode : node.getChildren().values()) {
        // group by operation
        for (MeasurementNode operationNode : transportNode.getChildren().values()) {
            // group by status
            for (MeasurementNode statusNode : operationNode.getChildren().values()) {
                PublishUtils.addOperationPerfGroups(groups, transportNode.getName(), operationNode.getName(), statusNode);
            }
        }
    }
    return groups;
}
Also used : MeasurementNode(org.apache.servicecomb.foundation.metrics.publish.spectator.MeasurementNode) OperationPerfGroups(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups)

Aggregations

OperationPerfGroups (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups)5 OperationPerfGroup (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup)3 OperationPerf (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf)2 PerfInfo (org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo)2 Test (org.junit.Test)2 EventBus (com.google.common.eventbus.EventBus)1 CompositeRegistry (com.netflix.spectator.api.CompositeRegistry)1 VertxImplEx (io.vertx.core.impl.VertxImplEx)1 Collections (java.util.Collections)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 Status (javax.ws.rs.core.Response.Status)1 Holder (javax.xml.ws.Holder)1 Expectations (mockit.Expectations)1 Mock (mockit.Mock)1 MockUp (mockit.MockUp)1 Mocked (mockit.Mocked)1 LoggingEvent (org.apache.log4j.spi.LoggingEvent)1 Const (org.apache.servicecomb.core.Const)1 MetricsBootstrapConfig (org.apache.servicecomb.foundation.metrics.MetricsBootstrapConfig)1