TraceSegmentService.proto 1.6 KB
Newer Older
wu-sheng's avatar
wu-sheng 已提交
1 2 3
syntax = "proto3";

option java_multiple_files = true;
wu-sheng's avatar
wu-sheng 已提交
4
option java_package = "org.skywalking.apm.network.trace.proto";
wu-sheng's avatar
wu-sheng 已提交
5

wu-sheng's avatar
wu-sheng 已提交
6 7
import "Downstream.proto";

wu-sheng's avatar
wu-sheng 已提交
8
service TraceSegmentService {
wu-sheng's avatar
wu-sheng 已提交
9
    rpc collect (stream UpstreamSegment) returns (Downstream) {
wu-sheng's avatar
wu-sheng 已提交
10 11 12
    }
}

wu-sheng's avatar
wu-sheng 已提交
13 14 15 16 17
message UpstreamSegment {
    repeated string globalTraceIds = 1;
    bytes segment = 2; // the byte array of TraceSegmentObject
}

wu-sheng's avatar
wu-sheng 已提交
18
message TraceSegmentObject {
19 20 21 22
    string traceSegmentId = 1;
    repeated TraceSegmentReference refs = 2;
    repeated SpanObject spans = 3;
    int32 applicationId = 4;
wu-sheng's avatar
wu-sheng 已提交
23
    int32 applicationInstanceId = 5;
24 25 26 27 28
}

message TraceSegmentReference {
    string parentTraceSegmentId = 1;
    int32 parentSpanId = 2;
wu-sheng's avatar
wu-sheng 已提交
29 30
    int32 parentApplicationId = 3;
    string networkAddress = 4;
31
    int32 networkAddressId = 5;
wu-sheng's avatar
wu-sheng 已提交
32 33
    string entryServiceName = 6;
    int32 entryServiceId = 7;
wu-sheng's avatar
wu-sheng 已提交
34
    repeated string globalTraceIds = 8;
35 36 37 38 39 40 41 42
}

message SpanObject {
    int32 spanId = 1;
    int32 parentSpanId = 2;
    int64 startTime = 3;
    int64 endTime = 4;
    int32 operationNameId = 5;
43 44 45 46 47 48 49 50 51 52
    string operationName = 6;
    int32 peerId = 7;
    string peer = 8;
    SpanType spanType = 9;
    SpanLayer spanLayer = 10;
    int32 componentId = 11;
    string component = 12;
    bool isError = 13;
    repeated KeyValue tags = 14;
    repeated LogMessage logs = 15;
53 54 55 56 57 58 59 60 61 62 63 64
}

enum SpanType {
    Entry = 0;
    Exit = 1;
    Local = 2;
}

enum SpanLayer {
    Database = 0;
    RPCFramework = 1;
    Http = 2;
wu-sheng's avatar
wu-sheng 已提交
65
    MQ = 3;
66 67 68 69 70 71 72 73 74 75
}

message KeyValue {
    string key = 1;
    string value = 2;
}

message LogMessage {
    int64 time = 1;
    repeated KeyValue data = 2;
wu-sheng's avatar
wu-sheng 已提交
76
}