Profile.proto 2.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

syntax = "proto3";

wu-sheng's avatar
wu-sheng 已提交
21 22
package skywalking.network.protocol.agent.profile;

23 24 25 26 27
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.profile";
option csharp_namespace = "SkyWalking.NetworkProtocol";

import "common/common.proto";
28
import "common/trace-common.proto";
29 30 31 32

service ProfileTask {

    // query all sniffer need to execute profile task commands
wu-sheng's avatar
wu-sheng 已提交
33
    rpc getProfileTaskCommands (ProfileTaskCommandQuery) returns (skywalking.network.protocol.common.Commands) {
34 35
    }

36
    // collect dumped thread snapshot
wu-sheng's avatar
wu-sheng 已提交
37
    rpc collectSnapshot (stream ThreadSnapshot) returns (skywalking.network.protocol.common.Commands) {
38 39 40
    }

    // report profiling task finished
wu-sheng's avatar
wu-sheng 已提交
41
    rpc reportTaskFinish (ProfileTaskFinishReport) returns (skywalking.network.protocol.common.Commands) {
42 43
    }

44 45 46 47 48 49 50
}

message ProfileTaskCommandQuery {
    // current sniffer information
    int32 serviceId = 1;
    int32 instanceId = 2;

K
kezhenxu94 已提交
51
    // last command timestamp
52 53
    int64 lastCommandTime = 3;
}
54

55 56
// dumped thread snapshot
message ThreadSnapshot {
57 58 59
    // profile task id
    string taskId = 1;
    // dumped segment id
wu-sheng's avatar
wu-sheng 已提交
60
    skywalking.network.protocol.common.UniqueId traceSegmentId = 2;
61 62 63 64 65
    // dump timestamp
    int64 time = 3;
    // snapshot dump sequence, start with zero
    int32 sequence = 4;
    // snapshot stack
66
    ThreadStack stack = 5;
67 68
}

69 70
message ThreadStack {
    // stack code signature list
71 72 73 74 75 76 77 78 79 80 81 82
    repeated string codeSignatures = 1;
}

// profile task finished report
message ProfileTaskFinishReport {
    // current sniffer information
    int32 serviceId = 1;
    int32 instanceId = 2;

    // profile task
    string taskId = 3;
}