This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-goapi.git


The following commit(s) were added to refs/heads/main by this push:
     new d2d49a0  Sync data collect protocol for continuous profiling (#50)
d2d49a0 is described below

commit d2d49a01c8227b70873c7ca3eb9c8f54bd23d01b
Author: mrproliu <[email protected]>
AuthorDate: Tue Feb 14 16:18:28 2023 +0800

    Sync data collect protocol for continuous profiling (#50)
---
 collect/common/v3/Command.pb.go                 |   22 +
 collect/ebpf/profiling/v3/Continuous.pb.go      | 1039 +++++++++++++++++++++++
 collect/ebpf/profiling/v3/Continuous_grpc.pb.go |  145 ++++
 collect/language/agent/v3/Tracing.pb.go         |    7 +-
 dependencies.sh                                 |    2 +-
 go.mod                                          |    2 +-
 go.sum                                          |   10 +-
 7 files changed, 1221 insertions(+), 6 deletions(-)

diff --git a/collect/common/v3/Command.pb.go b/collect/common/v3/Command.pb.go
index f148766..5145fb9 100644
--- a/collect/common/v3/Command.pb.go
+++ b/collect/common/v3/Command.pb.go
@@ -84,6 +84,28 @@ const (
 //                 MaxResponseSize: Integer
 //         ------------------------
 //     FixedTriggerDuration: Long
+//
+// Name: ContinuousProfilingPolicyQuery
+// Args:
+//     ServiceWithPolicyJSON: List JSON serialization of ServiceWithPolicy.
+//         --- ServiceWithPolicy ---
+//         ServiceName: String
+//         UUID: String
+//         Profiling: Multiple profiling configuration. Map
+//             Key: Profiling type. Enum, value = ON_CPU, OFF_CPU, NETWORK
+//             Value: Profiling policies. Map
+//                 Key: Monitoring type. Enum, value = PROCESS_CPU, 
PROCESS_THREAD_COUNT, SYSTEM_LOAD, HTTP_ERROR_RATE, HTTP_AVG_RESPONSE_TIME
+//                 Value: Policy configuration. Object.
+//                     Threshold: String
+//                     Period(s): Integer
+//                     Count: Integer
+//                     URIList: List<String>
+//                     URIRegex: String
+//         ---------------------------
+//
+// Name: ContinuousProfilingReportTask
+// Args:
+//     TaskId: String
 type Command struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/collect/ebpf/profiling/v3/Continuous.pb.go 
b/collect/ebpf/profiling/v3/Continuous.pb.go
new file mode 100644
index 0000000..7a04a1b
--- /dev/null
+++ b/collect/ebpf/profiling/v3/Continuous.pb.go
@@ -0,0 +1,1039 @@
+//
+// 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.
+//
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+//     protoc-gen-go v1.26.0
+//     protoc        v3.14.0
+// source: ebpf/profiling/Continuous.proto
+
+package v3
+
+import (
+       protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+       protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+       reflect "reflect"
+       v3 "skywalking.apache.org/repo/goapi/collect/common/v3"
+       sync "sync"
+)
+
+const (
+       // Verify that this generated code is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+       // Verify that runtime/protoimpl is sufficiently up-to-date.
+       _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type ContinuousProfilingCauseType int32
+
+const (
+       // Current process CPU usage percent(0-100).
+       ContinuousProfilingCauseType_ProcessCPU ContinuousProfilingCauseType = 0
+       // The number of threads in the process.
+       ContinuousProfilingCauseType_ProcessThreadCount 
ContinuousProfilingCauseType = 1
+       // System load value.
+       ContinuousProfilingCauseType_SystemLoad ContinuousProfilingCauseType = 2
+       // Process response error rate(0-100).
+       // HTTP response codes in [500-600) are considered errors.
+       // Formula: ErrorCount / TotalCount * 100
+       ContinuousProfilingCauseType_HTTPErrorRate ContinuousProfilingCauseType 
= 3
+       // Process response average time(ms).
+       // Formula: TotalResponseTime(ms) / TotalCount
+       ContinuousProfilingCauseType_HTTPAvgResponseTime 
ContinuousProfilingCauseType = 4
+)
+
+// Enum value maps for ContinuousProfilingCauseType.
+var (
+       ContinuousProfilingCauseType_name = map[int32]string{
+               0: "ProcessCPU",
+               1: "ProcessThreadCount",
+               2: "SystemLoad",
+               3: "HTTPErrorRate",
+               4: "HTTPAvgResponseTime",
+       }
+       ContinuousProfilingCauseType_value = map[string]int32{
+               "ProcessCPU":          0,
+               "ProcessThreadCount":  1,
+               "SystemLoad":          2,
+               "HTTPErrorRate":       3,
+               "HTTPAvgResponseTime": 4,
+       }
+)
+
+func (x ContinuousProfilingCauseType) Enum() *ContinuousProfilingCauseType {
+       p := new(ContinuousProfilingCauseType)
+       *p = x
+       return p
+}
+
+func (x ContinuousProfilingCauseType) String() string {
+       return protoimpl.X.EnumStringOf(x.Descriptor(), 
protoreflect.EnumNumber(x))
+}
+
+func (ContinuousProfilingCauseType) Descriptor() protoreflect.EnumDescriptor {
+       return file_ebpf_profiling_Continuous_proto_enumTypes[0].Descriptor()
+}
+
+func (ContinuousProfilingCauseType) Type() protoreflect.EnumType {
+       return &file_ebpf_profiling_Continuous_proto_enumTypes[0]
+}
+
+func (x ContinuousProfilingCauseType) Number() protoreflect.EnumNumber {
+       return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ContinuousProfilingCauseType.Descriptor instead.
+func (ContinuousProfilingCauseType) EnumDescriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{0}
+}
+
+type ContinuousProfilingPolicyQuery struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // current agent contains service and policies
+       Policies []*ContinuousProfilingServicePolicyQuery 
`protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"`
+}
+
+func (x *ContinuousProfilingPolicyQuery) Reset() {
+       *x = ContinuousProfilingPolicyQuery{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[0]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingPolicyQuery) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingPolicyQuery) ProtoMessage() {}
+
+func (x *ContinuousProfilingPolicyQuery) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[0]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousProfilingPolicyQuery.ProtoReflect.Descriptor 
instead.
+func (*ContinuousProfilingPolicyQuery) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ContinuousProfilingPolicyQuery) GetPolicies() 
[]*ContinuousProfilingServicePolicyQuery {
+       if x != nil {
+               return x.Policies
+       }
+       return nil
+}
+
+type ContinuousProfilingServicePolicyQuery struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // service name of the each process
+       ServiceName string `protobuf:"bytes,1,opt,name=serviceName,proto3" 
json:"serviceName,omitempty"`
+       // UUID represents the version(hash/shasum) of the current policies for 
the service.
+       // This is blank in the initialization stage and is set through the 
`ContinuousProfilingPolicyQuery` command response for the following rounds of 
queries.
+       Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" 
json:"uuid,omitempty"`
+}
+
+func (x *ContinuousProfilingServicePolicyQuery) Reset() {
+       *x = ContinuousProfilingServicePolicyQuery{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[1]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingServicePolicyQuery) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingServicePolicyQuery) ProtoMessage() {}
+
+func (x *ContinuousProfilingServicePolicyQuery) ProtoReflect() 
protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[1]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use 
ContinuousProfilingServicePolicyQuery.ProtoReflect.Descriptor instead.
+func (*ContinuousProfilingServicePolicyQuery) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ContinuousProfilingServicePolicyQuery) GetServiceName() string {
+       if x != nil {
+               return x.ServiceName
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingServicePolicyQuery) GetUuid() string {
+       if x != nil {
+               return x.Uuid
+       }
+       return ""
+}
+
+type ContinuousProfilingReport struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // over threshold process entity
+       Layer        string `protobuf:"bytes,1,opt,name=layer,proto3" 
json:"layer,omitempty"`
+       ServiceName  string `protobuf:"bytes,2,opt,name=serviceName,proto3" 
json:"serviceName,omitempty"`
+       InstanceName string `protobuf:"bytes,3,opt,name=instanceName,proto3" 
json:"instanceName,omitempty"`
+       ProcessName  string `protobuf:"bytes,4,opt,name=processName,proto3" 
json:"processName,omitempty"`
+       // reached thresholds causes
+       Causes []*ContinuousProfilingCause 
`protobuf:"bytes,5,rep,name=causes,proto3" json:"causes,omitempty"`
+       // The execution duration for this triggered profiling.
+       // This is set at the agent side.
+       Duration int32 `protobuf:"varint,6,opt,name=duration,proto3" 
json:"duration,omitempty"`
+       // target profiling task
+       //
+       // Types that are assignable to TargetTask:
+       //      *ContinuousProfilingReport_OnCPU
+       //      *ContinuousProfilingReport_OffCPU
+       //      *ContinuousProfilingReport_Network
+       TargetTask isContinuousProfilingReport_TargetTask 
`protobuf_oneof:"targetTask"`
+}
+
+func (x *ContinuousProfilingReport) Reset() {
+       *x = ContinuousProfilingReport{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[2]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingReport) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingReport) ProtoMessage() {}
+
+func (x *ContinuousProfilingReport) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[2]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousProfilingReport.ProtoReflect.Descriptor instead.
+func (*ContinuousProfilingReport) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ContinuousProfilingReport) GetLayer() string {
+       if x != nil {
+               return x.Layer
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingReport) GetServiceName() string {
+       if x != nil {
+               return x.ServiceName
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingReport) GetInstanceName() string {
+       if x != nil {
+               return x.InstanceName
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingReport) GetProcessName() string {
+       if x != nil {
+               return x.ProcessName
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingReport) GetCauses() []*ContinuousProfilingCause {
+       if x != nil {
+               return x.Causes
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingReport) GetDuration() int32 {
+       if x != nil {
+               return x.Duration
+       }
+       return 0
+}
+
+func (m *ContinuousProfilingReport) GetTargetTask() 
isContinuousProfilingReport_TargetTask {
+       if m != nil {
+               return m.TargetTask
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingReport) GetOnCPU() *ContinuousOnCPUProfilingTask {
+       if x, ok := x.GetTargetTask().(*ContinuousProfilingReport_OnCPU); ok {
+               return x.OnCPU
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingReport) GetOffCPU() *ContinuousOffCPUProfilingTask 
{
+       if x, ok := x.GetTargetTask().(*ContinuousProfilingReport_OffCPU); ok {
+               return x.OffCPU
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingReport) GetNetwork() 
*ContinuousNetworkProfilingTask {
+       if x, ok := x.GetTargetTask().(*ContinuousProfilingReport_Network); ok {
+               return x.Network
+       }
+       return nil
+}
+
+type isContinuousProfilingReport_TargetTask interface {
+       isContinuousProfilingReport_TargetTask()
+}
+
+type ContinuousProfilingReport_OnCPU struct {
+       OnCPU *ContinuousOnCPUProfilingTask 
`protobuf:"bytes,7,opt,name=onCPU,proto3,oneof"`
+}
+
+type ContinuousProfilingReport_OffCPU struct {
+       OffCPU *ContinuousOffCPUProfilingTask 
`protobuf:"bytes,8,opt,name=offCPU,proto3,oneof"`
+}
+
+type ContinuousProfilingReport_Network struct {
+       Network *ContinuousNetworkProfilingTask 
`protobuf:"bytes,9,opt,name=network,proto3,oneof"`
+}
+
+func (*ContinuousProfilingReport_OnCPU) 
isContinuousProfilingReport_TargetTask() {}
+
+func (*ContinuousProfilingReport_OffCPU) 
isContinuousProfilingReport_TargetTask() {}
+
+func (*ContinuousProfilingReport_Network) 
isContinuousProfilingReport_TargetTask() {}
+
+type ContinuousProfilingCause struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       Type ContinuousProfilingCauseType 
`protobuf:"varint,1,opt,name=type,proto3,enum=skywalking.v3.ContinuousProfilingCauseType"
 json:"type,omitempty"`
+       // Types that are assignable to Cause:
+       //      *ContinuousProfilingCause_SingleValue
+       //      *ContinuousProfilingCause_Uri
+       Cause isContinuousProfilingCause_Cause `protobuf_oneof:"cause"`
+}
+
+func (x *ContinuousProfilingCause) Reset() {
+       *x = ContinuousProfilingCause{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[3]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingCause) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingCause) ProtoMessage() {}
+
+func (x *ContinuousProfilingCause) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[3]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousProfilingCause.ProtoReflect.Descriptor instead.
+func (*ContinuousProfilingCause) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ContinuousProfilingCause) GetType() ContinuousProfilingCauseType {
+       if x != nil {
+               return x.Type
+       }
+       return ContinuousProfilingCauseType_ProcessCPU
+}
+
+func (m *ContinuousProfilingCause) GetCause() isContinuousProfilingCause_Cause 
{
+       if m != nil {
+               return m.Cause
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingCause) GetSingleValue() 
*ContinuousProfilingSingleValueCause {
+       if x, ok := x.GetCause().(*ContinuousProfilingCause_SingleValue); ok {
+               return x.SingleValue
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingCause) GetUri() *ContinuousProfilingURICause {
+       if x, ok := x.GetCause().(*ContinuousProfilingCause_Uri); ok {
+               return x.Uri
+       }
+       return nil
+}
+
+type isContinuousProfilingCause_Cause interface {
+       isContinuousProfilingCause_Cause()
+}
+
+type ContinuousProfilingCause_SingleValue struct {
+       SingleValue *ContinuousProfilingSingleValueCause 
`protobuf:"bytes,2,opt,name=singleValue,proto3,oneof"`
+}
+
+type ContinuousProfilingCause_Uri struct {
+       Uri *ContinuousProfilingURICause 
`protobuf:"bytes,3,opt,name=uri,proto3,oneof"`
+}
+
+func (*ContinuousProfilingCause_SingleValue) 
isContinuousProfilingCause_Cause() {}
+
+func (*ContinuousProfilingCause_Uri) isContinuousProfilingCause_Cause() {}
+
+type ContinuousProfilingSingleValueCause struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       Threshold float64 `protobuf:"fixed64,1,opt,name=threshold,proto3" 
json:"threshold,omitempty"`
+       Current   float64 `protobuf:"fixed64,2,opt,name=current,proto3" 
json:"current,omitempty"`
+}
+
+func (x *ContinuousProfilingSingleValueCause) Reset() {
+       *x = ContinuousProfilingSingleValueCause{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[4]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingSingleValueCause) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingSingleValueCause) ProtoMessage() {}
+
+func (x *ContinuousProfilingSingleValueCause) ProtoReflect() 
protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[4]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousProfilingSingleValueCause.ProtoReflect.Descriptor 
instead.
+func (*ContinuousProfilingSingleValueCause) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ContinuousProfilingSingleValueCause) GetThreshold() float64 {
+       if x != nil {
+               return x.Threshold
+       }
+       return 0
+}
+
+func (x *ContinuousProfilingSingleValueCause) GetCurrent() float64 {
+       if x != nil {
+               return x.Current
+       }
+       return 0
+}
+
+type ContinuousProfilingURICause struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       // Types that are assignable to Uri:
+       //      *ContinuousProfilingURICause_Regex
+       //      *ContinuousProfilingURICause_Path
+       Uri       isContinuousProfilingURICause_Uri `protobuf_oneof:"uri"`
+       Threshold float64                           
`protobuf:"fixed64,3,opt,name=threshold,proto3" json:"threshold,omitempty"`
+       Current   float64                           
`protobuf:"fixed64,4,opt,name=current,proto3" json:"current,omitempty"`
+}
+
+func (x *ContinuousProfilingURICause) Reset() {
+       *x = ContinuousProfilingURICause{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[5]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousProfilingURICause) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousProfilingURICause) ProtoMessage() {}
+
+func (x *ContinuousProfilingURICause) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[5]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousProfilingURICause.ProtoReflect.Descriptor instead.
+func (*ContinuousProfilingURICause) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{5}
+}
+
+func (m *ContinuousProfilingURICause) GetUri() 
isContinuousProfilingURICause_Uri {
+       if m != nil {
+               return m.Uri
+       }
+       return nil
+}
+
+func (x *ContinuousProfilingURICause) GetRegex() string {
+       if x, ok := x.GetUri().(*ContinuousProfilingURICause_Regex); ok {
+               return x.Regex
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingURICause) GetPath() string {
+       if x, ok := x.GetUri().(*ContinuousProfilingURICause_Path); ok {
+               return x.Path
+       }
+       return ""
+}
+
+func (x *ContinuousProfilingURICause) GetThreshold() float64 {
+       if x != nil {
+               return x.Threshold
+       }
+       return 0
+}
+
+func (x *ContinuousProfilingURICause) GetCurrent() float64 {
+       if x != nil {
+               return x.Current
+       }
+       return 0
+}
+
+type isContinuousProfilingURICause_Uri interface {
+       isContinuousProfilingURICause_Uri()
+}
+
+type ContinuousProfilingURICause_Regex struct {
+       Regex string `protobuf:"bytes,1,opt,name=regex,proto3,oneof"`
+}
+
+type ContinuousProfilingURICause_Path struct {
+       Path string `protobuf:"bytes,2,opt,name=path,proto3,oneof"`
+}
+
+func (*ContinuousProfilingURICause_Regex) isContinuousProfilingURICause_Uri() 
{}
+
+func (*ContinuousProfilingURICause_Path) isContinuousProfilingURICause_Uri() {}
+
+// eBPF on CPU profiling task
+type ContinuousOnCPUProfilingTask struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+}
+
+func (x *ContinuousOnCPUProfilingTask) Reset() {
+       *x = ContinuousOnCPUProfilingTask{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[6]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousOnCPUProfilingTask) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousOnCPUProfilingTask) ProtoMessage() {}
+
+func (x *ContinuousOnCPUProfilingTask) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[6]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousOnCPUProfilingTask.ProtoReflect.Descriptor 
instead.
+func (*ContinuousOnCPUProfilingTask) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{6}
+}
+
+// eBPF off CPU profiling task
+type ContinuousOffCPUProfilingTask struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+}
+
+func (x *ContinuousOffCPUProfilingTask) Reset() {
+       *x = ContinuousOffCPUProfilingTask{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[7]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousOffCPUProfilingTask) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousOffCPUProfilingTask) ProtoMessage() {}
+
+func (x *ContinuousOffCPUProfilingTask) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[7]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousOffCPUProfilingTask.ProtoReflect.Descriptor 
instead.
+func (*ContinuousOffCPUProfilingTask) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{7}
+}
+
+// eBPF Network profiling task
+type ContinuousNetworkProfilingTask struct {
+       state         protoimpl.MessageState
+       sizeCache     protoimpl.SizeCache
+       unknownFields protoimpl.UnknownFields
+
+       SamplingURIRegex string 
`protobuf:"bytes,1,opt,name=samplingURIRegex,proto3" 
json:"samplingURIRegex,omitempty"`
+}
+
+func (x *ContinuousNetworkProfilingTask) Reset() {
+       *x = ContinuousNetworkProfilingTask{}
+       if protoimpl.UnsafeEnabled {
+               mi := &file_ebpf_profiling_Continuous_proto_msgTypes[8]
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               ms.StoreMessageInfo(mi)
+       }
+}
+
+func (x *ContinuousNetworkProfilingTask) String() string {
+       return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContinuousNetworkProfilingTask) ProtoMessage() {}
+
+func (x *ContinuousNetworkProfilingTask) ProtoReflect() protoreflect.Message {
+       mi := &file_ebpf_profiling_Continuous_proto_msgTypes[8]
+       if protoimpl.UnsafeEnabled && x != nil {
+               ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+               if ms.LoadMessageInfo() == nil {
+                       ms.StoreMessageInfo(mi)
+               }
+               return ms
+       }
+       return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContinuousNetworkProfilingTask.ProtoReflect.Descriptor 
instead.
+func (*ContinuousNetworkProfilingTask) Descriptor() ([]byte, []int) {
+       return file_ebpf_profiling_Continuous_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *ContinuousNetworkProfilingTask) GetSamplingURIRegex() string {
+       if x != nil {
+               return x.SamplingURIRegex
+       }
+       return ""
+}
+
+var File_ebpf_profiling_Continuous_proto protoreflect.FileDescriptor
+
+var file_ebpf_profiling_Continuous_proto_rawDesc = []byte{
+       0x0a, 0x1f, 0x65, 0x62, 0x70, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 
0x6c, 0x69, 0x6e, 0x67,
+       0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x2e, 
0x70, 0x72, 0x6f, 0x74,
+       0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 
0x67, 0x2e, 0x76, 0x33,
+       0x1a, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 
0x6d, 0x61, 0x6e, 0x64,
+       0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x72, 0x0a, 0x1e, 0x43, 0x6f, 
0x6e, 0x74, 0x69, 0x6e,
+       0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 
0x67, 0x50, 0x6f, 0x6c,
+       0x69, 0x63, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x08, 
0x70, 0x6f, 0x6c, 0x69,
+       0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 
0x2e, 0x73, 0x6b, 0x79,
+       0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 
0x6f, 0x6e, 0x74, 0x69,
+       0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 
0x6e, 0x67, 0x53, 0x65,
+       0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x51, 
0x75, 0x65, 0x72, 0x79,
+       0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x5d, 
0x0a, 0x25, 0x43, 0x6f,
+       0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 
0x69, 0x6c, 0x69, 0x6e,
+       0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x6c, 0x69, 
0x63, 0x79, 0x51, 0x75,
+       0x65, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 
0x63, 0x65, 0x4e, 0x61,
+       0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 
0x72, 0x76, 0x69, 0x63,
+       0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 
0x64, 0x18, 0x02, 0x20,
+       0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xdc, 0x03, 
0x0a, 0x19, 0x43, 0x6f,
+       0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 
0x69, 0x6c, 0x69, 0x6e,
+       0x67, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 
0x61, 0x79, 0x65, 0x72,
+       0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 
0x72, 0x12, 0x20, 0x0a,
+       0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 
0x18, 0x02, 0x20, 0x01,
+       0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 
0x61, 0x6d, 0x65, 0x12,
+       0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 
0x61, 0x6d, 0x65, 0x18,
+       0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 
0x6e, 0x63, 0x65, 0x4e,
+       0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 
0x73, 0x73, 0x4e, 0x61,
+       0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 
0x6f, 0x63, 0x65, 0x73,
+       0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x61, 0x75, 
0x73, 0x65, 0x73, 0x18,
+       0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x6b, 0x79, 0x77, 
0x61, 0x6c, 0x6b, 0x69,
+       0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 
0x75, 0x6f, 0x75, 0x73,
+       0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x75, 
0x73, 0x65, 0x52, 0x06,
+       0x63, 0x61, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 
0x72, 0x61, 0x74, 0x69,
+       0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 
0x72, 0x61, 0x74, 0x69,
+       0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x6e, 0x43, 0x50, 0x55, 0x18, 
0x07, 0x20, 0x01, 0x28,
+       0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 
0x6e, 0x67, 0x2e, 0x76,
+       0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 
0x4f, 0x6e, 0x43, 0x50,
+       0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x61, 
0x73, 0x6b, 0x48, 0x00,
+       0x52, 0x05, 0x6f, 0x6e, 0x43, 0x50, 0x55, 0x12, 0x46, 0x0a, 0x06, 0x6f, 
0x66, 0x66, 0x43, 0x50,
+       0x55, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x6b, 
0x79, 0x77, 0x61, 0x6c,
+       0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 
0x69, 0x6e, 0x75, 0x6f,
+       0x75, 0x73, 0x4f, 0x66, 0x66, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 
0x69, 0x6c, 0x69, 0x6e,
+       0x67, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 
0x43, 0x50, 0x55, 0x12,
+       0x49, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x09, 
0x20, 0x01, 0x28, 0x0b,
+       0x32, 0x2d, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 
0x67, 0x2e, 0x76, 0x33,
+       0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x4e, 
0x65, 0x74, 0x77, 0x6f,
+       0x72, 0x6b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x54, 
0x61, 0x73, 0x6b, 0x48,
+       0x00, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x0c, 
0x0a, 0x0a, 0x74, 0x61,
+       0x72, 0x67, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x22, 0xfc, 0x01, 0x0a, 
0x18, 0x43, 0x6f, 0x6e,
+       0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 
0x6c, 0x69, 0x6e, 0x67,
+       0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 
0x65, 0x18, 0x01, 0x20,
+       0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 
0x6b, 0x69, 0x6e, 0x67,
+       0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 
0x75, 0x73, 0x50, 0x72,
+       0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x75, 0x73, 0x65, 
0x54, 0x79, 0x70, 0x65,
+       0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0b, 0x73, 0x69, 
0x6e, 0x67, 0x6c, 0x65,
+       0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x32, 0x2e, 0x73, 0x6b,
+       0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 
0x43, 0x6f, 0x6e, 0x74,
+       0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 
0x69, 0x6e, 0x67, 0x53,
+       0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x61, 
0x75, 0x73, 0x65, 0x48,
+       0x00, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 
0x75, 0x65, 0x12, 0x3e,
+       0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 
0x2a, 0x2e, 0x73, 0x6b,
+       0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 
0x43, 0x6f, 0x6e, 0x74,
+       0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 
0x69, 0x6e, 0x67, 0x55,
+       0x52, 0x49, 0x43, 0x61, 0x75, 0x73, 0x65, 0x48, 0x00, 0x52, 0x03, 0x75, 
0x72, 0x69, 0x42, 0x07,
+       0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x23, 0x43, 
0x6f, 0x6e, 0x74, 0x69,
+       0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 
0x6e, 0x67, 0x53, 0x69,
+       0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x61, 0x75, 
0x73, 0x65, 0x12, 0x1c,
+       0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 
0x01, 0x20, 0x01, 0x28,
+       0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 
0x12, 0x18, 0x0a, 0x07,
+       0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 
0x01, 0x52, 0x07, 0x63,
+       0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1b, 0x43, 
0x6f, 0x6e, 0x74, 0x69,
+       0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 
0x6e, 0x67, 0x55, 0x52,
+       0x49, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x65, 
0x67, 0x65, 0x78, 0x18,
+       0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 
0x65, 0x78, 0x12, 0x14,
+       0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 
0x48, 0x00, 0x52, 0x04,
+       0x70, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 
0x73, 0x68, 0x6f, 0x6c,
+       0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 
0x65, 0x73, 0x68, 0x6f,
+       0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 
0x74, 0x18, 0x04, 0x20,
+       0x01, 0x28, 0x01, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 
0x42, 0x05, 0x0a, 0x03,
+       0x75, 0x72, 0x69, 0x22, 0x1e, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
0x6e, 0x75, 0x6f, 0x75,
+       0x73, 0x4f, 0x6e, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 
0x69, 0x6e, 0x67, 0x54,
+       0x61, 0x73, 0x6b, 0x22, 0x1f, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
0x6e, 0x75, 0x6f, 0x75,
+       0x73, 0x4f, 0x66, 0x66, 0x43, 0x50, 0x55, 0x50, 0x72, 0x6f, 0x66, 0x69, 
0x6c, 0x69, 0x6e, 0x67,
+       0x54, 0x61, 0x73, 0x6b, 0x22, 0x4c, 0x0a, 0x1e, 0x43, 0x6f, 0x6e, 0x74, 
0x69, 0x6e, 0x75, 0x6f,
+       0x75, 0x73, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 
0x66, 0x69, 0x6c, 0x69,
+       0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x61, 
0x6d, 0x70, 0x6c, 0x69,
+       0x6e, 0x67, 0x55, 0x52, 0x49, 0x52, 0x65, 0x67, 0x65, 0x78, 0x18, 0x01, 
0x20, 0x01, 0x28, 0x09,
+       0x52, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x55, 0x52, 
0x49, 0x52, 0x65, 0x67,
+       0x65, 0x78, 0x2a, 0x82, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
0x6e, 0x75, 0x6f, 0x75,
+       0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x61, 
0x75, 0x73, 0x65, 0x54,
+       0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x63, 0x65, 
0x73, 0x73, 0x43, 0x50,
+       0x55, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x63, 0x65, 
0x73, 0x73, 0x54, 0x68,
+       0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 
0x0e, 0x0a, 0x0a, 0x53,
+       0x79, 0x73, 0x74, 0x65, 0x6d, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x02, 0x12, 
0x11, 0x0a, 0x0d, 0x48,
+       0x54, 0x54, 0x50, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 
0x10, 0x03, 0x12, 0x17,
+       0x0a, 0x13, 0x48, 0x54, 0x54, 0x50, 0x41, 0x76, 0x67, 0x52, 0x65, 0x73, 
0x70, 0x6f, 0x6e, 0x73,
+       0x65, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x04, 0x32, 0xd3, 0x01, 0x0a, 0x1a, 
0x43, 0x6f, 0x6e, 0x74,
+       0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 
0x69, 0x6e, 0x67, 0x53,
+       0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x0d, 0x71, 0x75, 
0x65, 0x72, 0x79, 0x50,
+       0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x73, 0x6b, 
0x79, 0x77, 0x61, 0x6c,
+       0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 
0x69, 0x6e, 0x75, 0x6f,
+       0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x50, 
0x6f, 0x6c, 0x69, 0x63,
+       0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 
0x77, 0x61, 0x6c, 0x6b,
+       0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 
0x6e, 0x64, 0x73, 0x22,
+       0x00, 0x12, 0x5a, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x50, 
0x72, 0x6f, 0x66, 0x69,
+       0x6c, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x73, 
0x6b, 0x79, 0x77, 0x61,
+       0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 
0x74, 0x69, 0x6e, 0x75,
+       0x6f, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 
0x52, 0x65, 0x70, 0x6f,
+       0x72, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 
0x69, 0x6e, 0x67, 0x2e,
+       0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 
0x00, 0x42, 0x73, 0x0a,
+       0x33, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 
0x73, 0x6b, 0x79, 0x77,
+       0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x70, 0x6d, 0x2e, 0x6e, 
0x65, 0x74, 0x77, 0x6f,
+       0x72, 0x6b, 0x2e, 0x65, 0x62, 0x70, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x66, 
0x69, 0x6c, 0x69, 0x6e,
+       0x67, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x3a, 0x73, 0x6b, 0x79, 0x77, 
0x61, 0x6c, 0x6b, 0x69,
+       0x6e, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 
0x67, 0x2f, 0x72, 0x65,
+       0x70, 0x6f, 0x2f, 0x67, 0x6f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6c, 
0x6c, 0x65, 0x63, 0x74,
+       0x2f, 0x65, 0x62, 0x70, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 
0x69, 0x6e, 0x67, 0x2f,
+       0x76, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+       file_ebpf_profiling_Continuous_proto_rawDescOnce sync.Once
+       file_ebpf_profiling_Continuous_proto_rawDescData = 
file_ebpf_profiling_Continuous_proto_rawDesc
+)
+
+func file_ebpf_profiling_Continuous_proto_rawDescGZIP() []byte {
+       file_ebpf_profiling_Continuous_proto_rawDescOnce.Do(func() {
+               file_ebpf_profiling_Continuous_proto_rawDescData = 
protoimpl.X.CompressGZIP(file_ebpf_profiling_Continuous_proto_rawDescData)
+       })
+       return file_ebpf_profiling_Continuous_proto_rawDescData
+}
+
+var file_ebpf_profiling_Continuous_proto_enumTypes = 
make([]protoimpl.EnumInfo, 1)
+var file_ebpf_profiling_Continuous_proto_msgTypes = 
make([]protoimpl.MessageInfo, 9)
+var file_ebpf_profiling_Continuous_proto_goTypes = []interface{}{
+       (ContinuousProfilingCauseType)(0),             // 0: 
skywalking.v3.ContinuousProfilingCauseType
+       (*ContinuousProfilingPolicyQuery)(nil),        // 1: 
skywalking.v3.ContinuousProfilingPolicyQuery
+       (*ContinuousProfilingServicePolicyQuery)(nil), // 2: 
skywalking.v3.ContinuousProfilingServicePolicyQuery
+       (*ContinuousProfilingReport)(nil),             // 3: 
skywalking.v3.ContinuousProfilingReport
+       (*ContinuousProfilingCause)(nil),              // 4: 
skywalking.v3.ContinuousProfilingCause
+       (*ContinuousProfilingSingleValueCause)(nil),   // 5: 
skywalking.v3.ContinuousProfilingSingleValueCause
+       (*ContinuousProfilingURICause)(nil),           // 6: 
skywalking.v3.ContinuousProfilingURICause
+       (*ContinuousOnCPUProfilingTask)(nil),          // 7: 
skywalking.v3.ContinuousOnCPUProfilingTask
+       (*ContinuousOffCPUProfilingTask)(nil),         // 8: 
skywalking.v3.ContinuousOffCPUProfilingTask
+       (*ContinuousNetworkProfilingTask)(nil),        // 9: 
skywalking.v3.ContinuousNetworkProfilingTask
+       (*v3.Commands)(nil),                           // 10: 
skywalking.v3.Commands
+}
+var file_ebpf_profiling_Continuous_proto_depIdxs = []int32{
+       2,  // 0: 
skywalking.v3.ContinuousProfilingPolicyQuery.policies:type_name -> 
skywalking.v3.ContinuousProfilingServicePolicyQuery
+       4,  // 1: skywalking.v3.ContinuousProfilingReport.causes:type_name -> 
skywalking.v3.ContinuousProfilingCause
+       7,  // 2: skywalking.v3.ContinuousProfilingReport.onCPU:type_name -> 
skywalking.v3.ContinuousOnCPUProfilingTask
+       8,  // 3: skywalking.v3.ContinuousProfilingReport.offCPU:type_name -> 
skywalking.v3.ContinuousOffCPUProfilingTask
+       9,  // 4: skywalking.v3.ContinuousProfilingReport.network:type_name -> 
skywalking.v3.ContinuousNetworkProfilingTask
+       0,  // 5: skywalking.v3.ContinuousProfilingCause.type:type_name -> 
skywalking.v3.ContinuousProfilingCauseType
+       5,  // 6: skywalking.v3.ContinuousProfilingCause.singleValue:type_name 
-> skywalking.v3.ContinuousProfilingSingleValueCause
+       6,  // 7: skywalking.v3.ContinuousProfilingCause.uri:type_name -> 
skywalking.v3.ContinuousProfilingURICause
+       1,  // 8: 
skywalking.v3.ContinuousProfilingService.queryPolicies:input_type -> 
skywalking.v3.ContinuousProfilingPolicyQuery
+       3,  // 9: 
skywalking.v3.ContinuousProfilingService.reportProfilingTask:input_type -> 
skywalking.v3.ContinuousProfilingReport
+       10, // 10: 
skywalking.v3.ContinuousProfilingService.queryPolicies:output_type -> 
skywalking.v3.Commands
+       10, // 11: 
skywalking.v3.ContinuousProfilingService.reportProfilingTask:output_type -> 
skywalking.v3.Commands
+       10, // [10:12] is the sub-list for method output_type
+       8,  // [8:10] is the sub-list for method input_type
+       8,  // [8:8] is the sub-list for extension type_name
+       8,  // [8:8] is the sub-list for extension extendee
+       0,  // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_ebpf_profiling_Continuous_proto_init() }
+func file_ebpf_profiling_Continuous_proto_init() {
+       if File_ebpf_profiling_Continuous_proto != nil {
+               return
+       }
+       if !protoimpl.UnsafeEnabled {
+               file_ebpf_profiling_Continuous_proto_msgTypes[0].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingPolicyQuery); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[1].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingServicePolicyQuery); 
i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[2].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingReport); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[3].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingCause); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[4].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingSingleValueCause); i 
{
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[5].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousProfilingURICause); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[6].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousOnCPUProfilingTask); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[7].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousOffCPUProfilingTask); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+               file_ebpf_profiling_Continuous_proto_msgTypes[8].Exporter = 
func(v interface{}, i int) interface{} {
+                       switch v := v.(*ContinuousNetworkProfilingTask); i {
+                       case 0:
+                               return &v.state
+                       case 1:
+                               return &v.sizeCache
+                       case 2:
+                               return &v.unknownFields
+                       default:
+                               return nil
+                       }
+               }
+       }
+       file_ebpf_profiling_Continuous_proto_msgTypes[2].OneofWrappers = 
[]interface{}{
+               (*ContinuousProfilingReport_OnCPU)(nil),
+               (*ContinuousProfilingReport_OffCPU)(nil),
+               (*ContinuousProfilingReport_Network)(nil),
+       }
+       file_ebpf_profiling_Continuous_proto_msgTypes[3].OneofWrappers = 
[]interface{}{
+               (*ContinuousProfilingCause_SingleValue)(nil),
+               (*ContinuousProfilingCause_Uri)(nil),
+       }
+       file_ebpf_profiling_Continuous_proto_msgTypes[5].OneofWrappers = 
[]interface{}{
+               (*ContinuousProfilingURICause_Regex)(nil),
+               (*ContinuousProfilingURICause_Path)(nil),
+       }
+       type x struct{}
+       out := protoimpl.TypeBuilder{
+               File: protoimpl.DescBuilder{
+                       GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+                       RawDescriptor: 
file_ebpf_profiling_Continuous_proto_rawDesc,
+                       NumEnums:      1,
+                       NumMessages:   9,
+                       NumExtensions: 0,
+                       NumServices:   1,
+               },
+               GoTypes:           file_ebpf_profiling_Continuous_proto_goTypes,
+               DependencyIndexes: file_ebpf_profiling_Continuous_proto_depIdxs,
+               EnumInfos:         
file_ebpf_profiling_Continuous_proto_enumTypes,
+               MessageInfos:      
file_ebpf_profiling_Continuous_proto_msgTypes,
+       }.Build()
+       File_ebpf_profiling_Continuous_proto = out.File
+       file_ebpf_profiling_Continuous_proto_rawDesc = nil
+       file_ebpf_profiling_Continuous_proto_goTypes = nil
+       file_ebpf_profiling_Continuous_proto_depIdxs = nil
+}
diff --git a/collect/ebpf/profiling/v3/Continuous_grpc.pb.go 
b/collect/ebpf/profiling/v3/Continuous_grpc.pb.go
new file mode 100644
index 0000000..09ababf
--- /dev/null
+++ b/collect/ebpf/profiling/v3/Continuous_grpc.pb.go
@@ -0,0 +1,145 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+
+package v3
+
+import (
+       context "context"
+       grpc "google.golang.org/grpc"
+       codes "google.golang.org/grpc/codes"
+       status "google.golang.org/grpc/status"
+       v3 "skywalking.apache.org/repo/goapi/collect/common/v3"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+// ContinuousProfilingServiceClient is the client API for 
ContinuousProfilingService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please 
refer to 
https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type ContinuousProfilingServiceClient interface {
+       // Query continuous profiling policy
+       QueryPolicies(ctx context.Context, in *ContinuousProfilingPolicyQuery, 
opts ...grpc.CallOption) (*v3.Commands, error)
+       // Report the profiling task when the policy threshold is reached
+       // Use the returned task ID to perform the profiling task through 
EBPFProfilingService#collectProfilingData.
+       ReportProfilingTask(ctx context.Context, in *ContinuousProfilingReport, 
opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type continuousProfilingServiceClient struct {
+       cc grpc.ClientConnInterface
+}
+
+func NewContinuousProfilingServiceClient(cc grpc.ClientConnInterface) 
ContinuousProfilingServiceClient {
+       return &continuousProfilingServiceClient{cc}
+}
+
+func (c *continuousProfilingServiceClient) QueryPolicies(ctx context.Context, 
in *ContinuousProfilingPolicyQuery, opts ...grpc.CallOption) (*v3.Commands, 
error) {
+       out := new(v3.Commands)
+       err := c.cc.Invoke(ctx, 
"/skywalking.v3.ContinuousProfilingService/queryPolicies", in, out, opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+func (c *continuousProfilingServiceClient) ReportProfilingTask(ctx 
context.Context, in *ContinuousProfilingReport, opts ...grpc.CallOption) 
(*v3.Commands, error) {
+       out := new(v3.Commands)
+       err := c.cc.Invoke(ctx, 
"/skywalking.v3.ContinuousProfilingService/reportProfilingTask", in, out, 
opts...)
+       if err != nil {
+               return nil, err
+       }
+       return out, nil
+}
+
+// ContinuousProfilingServiceServer is the server API for 
ContinuousProfilingService service.
+// All implementations must embed UnimplementedContinuousProfilingServiceServer
+// for forward compatibility
+type ContinuousProfilingServiceServer interface {
+       // Query continuous profiling policy
+       QueryPolicies(context.Context, *ContinuousProfilingPolicyQuery) 
(*v3.Commands, error)
+       // Report the profiling task when the policy threshold is reached
+       // Use the returned task ID to perform the profiling task through 
EBPFProfilingService#collectProfilingData.
+       ReportProfilingTask(context.Context, *ContinuousProfilingReport) 
(*v3.Commands, error)
+       mustEmbedUnimplementedContinuousProfilingServiceServer()
+}
+
+// UnimplementedContinuousProfilingServiceServer must be embedded to have 
forward compatible implementations.
+type UnimplementedContinuousProfilingServiceServer struct {
+}
+
+func (UnimplementedContinuousProfilingServiceServer) 
QueryPolicies(context.Context, *ContinuousProfilingPolicyQuery) (*v3.Commands, 
error) {
+       return nil, status.Errorf(codes.Unimplemented, "method QueryPolicies 
not implemented")
+}
+func (UnimplementedContinuousProfilingServiceServer) 
ReportProfilingTask(context.Context, *ContinuousProfilingReport) (*v3.Commands, 
error) {
+       return nil, status.Errorf(codes.Unimplemented, "method 
ReportProfilingTask not implemented")
+}
+func (UnimplementedContinuousProfilingServiceServer) 
mustEmbedUnimplementedContinuousProfilingServiceServer() {
+}
+
+// UnsafeContinuousProfilingServiceServer may be embedded to opt out of 
forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to 
ContinuousProfilingServiceServer will
+// result in compilation errors.
+type UnsafeContinuousProfilingServiceServer interface {
+       mustEmbedUnimplementedContinuousProfilingServiceServer()
+}
+
+func RegisterContinuousProfilingServiceServer(s grpc.ServiceRegistrar, srv 
ContinuousProfilingServiceServer) {
+       s.RegisterService(&ContinuousProfilingService_ServiceDesc, srv)
+}
+
+func _ContinuousProfilingService_QueryPolicies_Handler(srv interface{}, ctx 
context.Context, dec func(interface{}) error, interceptor 
grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(ContinuousProfilingPolicyQuery)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return 
srv.(ContinuousProfilingServiceServer).QueryPolicies(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: 
"/skywalking.v3.ContinuousProfilingService/queryPolicies",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
+               return 
srv.(ContinuousProfilingServiceServer).QueryPolicies(ctx, 
req.(*ContinuousProfilingPolicyQuery))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+func _ContinuousProfilingService_ReportProfilingTask_Handler(srv interface{}, 
ctx context.Context, dec func(interface{}) error, interceptor 
grpc.UnaryServerInterceptor) (interface{}, error) {
+       in := new(ContinuousProfilingReport)
+       if err := dec(in); err != nil {
+               return nil, err
+       }
+       if interceptor == nil {
+               return 
srv.(ContinuousProfilingServiceServer).ReportProfilingTask(ctx, in)
+       }
+       info := &grpc.UnaryServerInfo{
+               Server:     srv,
+               FullMethod: 
"/skywalking.v3.ContinuousProfilingService/reportProfilingTask",
+       }
+       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
+               return 
srv.(ContinuousProfilingServiceServer).ReportProfilingTask(ctx, 
req.(*ContinuousProfilingReport))
+       }
+       return interceptor(ctx, in, info, handler)
+}
+
+// ContinuousProfilingService_ServiceDesc is the grpc.ServiceDesc for 
ContinuousProfilingService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ContinuousProfilingService_ServiceDesc = grpc.ServiceDesc{
+       ServiceName: "skywalking.v3.ContinuousProfilingService",
+       HandlerType: (*ContinuousProfilingServiceServer)(nil),
+       Methods: []grpc.MethodDesc{
+               {
+                       MethodName: "queryPolicies",
+                       Handler:    
_ContinuousProfilingService_QueryPolicies_Handler,
+               },
+               {
+                       MethodName: "reportProfilingTask",
+                       Handler:    
_ContinuousProfilingService_ReportProfilingTask_Handler,
+               },
+       },
+       Streams:  []grpc.StreamDesc{},
+       Metadata: "ebpf/profiling/Continuous.proto",
+}
diff --git a/collect/language/agent/v3/Tracing.pb.go 
b/collect/language/agent/v3/Tracing.pb.go
index 87cac66..1807479 100644
--- a/collect/language/agent/v3/Tracing.pb.go
+++ b/collect/language/agent/v3/Tracing.pb.go
@@ -258,9 +258,10 @@ func (SpanAttachedEvent_SpanReferenceType) 
EnumDescriptor() ([]byte, []int) {
 
 // The segment is a collection of spans. It includes all collected spans in a 
simple one request context, such as a HTTP request process.
 //
-// We recommend the agent/SDK report all tracked data of one request once for 
all, such as,
-// typically, such as in Java, one segment represent all tracked 
operations(spans) of one request context in the same thread.
-// At the same time, in some language there is not a clear concept like 
golang, it could represent all tracked operations of one request context.
+// We recommend the agent/SDK report all tracked data of one request once for 
all.
+// Typically, such as in Java, one segment represent all tracked 
operations(spans) of one request context in the same thread.
+// At the same time, in some language there is not a clear `thread` concept 
like golang.
+// Then, it could represent all tracked operations of one request context 
cross threads/goroutines.
 type SegmentObject struct {
        state         protoimpl.MessageState
        sizeCache     protoimpl.SizeCache
diff --git a/dependencies.sh b/dependencies.sh
index f3e9734..9f8976d 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -17,7 +17,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-export COLLECT_PROTOCOL_SHA=b561375576d97a061e4bc3bf30f0f1ae66e2a436
+export COLLECT_PROTOCOL_SHA=9b2f4a5fb5694381924674d6c15cbead6a388d97
 export QUERY_PROTOCOL_SHA=34937ef582edd38319f57ff2bda09688b1af708e
 export ENVOY_SERVICE_PROTOCOL_SHA=533b32f1b390a3a88ec2008d0561e07c926d879a
 export XDS_SERVICE_PROTOCOL_SHA=25de7278fc844d392d607214f36dbedf50f167ee
diff --git a/go.mod b/go.mod
index 69a4fdb..90c63b0 100644
--- a/go.mod
+++ b/go.mod
@@ -4,8 +4,8 @@ go 1.16
 
 require (
        github.com/google/go-cmp v0.5.6 // indirect
-       golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
        golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect
+       golang.org/x/text v0.3.8 // indirect
        google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84 // 
indirect
        google.golang.org/grpc v1.40.0
        google.golang.org/protobuf v1.28.1
diff --git a/go.sum b/go.sum
index 88946a5..de4de3d 100644
--- a/go.sum
+++ b/go.sum
@@ -51,10 +51,12 @@ github.com/spaolacci/murmur3 
v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/yuin/goldmark v1.3.5/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod 
h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod 
h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -62,6 +64,7 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod 
h1:6SW0HCj/g11FgYtHl
 golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod 
h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod 
h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -70,6 +73,7 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod 
h1:t9HGtf8HONx5eT2rtn
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod 
h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod 
h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b 
h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
@@ -80,6 +84,7 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -89,6 +94,7 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod 
h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab 
h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU=
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -96,8 +102,9 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuX
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod 
h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -106,6 +113,7 @@ golang.org/x/tools 
v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod 
h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 golang.org/x/tools v0.1.3/go.mod 
h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

Reply via email to