StorageClient.java 4.3 KB
Newer Older
1 2
import com.a.eye.skywalking.network.dependencies.io.grpc.ManagedChannel;
import com.a.eye.skywalking.network.dependencies.io.grpc.ManagedChannelBuilder;
wu-sheng's avatar
wu-sheng 已提交
3 4
import com.a.eye.skywalking.network.dependencies.io.grpc.stub.ClientCallStreamObserver;
import com.a.eye.skywalking.network.dependencies.io.grpc.stub.ServerCallStreamObserver;
5
import com.a.eye.skywalking.network.dependencies.io.grpc.stub.StreamObserver;
A
ascrutae 已提交
6
import com.a.eye.skywalking.network.grpc.*;
7 8 9 10 11

import static com.a.eye.skywalking.network.grpc.SpanStorageServiceGrpc.newStub;

public class StorageClient {
    private static ManagedChannel channel =
A
ascrutae 已提交
12
            ManagedChannelBuilder.forAddress("127.0.0.1", 34000).usePlaintext(true).build();
13 14 15

    private static SpanStorageServiceGrpc.SpanStorageServiceStub spanStorageServiceStub = newStub(channel);

wu-sheng's avatar
wu-sheng 已提交
16
    private static long endTime1 = 0;
17

wu-sheng's avatar
wu-sheng 已提交
18
    private static long endTime2 = 0;
19 20 21 22 23


    public static void main(String[] args) throws InterruptedException {
        RequestSpan requestSpan =
                RequestSpan.newBuilder().setSpanType(1).setAddress("127.0.0.1").setApplicationId("1").setCallType("1")
A
ascrutae 已提交
24 25
                        .setParentLevel("0.0.0").setLevelId(0).setProcessNo("19287")
                        .setStartDate(System.currentTimeMillis()).setTraceId(
A
ascrutae 已提交
26 27
                        TraceId.newBuilder().addSegments(201611).addSegments(1478661327960L).addSegments(8504828)
                                .addSegments(2277).addSegments(53).addSegments(3).build()).setUserId("1")
A
ascrutae 已提交
28
                        .setViewPointId("com.a.eye.skywalking.storage.block.index.BlockIndexEngine.newFinder").build();
A
ascrutae 已提交
29

A
ascrutae 已提交
30
        AckSpan ackSpan = AckSpan.newBuilder().setParentLevel("0.0.0").setLevelId(0).setCost(10).setTraceId(
A
ascrutae 已提交
31 32
                TraceId.newBuilder().addSegments(201611).addSegments(1478661327960L).addSegments(8504828)
                        .addSegments(2277).addSegments(53).addSegments(3).build()).setStatusCode(0)
A
ascrutae 已提交
33
                .setViewpointId("com.a.eye.skywalking.storage.block.index.BlockIndexEngine.newFinder").build();
34

wu-sheng's avatar
wu-sheng 已提交
35 36 37
        long startTime = System.currentTimeMillis();


A
ascrutae 已提交
38
        for (int i = 0; i < 10000; i++) {
wu-sheng's avatar
wu-sheng 已提交
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
            StreamObserver<AckSpan> ackSpanStreamObserver =
                    spanStorageServiceStub.storageACKSpan(new StreamObserver<SendResult>() {
                        @Override
                        public void onNext(SendResult sendResult) {

                        }

                        @Override
                        public void onError(Throwable throwable) {
                            throwable.printStackTrace();
                        }

                        @Override
                        public void onCompleted() {
                            endTime1 = System.currentTimeMillis();
                        }
                    });
            StreamObserver<RequestSpan> requestSpanStreamObserver =
                    spanStorageServiceStub.storageRequestSpan(new StreamObserver<SendResult>() {
                        @Override
                        public void onNext(SendResult sendResult) {

                        }

                        @Override
                        public void onError(Throwable throwable) {
                            throwable.printStackTrace();
                        }

                        @Override
                        public void onCompleted() {
                            endTime2 = System.currentTimeMillis();
                        }
                    });
wu-sheng's avatar
wu-sheng 已提交
73
            for (int j = 0; j < 10; j++) {
wu-sheng's avatar
wu-sheng 已提交
74 75 76
                requestSpanStreamObserver.onNext(requestSpan);
                ackSpanStreamObserver.onNext(ackSpan);

wu-sheng's avatar
wu-sheng 已提交
77 78 79 80 81 82 83
            }

            ClientCallStreamObserver<RequestSpan> newRequestSpanStreamObserver =
                    (ClientCallStreamObserver<RequestSpan>) requestSpanStreamObserver;

            while (!newRequestSpanStreamObserver.isReady()) {
                Thread.sleep(1);
wu-sheng's avatar
wu-sheng 已提交
84 85 86 87 88 89
            }

            ackSpanStreamObserver.onCompleted();
            requestSpanStreamObserver.onCompleted();


A
ascrutae 已提交
90
            if (i % 500_000 == 0) {
wu-sheng's avatar
wu-sheng 已提交
91 92 93
                System.out.println(i);
            }

94 95
        }

wu-sheng's avatar
wu-sheng 已提交
96 97 98 99
        Thread.sleep(1000L);

        System.out.println("save execute in " + (endTime1 - startTime) + "ms");
        System.out.println("save execute2 in " + (endTime2 - startTime) + "ms");
100 101 102 103 104 105


        Thread.sleep(10000);

    }
}