Search in sources :

Example 1 with OperationPerf

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

the class DefaultLogPublisher method printConsumerPerfLog.

protected void printConsumerPerfLog(OperationPerfGroups consumerPerf, StringBuilder sb) {
    sb.append("  tps     latency(ms) max-latency(ms) operation\n");
    for (Map<String, OperationPerfGroup> statusMap : consumerPerf.getGroups().values()) {
        for (OperationPerfGroup perfGroup : statusMap.values()) {
            sb.append("  ").append(perfGroup.getTransport()).append(".").append(perfGroup.getStatus()).append(":\n");
            for (OperationPerf operationPerf : perfGroup.getOperationPerfs()) {
                printConsumerOperationPerf(operationPerf, sb);
            }
            printConsumerOperationPerf(perfGroup.getSummary(), sb);
        }
    }
}
Also used : OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) OperationPerfGroup(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup)

Example 2 with OperationPerf

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

the class PublishUtils method createOperationPerf.

public static OperationPerf createOperationPerf(String operation, MeasurementNode statusNode) {
    OperationPerf operationPerf = new OperationPerf();
    operationPerf.setOperation(operation);
    for (MeasurementNode stageNode : statusNode.getChildren().values()) {
        PerfInfo perfInfo = createPerfInfo(stageNode);
        operationPerf.getStages().put(stageNode.getName(), perfInfo);
    }
    return operationPerf;
}
Also used : MeasurementNode(org.apache.servicecomb.foundation.metrics.publish.spectator.MeasurementNode) OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) PerfInfo(org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo)

Example 3 with OperationPerf

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf 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 4 with OperationPerf

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

the class TestPublishUtils method createOperationPerf.

@Test
public void createOperationPerf() {
    OperationPerf opPerf = Utils.createOperationPerf(op);
    PerfInfo perfInfo = opPerf.findStage(MeterInvocationConst.STAGE_TOTAL);
    Assert.assertEquals(10, perfInfo.getTps());
    Assert.assertEquals(1000, perfInfo.calcMsLatency(), 0);
    Assert.assertEquals(100000, perfInfo.getMsMaxLatency(), 0);
}
Also used : OperationPerf(org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf) PerfInfo(org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo) Test(org.junit.Test)

Example 5 with OperationPerf

use of org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf 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)

Aggregations

OperationPerf (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf)6 OperationPerfGroup (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup)4 PerfInfo (org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo)3 OperationPerfGroups (org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups)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 HashMap (java.util.HashMap)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