You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2021/03/31 08:36:41 UTC
[skywalking-goapi] branch main updated: Add scripts to update and
commit the first version (#1)
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 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 7b9b842 Add scripts to update and commit the first version (#1)
7b9b842 is described below
commit 7b9b8428853887cc6393de97500f443194476ea6
Author: Zhenxu Ke <ke...@apache.org>
AuthorDate: Wed Mar 31 16:36:28 2021 +0800
Add scripts to update and commit the first version (#1)
---
.gitignore => .github/workflows/build.yaml | 27 +-
.gitignore | 1 +
README.md | 5 +
.../v3/ConfigurationDiscoveryService.pb.go | 198 ++++
.../v3/ConfigurationDiscoveryService_grpc.pb.go | 119 +++
common/v3/Common.pb.go | 436 ++++++++
dependencies.sh | 21 +
event/v3/Event.pb.go | 406 ++++++++
event/v3/Event_grpc.pb.go | 142 +++
go.mod | 8 +
go.sum | 88 ++
language/agent/v3/BrowserPerf.pb.go | 627 ++++++++++++
language/agent/v3/BrowserPerf_grpc.pb.go | 177 ++++
language/agent/v3/CLRMetric.pb.go | 495 +++++++++
language/agent/v3/CLRMetric_grpc.pb.go | 103 ++
language/agent/v3/JVMMetric.pb.go | 810 +++++++++++++++
language/agent/v3/JVMMetric_grpc.pb.go | 103 ++
language/agent/v3/Meter.pb.go | 652 ++++++++++++
language/agent/v3/Meter_grpc.pb.go | 138 +++
language/agent/v3/Tracing.pb.go | 1062 ++++++++++++++++++++
language/agent/v3/Tracing_grpc.pb.go | 188 ++++
language/profile/v3/Profile.pb.go | 479 +++++++++
language/profile/v3/Profile_grpc.pb.go | 215 ++++
logging/v3/Logging.pb.go | 748 ++++++++++++++
logging/v3/Logging_grpc.pb.go | 142 +++
management/v3/Management.pb.go | 284 ++++++
management/v3/Management_grpc.pb.go | 146 +++
scripts/protoc.sh | 54 +
scripts/update.sh | 58 ++
servicemesh/v3/service-mesh-compat.pb.go | 103 ++
servicemesh/v3/service-mesh-compat_grpc.pb.go | 136 +++
servicemesh/v3/service-mesh.pb.go | 430 ++++++++
servicemesh/v3/service-mesh_grpc.pb.go | 136 +++
33 files changed, 8732 insertions(+), 5 deletions(-)
diff --git a/.gitignore b/.github/workflows/build.yaml
similarity index 71%
copy from .gitignore
copy to .github/workflows/build.yaml
index 773aa1e..043daeb 100644
--- a/.gitignore
+++ b/.github/workflows/build.yaml
@@ -14,8 +14,25 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-#
-.idea/
-bin/
-.DS_Store
-coverage.txt
+#
+
+name: Build
+
+on:
+ pull_request:
+
+jobs:
+ build:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ - uses: actions/setup-go@v2
+ with:
+ go-version: 1.16
+
+ - name: Build
+ run: bash scripts/update.sh
diff --git a/.gitignore b/.gitignore
index 773aa1e..e4af0ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@
bin/
.DS_Store
coverage.txt
+temp
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d58c323
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# SkyWalking Go APIs
+
+This repository contains the Go files generated from
+the [data collect protocol](http://github.com/apache/skywalking-data-collect-protocol) and
+the [query protocol](http://github.com/apache/skywalking-query-protocol) for convenient use.
diff --git a/agent/configuration/v3/ConfigurationDiscoveryService.pb.go b/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
new file mode 100644
index 0000000..089c26d
--- /dev/null
+++ b/agent/configuration/v3/ConfigurationDiscoveryService.pb.go
@@ -0,0 +1,198 @@
+//
+// 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: language-agent/ConfigurationDiscoveryService.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 ConfigurationSyncRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Current agent service name.
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ // [Optional]
+ // UUID is the unique id to represent the signature of the latest configuration.
+ // The agent usually uses its bootstrap configuration running in default, and this id could be empty when doing the 1st round sync.
+ // The agent could/is recommended to cache the UUID from the last command, and put it as the next round UUID parameter,
+ // then the OAP only returns the empty Commands if no configuration change happenned.
+ Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
+}
+
+func (x *ConfigurationSyncRequest) Reset() {
+ *x = ConfigurationSyncRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_ConfigurationDiscoveryService_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ConfigurationSyncRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigurationSyncRequest) ProtoMessage() {}
+
+func (x *ConfigurationSyncRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_ConfigurationDiscoveryService_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 ConfigurationSyncRequest.ProtoReflect.Descriptor instead.
+func (*ConfigurationSyncRequest) Descriptor() ([]byte, []int) {
+ return file_language_agent_ConfigurationDiscoveryService_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ConfigurationSyncRequest) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *ConfigurationSyncRequest) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+var File_language_agent_ConfigurationDiscoveryService_proto protoreflect.FileDescriptor
+
+var file_language_agent_ConfigurationDiscoveryService_proto_rawDesc = []byte{
+ 0x0a, 0x32, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69,
+ 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x48, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12,
+ 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75,
+ 0x69, 0x64, 0x32, 0x7a, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x6b, 0x79,
+ 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 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, 0x82,
+ 0x01, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67,
+ 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x29, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x67, 0x65,
+ 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+ 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_language_agent_ConfigurationDiscoveryService_proto_rawDescOnce sync.Once
+ file_language_agent_ConfigurationDiscoveryService_proto_rawDescData = file_language_agent_ConfigurationDiscoveryService_proto_rawDesc
+)
+
+func file_language_agent_ConfigurationDiscoveryService_proto_rawDescGZIP() []byte {
+ file_language_agent_ConfigurationDiscoveryService_proto_rawDescOnce.Do(func() {
+ file_language_agent_ConfigurationDiscoveryService_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_ConfigurationDiscoveryService_proto_rawDescData)
+ })
+ return file_language_agent_ConfigurationDiscoveryService_proto_rawDescData
+}
+
+var file_language_agent_ConfigurationDiscoveryService_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_language_agent_ConfigurationDiscoveryService_proto_goTypes = []interface{}{
+ (*ConfigurationSyncRequest)(nil), // 0: skywalking.v3.ConfigurationSyncRequest
+ (*v3.Commands)(nil), // 1: skywalking.v3.Commands
+}
+var file_language_agent_ConfigurationDiscoveryService_proto_depIdxs = []int32{
+ 0, // 0: skywalking.v3.ConfigurationDiscoveryService.fetchConfigurations:input_type -> skywalking.v3.ConfigurationSyncRequest
+ 1, // 1: skywalking.v3.ConfigurationDiscoveryService.fetchConfigurations:output_type -> skywalking.v3.Commands
+ 1, // [1:2] is the sub-list for method output_type
+ 0, // [0:1] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_language_agent_ConfigurationDiscoveryService_proto_init() }
+func file_language_agent_ConfigurationDiscoveryService_proto_init() {
+ if File_language_agent_ConfigurationDiscoveryService_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_language_agent_ConfigurationDiscoveryService_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ConfigurationSyncRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_language_agent_ConfigurationDiscoveryService_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_language_agent_ConfigurationDiscoveryService_proto_goTypes,
+ DependencyIndexes: file_language_agent_ConfigurationDiscoveryService_proto_depIdxs,
+ MessageInfos: file_language_agent_ConfigurationDiscoveryService_proto_msgTypes,
+ }.Build()
+ File_language_agent_ConfigurationDiscoveryService_proto = out.File
+ file_language_agent_ConfigurationDiscoveryService_proto_rawDesc = nil
+ file_language_agent_ConfigurationDiscoveryService_proto_goTypes = nil
+ file_language_agent_ConfigurationDiscoveryService_proto_depIdxs = nil
+}
diff --git a/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go b/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
new file mode 100644
index 0000000..cd898be
--- /dev/null
+++ b/agent/configuration/v3/ConfigurationDiscoveryService_grpc.pb.go
@@ -0,0 +1,119 @@
+// 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/network/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
+
+// ConfigurationDiscoveryServiceClient is the client API for ConfigurationDiscoveryService 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 ConfigurationDiscoveryServiceClient interface {
+ // fetchConfigurations service requests the latest configuration.
+ // Expect command of Commands is:
+ // command: CDS # meaning ConfigurationDiscoveryService's response
+ // args: Include string key and string value pair.
+ // The key depends on the agent implementation.
+ // The value is the latest value in String value. The watcher of key owner takes the responsibility to convert it to the correct type or format.
+ // One reserved key is `UUID`. The value would help reducing the traffic load between agent and OAP if there is no change.
+ // Commands could be empty if no change detected based on ConfigurationSyncRequest.
+ FetchConfigurations(ctx context.Context, in *ConfigurationSyncRequest, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type configurationDiscoveryServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewConfigurationDiscoveryServiceClient(cc grpc.ClientConnInterface) ConfigurationDiscoveryServiceClient {
+ return &configurationDiscoveryServiceClient{cc}
+}
+
+func (c *configurationDiscoveryServiceClient) FetchConfigurations(ctx context.Context, in *ConfigurationSyncRequest, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.ConfigurationDiscoveryService/fetchConfigurations", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ConfigurationDiscoveryServiceServer is the server API for ConfigurationDiscoveryService service.
+// All implementations must embed UnimplementedConfigurationDiscoveryServiceServer
+// for forward compatibility
+type ConfigurationDiscoveryServiceServer interface {
+ // fetchConfigurations service requests the latest configuration.
+ // Expect command of Commands is:
+ // command: CDS # meaning ConfigurationDiscoveryService's response
+ // args: Include string key and string value pair.
+ // The key depends on the agent implementation.
+ // The value is the latest value in String value. The watcher of key owner takes the responsibility to convert it to the correct type or format.
+ // One reserved key is `UUID`. The value would help reducing the traffic load between agent and OAP if there is no change.
+ // Commands could be empty if no change detected based on ConfigurationSyncRequest.
+ FetchConfigurations(context.Context, *ConfigurationSyncRequest) (*v3.Commands, error)
+ mustEmbedUnimplementedConfigurationDiscoveryServiceServer()
+}
+
+// UnimplementedConfigurationDiscoveryServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedConfigurationDiscoveryServiceServer struct {
+}
+
+func (UnimplementedConfigurationDiscoveryServiceServer) FetchConfigurations(context.Context, *ConfigurationSyncRequest) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method FetchConfigurations not implemented")
+}
+func (UnimplementedConfigurationDiscoveryServiceServer) mustEmbedUnimplementedConfigurationDiscoveryServiceServer() {
+}
+
+// UnsafeConfigurationDiscoveryServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ConfigurationDiscoveryServiceServer will
+// result in compilation errors.
+type UnsafeConfigurationDiscoveryServiceServer interface {
+ mustEmbedUnimplementedConfigurationDiscoveryServiceServer()
+}
+
+func RegisterConfigurationDiscoveryServiceServer(s grpc.ServiceRegistrar, srv ConfigurationDiscoveryServiceServer) {
+ s.RegisterService(&ConfigurationDiscoveryService_ServiceDesc, srv)
+}
+
+func _ConfigurationDiscoveryService_FetchConfigurations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ConfigurationSyncRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ConfigurationDiscoveryServiceServer).FetchConfigurations(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.ConfigurationDiscoveryService/fetchConfigurations",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ConfigurationDiscoveryServiceServer).FetchConfigurations(ctx, req.(*ConfigurationSyncRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// ConfigurationDiscoveryService_ServiceDesc is the grpc.ServiceDesc for ConfigurationDiscoveryService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ConfigurationDiscoveryService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.ConfigurationDiscoveryService",
+ HandlerType: (*ConfigurationDiscoveryServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "fetchConfigurations",
+ Handler: _ConfigurationDiscoveryService_FetchConfigurations_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "language-agent/ConfigurationDiscoveryService.proto",
+}
diff --git a/common/v3/Common.pb.go b/common/v3/Common.pb.go
new file mode 100644
index 0000000..2f79ebc
--- /dev/null
+++ b/common/v3/Common.pb.go
@@ -0,0 +1,436 @@
+//
+// 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: common/Common.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ 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)
+)
+
+// In most cases, detect point should be `server` or `client`.
+// Even in service mesh, this means `server`/`client` side sidecar
+// `proxy` is reserved only.
+type DetectPoint int32
+
+const (
+ DetectPoint_client DetectPoint = 0
+ DetectPoint_server DetectPoint = 1
+ DetectPoint_proxy DetectPoint = 2
+)
+
+// Enum value maps for DetectPoint.
+var (
+ DetectPoint_name = map[int32]string{
+ 0: "client",
+ 1: "server",
+ 2: "proxy",
+ }
+ DetectPoint_value = map[string]int32{
+ "client": 0,
+ "server": 1,
+ "proxy": 2,
+ }
+)
+
+func (x DetectPoint) Enum() *DetectPoint {
+ p := new(DetectPoint)
+ *p = x
+ return p
+}
+
+func (x DetectPoint) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (DetectPoint) Descriptor() protoreflect.EnumDescriptor {
+ return file_common_Common_proto_enumTypes[0].Descriptor()
+}
+
+func (DetectPoint) Type() protoreflect.EnumType {
+ return &file_common_Common_proto_enumTypes[0]
+}
+
+func (x DetectPoint) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use DetectPoint.Descriptor instead.
+func (DetectPoint) EnumDescriptor() ([]byte, []int) {
+ return file_common_Common_proto_rawDescGZIP(), []int{0}
+}
+
+type KeyStringValuePair struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *KeyStringValuePair) Reset() {
+ *x = KeyStringValuePair{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_Common_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *KeyStringValuePair) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KeyStringValuePair) ProtoMessage() {}
+
+func (x *KeyStringValuePair) ProtoReflect() protoreflect.Message {
+ mi := &file_common_Common_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 KeyStringValuePair.ProtoReflect.Descriptor instead.
+func (*KeyStringValuePair) Descriptor() ([]byte, []int) {
+ return file_common_Common_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *KeyStringValuePair) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+
+func (x *KeyStringValuePair) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+
+type CPU struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ UsagePercent float64 `protobuf:"fixed64,2,opt,name=usagePercent,proto3" json:"usagePercent,omitempty"`
+}
+
+func (x *CPU) Reset() {
+ *x = CPU{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_Common_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CPU) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CPU) ProtoMessage() {}
+
+func (x *CPU) ProtoReflect() protoreflect.Message {
+ mi := &file_common_Common_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 CPU.ProtoReflect.Descriptor instead.
+func (*CPU) Descriptor() ([]byte, []int) {
+ return file_common_Common_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *CPU) GetUsagePercent() float64 {
+ if x != nil {
+ return x.UsagePercent
+ }
+ return 0
+}
+
+type Commands struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Commands []*Command `protobuf:"bytes,1,rep,name=commands,proto3" json:"commands,omitempty"`
+}
+
+func (x *Commands) Reset() {
+ *x = Commands{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_Common_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Commands) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Commands) ProtoMessage() {}
+
+func (x *Commands) ProtoReflect() protoreflect.Message {
+ mi := &file_common_Common_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 Commands.ProtoReflect.Descriptor instead.
+func (*Commands) Descriptor() ([]byte, []int) {
+ return file_common_Common_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Commands) GetCommands() []*Command {
+ if x != nil {
+ return x.Commands
+ }
+ return nil
+}
+
+type Command struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"`
+ Args []*KeyStringValuePair `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
+}
+
+func (x *Command) Reset() {
+ *x = Command{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_common_Common_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Command) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Command) ProtoMessage() {}
+
+func (x *Command) ProtoReflect() protoreflect.Message {
+ mi := &file_common_Common_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 Command.ProtoReflect.Descriptor instead.
+func (*Command) Descriptor() ([]byte, []int) {
+ return file_common_Common_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *Command) GetCommand() string {
+ if x != nil {
+ return x.Command
+ }
+ return ""
+}
+
+func (x *Command) GetArgs() []*KeyStringValuePair {
+ if x != nil {
+ return x.Args
+ }
+ return nil
+}
+
+var File_common_Common_proto protoreflect.FileDescriptor
+
+var file_common_Common_proto_rawDesc = []byte{
+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x33, 0x22, 0x3c, 0x0a, 0x12, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x22, 0x29, 0x0a, 0x03, 0x43, 0x50, 0x55, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x73, 0x61,
+ 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
+ 0x0c, 0x75, 0x73, 0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x0a,
+ 0x08, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x5a, 0x0a,
+ 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
+ 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
+ 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50,
+ 0x61, 0x69, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x2a, 0x30, 0x0a, 0x0b, 0x44, 0x65, 0x74,
+ 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65,
+ 0x6e, 0x74, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x01,
+ 0x12, 0x09, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x10, 0x02, 0x42, 0x6d, 0x0a, 0x2b, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x1c, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79,
+ 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_common_Common_proto_rawDescOnce sync.Once
+ file_common_Common_proto_rawDescData = file_common_Common_proto_rawDesc
+)
+
+func file_common_Common_proto_rawDescGZIP() []byte {
+ file_common_Common_proto_rawDescOnce.Do(func() {
+ file_common_Common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_Common_proto_rawDescData)
+ })
+ return file_common_Common_proto_rawDescData
+}
+
+var file_common_Common_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_common_Common_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_common_Common_proto_goTypes = []interface{}{
+ (DetectPoint)(0), // 0: skywalking.v3.DetectPoint
+ (*KeyStringValuePair)(nil), // 1: skywalking.v3.KeyStringValuePair
+ (*CPU)(nil), // 2: skywalking.v3.CPU
+ (*Commands)(nil), // 3: skywalking.v3.Commands
+ (*Command)(nil), // 4: skywalking.v3.Command
+}
+var file_common_Common_proto_depIdxs = []int32{
+ 4, // 0: skywalking.v3.Commands.commands:type_name -> skywalking.v3.Command
+ 1, // 1: skywalking.v3.Command.args:type_name -> skywalking.v3.KeyStringValuePair
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_common_Common_proto_init() }
+func file_common_Common_proto_init() {
+ if File_common_Common_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_common_Common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*KeyStringValuePair); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_Common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CPU); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_Common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Commands); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_common_Common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Command); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_common_Common_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_common_Common_proto_goTypes,
+ DependencyIndexes: file_common_Common_proto_depIdxs,
+ EnumInfos: file_common_Common_proto_enumTypes,
+ MessageInfos: file_common_Common_proto_msgTypes,
+ }.Build()
+ File_common_Common_proto = out.File
+ file_common_Common_proto_rawDesc = nil
+ file_common_Common_proto_goTypes = nil
+ file_common_Common_proto_depIdxs = nil
+}
diff --git a/dependencies.sh b/dependencies.sh
new file mode 100644
index 0000000..2565610
--- /dev/null
+++ b/dependencies.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# 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.
+
+export COLLECT_PROTOCOL_SHA=c01af3b883217939e374d2245eac92036fb7394a
+export QUERY_PROTOCOL_SHA=42d6783d8c1a0d0d4c2b28e58dc1f47dd554964e
diff --git a/event/v3/Event.pb.go b/event/v3/Event.pb.go
new file mode 100644
index 0000000..8a98cbd
--- /dev/null
+++ b/event/v3/Event.pb.go
@@ -0,0 +1,406 @@
+//
+// 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: event/Event.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 Type int32
+
+const (
+ Type_Normal Type = 0
+ Type_Error Type = 1
+)
+
+// Enum value maps for Type.
+var (
+ Type_name = map[int32]string{
+ 0: "Normal",
+ 1: "Error",
+ }
+ Type_value = map[string]int32{
+ "Normal": 0,
+ "Error": 1,
+ }
+)
+
+func (x Type) Enum() *Type {
+ p := new(Type)
+ *p = x
+ return p
+}
+
+func (x Type) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Type) Descriptor() protoreflect.EnumDescriptor {
+ return file_event_Event_proto_enumTypes[0].Descriptor()
+}
+
+func (Type) Type() protoreflect.EnumType {
+ return &file_event_Event_proto_enumTypes[0]
+}
+
+func (x Type) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Type.Descriptor instead.
+func (Type) EnumDescriptor() ([]byte, []int) {
+ return file_event_Event_proto_rawDescGZIP(), []int{0}
+}
+
+type Event struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Unique ID of the event. Because an event may span a long period of time, the UUID is necessary to associate the
+ // start time with the end time of the same event.
+ Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ // The source object that the event occurs on.
+ Source *Source `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
+ // The name of the event. For example, `Reboot`, `Upgrade` etc.
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+ // The type of the event. This field is friendly for UI visualization, where events of type `Normal` are considered as normal operations,
+ // while `Error` is considered as unexpected operations, such as `Crash` events, therefore we can mark them with different colors to be easier identified.
+ Type Type `protobuf:"varint,4,opt,name=type,proto3,enum=skywalking.v3.Type" json:"type,omitempty"`
+ // The detail of the event that describes why this event happened. This should be a one-line message that briefly describes why the event is reported.
+ // Examples of an `Upgrade` event may be something like `Upgrade from ${from_version} to ${to_version}`.
+ // It's NOT encouraged to include the detailed logs of this event, such as the exception stack trace.
+ Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
+ // The parameters in the `message` field.
+ Parameters map[string]string `protobuf:"bytes,6,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // The start time (in milliseconds) of the event, measured between the current time and midnight, January 1, 1970 UTC.
+ // This field is mandatory when an event occurs.
+ StartTime int64 `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"`
+ // The end time (in milliseconds) of the event. , measured between the current time and midnight, January 1, 1970 UTC.
+ // This field may be empty if the event has not stopped yet, otherwise it should be a valid timestamp after `startTime`.
+ EndTime int64 `protobuf:"varint,8,opt,name=endTime,proto3" json:"endTime,omitempty"`
+}
+
+func (x *Event) Reset() {
+ *x = Event{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_event_Event_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Event) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Event) ProtoMessage() {}
+
+func (x *Event) ProtoReflect() protoreflect.Message {
+ mi := &file_event_Event_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 Event.ProtoReflect.Descriptor instead.
+func (*Event) Descriptor() ([]byte, []int) {
+ return file_event_Event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Event) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *Event) GetSource() *Source {
+ if x != nil {
+ return x.Source
+ }
+ return nil
+}
+
+func (x *Event) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Event) GetType() Type {
+ if x != nil {
+ return x.Type
+ }
+ return Type_Normal
+}
+
+func (x *Event) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *Event) GetParameters() map[string]string {
+ if x != nil {
+ return x.Parameters
+ }
+ return nil
+}
+
+func (x *Event) GetStartTime() int64 {
+ if x != nil {
+ return x.StartTime
+ }
+ return 0
+}
+
+func (x *Event) GetEndTime() int64 {
+ if x != nil {
+ return x.EndTime
+ }
+ return 0
+}
+
+// If the event occurs on a service ONLY, the `service` field is mandatory, the serviceInstance field and endpoint field are optional;
+// If the event occurs on a service instance, the `service` and `serviceInstance` are mandatory and endpoint is optional;
+// If the event occurs on an endpoint, `service` and `endpoint` are mandatory, `serviceInstance` is optional;
+type Source struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ Endpoint string `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+}
+
+func (x *Source) Reset() {
+ *x = Source{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_event_Event_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Source) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Source) ProtoMessage() {}
+
+func (x *Source) ProtoReflect() protoreflect.Message {
+ mi := &file_event_Event_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 Source.ProtoReflect.Descriptor instead.
+func (*Source) Descriptor() ([]byte, []int) {
+ return file_event_Event_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Source) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *Source) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *Source) GetEndpoint() string {
+ if x != nil {
+ return x.Endpoint
+ }
+ return ""
+}
+
+var File_event_Event_proto protoreflect.FileDescriptor
+
+var file_event_Event_proto_rawDesc = []byte{
+ 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
+ 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x02, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x24, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
+ 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72,
+ 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
+ 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69,
+ 0x6e, 0x74, 0x2a, 0x1d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f,
+ 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10,
+ 0x01, 0x32, 0x4c, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x14, 0x2e, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x76, 0x65,
+ 0x6e, 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, 0x28, 0x01, 0x42,
+ 0x6b, 0x0a, 0x2a, 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, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a,
+ 0x1b, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53,
+ 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_event_Event_proto_rawDescOnce sync.Once
+ file_event_Event_proto_rawDescData = file_event_Event_proto_rawDesc
+)
+
+func file_event_Event_proto_rawDescGZIP() []byte {
+ file_event_Event_proto_rawDescOnce.Do(func() {
+ file_event_Event_proto_rawDescData = protoimpl.X.CompressGZIP(file_event_Event_proto_rawDescData)
+ })
+ return file_event_Event_proto_rawDescData
+}
+
+var file_event_Event_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_event_Event_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_event_Event_proto_goTypes = []interface{}{
+ (Type)(0), // 0: skywalking.v3.Type
+ (*Event)(nil), // 1: skywalking.v3.Event
+ (*Source)(nil), // 2: skywalking.v3.Source
+ nil, // 3: skywalking.v3.Event.ParametersEntry
+ (*v3.Commands)(nil), // 4: skywalking.v3.Commands
+}
+var file_event_Event_proto_depIdxs = []int32{
+ 2, // 0: skywalking.v3.Event.source:type_name -> skywalking.v3.Source
+ 0, // 1: skywalking.v3.Event.type:type_name -> skywalking.v3.Type
+ 3, // 2: skywalking.v3.Event.parameters:type_name -> skywalking.v3.Event.ParametersEntry
+ 1, // 3: skywalking.v3.EventService.collect:input_type -> skywalking.v3.Event
+ 4, // 4: skywalking.v3.EventService.collect:output_type -> skywalking.v3.Commands
+ 4, // [4:5] is the sub-list for method output_type
+ 3, // [3:4] is the sub-list for method input_type
+ 3, // [3:3] is the sub-list for extension type_name
+ 3, // [3:3] is the sub-list for extension extendee
+ 0, // [0:3] is the sub-list for field type_name
+}
+
+func init() { file_event_Event_proto_init() }
+func file_event_Event_proto_init() {
+ if File_event_Event_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_event_Event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Event); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_event_Event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Source); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_event_Event_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_event_Event_proto_goTypes,
+ DependencyIndexes: file_event_Event_proto_depIdxs,
+ EnumInfos: file_event_Event_proto_enumTypes,
+ MessageInfos: file_event_Event_proto_msgTypes,
+ }.Build()
+ File_event_Event_proto = out.File
+ file_event_Event_proto_rawDesc = nil
+ file_event_Event_proto_goTypes = nil
+ file_event_Event_proto_depIdxs = nil
+}
diff --git a/event/v3/Event_grpc.pb.go b/event/v3/Event_grpc.pb.go
new file mode 100644
index 0000000..1069226
--- /dev/null
+++ b/event/v3/Event_grpc.pb.go
@@ -0,0 +1,142 @@
+// 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/network/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
+
+// EventServiceClient is the client API for EventService 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 EventServiceClient interface {
+ // When reporting an event, you typically call the collect function twice, one for starting of the event and the other one for ending of the event, with the same UUID.
+ // There are also cases where you have both start time and end time already, for example, when exporting events from a 3rd-party system,
+ // the start time and end time are already known so that you can call the collect function only once.
+ Collect(ctx context.Context, opts ...grpc.CallOption) (EventService_CollectClient, error)
+}
+
+type eventServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewEventServiceClient(cc grpc.ClientConnInterface) EventServiceClient {
+ return &eventServiceClient{cc}
+}
+
+func (c *eventServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (EventService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &EventService_ServiceDesc.Streams[0], "/skywalking.v3.EventService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &eventServiceCollectClient{stream}
+ return x, nil
+}
+
+type EventService_CollectClient interface {
+ Send(*Event) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type eventServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *eventServiceCollectClient) Send(m *Event) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *eventServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// EventServiceServer is the server API for EventService service.
+// All implementations must embed UnimplementedEventServiceServer
+// for forward compatibility
+type EventServiceServer interface {
+ // When reporting an event, you typically call the collect function twice, one for starting of the event and the other one for ending of the event, with the same UUID.
+ // There are also cases where you have both start time and end time already, for example, when exporting events from a 3rd-party system,
+ // the start time and end time are already known so that you can call the collect function only once.
+ Collect(EventService_CollectServer) error
+ mustEmbedUnimplementedEventServiceServer()
+}
+
+// UnimplementedEventServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedEventServiceServer struct {
+}
+
+func (UnimplementedEventServiceServer) Collect(EventService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedEventServiceServer) mustEmbedUnimplementedEventServiceServer() {}
+
+// UnsafeEventServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to EventServiceServer will
+// result in compilation errors.
+type UnsafeEventServiceServer interface {
+ mustEmbedUnimplementedEventServiceServer()
+}
+
+func RegisterEventServiceServer(s grpc.ServiceRegistrar, srv EventServiceServer) {
+ s.RegisterService(&EventService_ServiceDesc, srv)
+}
+
+func _EventService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(EventServiceServer).Collect(&eventServiceCollectServer{stream})
+}
+
+type EventService_CollectServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*Event, error)
+ grpc.ServerStream
+}
+
+type eventServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *eventServiceCollectServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *eventServiceCollectServer) Recv() (*Event, error) {
+ m := new(Event)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// EventService_ServiceDesc is the grpc.ServiceDesc for EventService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var EventService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.EventService",
+ HandlerType: (*EventServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _EventService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "event/Event.proto",
+}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..855a858
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,8 @@
+module skywalking/network
+
+go 1.16
+
+require (
+ google.golang.org/grpc v1.36.1
+ google.golang.org/protobuf v1.26.0
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..6ee6f61
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,88 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+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=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+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=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/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 h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+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=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.36.1 h1:cmUfbeGKnz9+2DD/UYsMQXeqbHZqZDs4eQwW0sFOpBY=
+google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/language/agent/v3/BrowserPerf.pb.go b/language/agent/v3/BrowserPerf.pb.go
new file mode 100644
index 0000000..333a7c4
--- /dev/null
+++ b/language/agent/v3/BrowserPerf.pb.go
@@ -0,0 +1,627 @@
+//
+// 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: browser/BrowserPerf.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 ErrorCategory int32
+
+const (
+ ErrorCategory_ajax ErrorCategory = 0
+ ErrorCategory_resource ErrorCategory = 1
+ ErrorCategory_vue ErrorCategory = 2
+ ErrorCategory_promise ErrorCategory = 3
+ ErrorCategory_js ErrorCategory = 4
+ ErrorCategory_unknown ErrorCategory = 5
+)
+
+// Enum value maps for ErrorCategory.
+var (
+ ErrorCategory_name = map[int32]string{
+ 0: "ajax",
+ 1: "resource",
+ 2: "vue",
+ 3: "promise",
+ 4: "js",
+ 5: "unknown",
+ }
+ ErrorCategory_value = map[string]int32{
+ "ajax": 0,
+ "resource": 1,
+ "vue": 2,
+ "promise": 3,
+ "js": 4,
+ "unknown": 5,
+ }
+)
+
+func (x ErrorCategory) Enum() *ErrorCategory {
+ p := new(ErrorCategory)
+ *p = x
+ return p
+}
+
+func (x ErrorCategory) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ErrorCategory) Descriptor() protoreflect.EnumDescriptor {
+ return file_browser_BrowserPerf_proto_enumTypes[0].Descriptor()
+}
+
+func (ErrorCategory) Type() protoreflect.EnumType {
+ return &file_browser_BrowserPerf_proto_enumTypes[0]
+}
+
+func (x ErrorCategory) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ErrorCategory.Descriptor instead.
+func (ErrorCategory) EnumDescriptor() ([]byte, []int) {
+ return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{0}
+}
+
+type BrowserPerfData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ // Service version in browser is the Instance concept in the backend.
+ ServiceVersion string `protobuf:"bytes,2,opt,name=serviceVersion,proto3" json:"serviceVersion,omitempty"`
+ // Perf data time, set by the backend side.
+ Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
+ // Page path in browser is the endpoint concept in the backend
+ // Page path in the browser, mostly it is URI, without parameter
+ PagePath string `protobuf:"bytes,4,opt,name=pagePath,proto3" json:"pagePath,omitempty"`
+ // Unit of all time related field should be `ms`.
+ RedirectTime int32 `protobuf:"varint,5,opt,name=redirectTime,proto3" json:"redirectTime,omitempty"`
+ // DNS query time
+ DnsTime int32 `protobuf:"varint,6,opt,name=dnsTime,proto3" json:"dnsTime,omitempty"`
+ // Time to first Byte
+ TtfbTime int32 `protobuf:"varint,7,opt,name=ttfbTime,proto3" json:"ttfbTime,omitempty"`
+ // TCP connection time
+ TcpTime int32 `protobuf:"varint,8,opt,name=tcpTime,proto3" json:"tcpTime,omitempty"`
+ // Content transfer time
+ TransTime int32 `protobuf:"varint,9,opt,name=transTime,proto3" json:"transTime,omitempty"`
+ // Dom parsing time
+ DomAnalysisTime int32 `protobuf:"varint,10,opt,name=domAnalysisTime,proto3" json:"domAnalysisTime,omitempty"`
+ // First paint time or blank screen time
+ FptTime int32 `protobuf:"varint,11,opt,name=fptTime,proto3" json:"fptTime,omitempty"`
+ // Dom ready time
+ DomReadyTime int32 `protobuf:"varint,12,opt,name=domReadyTime,proto3" json:"domReadyTime,omitempty"`
+ // Page full load time
+ LoadPageTime int32 `protobuf:"varint,13,opt,name=loadPageTime,proto3" json:"loadPageTime,omitempty"`
+ // Synchronous load resources in the page
+ ResTime int32 `protobuf:"varint,14,opt,name=resTime,proto3" json:"resTime,omitempty"`
+ // Only valid for HTTPS
+ SslTime int32 `protobuf:"varint,15,opt,name=sslTime,proto3" json:"sslTime,omitempty"`
+ // Time to interact
+ TtlTime int32 `protobuf:"varint,16,opt,name=ttlTime,proto3" json:"ttlTime,omitempty"`
+ // First pack time
+ FirstPackTime int32 `protobuf:"varint,17,opt,name=firstPackTime,proto3" json:"firstPackTime,omitempty"`
+ // First Meaningful Paint
+ FmpTime int32 `protobuf:"varint,18,opt,name=fmpTime,proto3" json:"fmpTime,omitempty"`
+}
+
+func (x *BrowserPerfData) Reset() {
+ *x = BrowserPerfData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_browser_BrowserPerf_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BrowserPerfData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BrowserPerfData) ProtoMessage() {}
+
+func (x *BrowserPerfData) ProtoReflect() protoreflect.Message {
+ mi := &file_browser_BrowserPerf_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 BrowserPerfData.ProtoReflect.Descriptor instead.
+func (*BrowserPerfData) Descriptor() ([]byte, []int) {
+ return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *BrowserPerfData) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *BrowserPerfData) GetServiceVersion() string {
+ if x != nil {
+ return x.ServiceVersion
+ }
+ return ""
+}
+
+func (x *BrowserPerfData) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetPagePath() string {
+ if x != nil {
+ return x.PagePath
+ }
+ return ""
+}
+
+func (x *BrowserPerfData) GetRedirectTime() int32 {
+ if x != nil {
+ return x.RedirectTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetDnsTime() int32 {
+ if x != nil {
+ return x.DnsTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetTtfbTime() int32 {
+ if x != nil {
+ return x.TtfbTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetTcpTime() int32 {
+ if x != nil {
+ return x.TcpTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetTransTime() int32 {
+ if x != nil {
+ return x.TransTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetDomAnalysisTime() int32 {
+ if x != nil {
+ return x.DomAnalysisTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetFptTime() int32 {
+ if x != nil {
+ return x.FptTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetDomReadyTime() int32 {
+ if x != nil {
+ return x.DomReadyTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetLoadPageTime() int32 {
+ if x != nil {
+ return x.LoadPageTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetResTime() int32 {
+ if x != nil {
+ return x.ResTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetSslTime() int32 {
+ if x != nil {
+ return x.SslTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetTtlTime() int32 {
+ if x != nil {
+ return x.TtlTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetFirstPackTime() int32 {
+ if x != nil {
+ return x.FirstPackTime
+ }
+ return 0
+}
+
+func (x *BrowserPerfData) GetFmpTime() int32 {
+ if x != nil {
+ return x.FmpTime
+ }
+ return 0
+}
+
+type BrowserErrorLog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // UUID
+ UniqueId string `protobuf:"bytes,1,opt,name=uniqueId,proto3" json:"uniqueId,omitempty"`
+ Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
+ // Service version in browser is the Instance concept in the backend.
+ ServiceVersion string `protobuf:"bytes,3,opt,name=serviceVersion,proto3" json:"serviceVersion,omitempty"`
+ // Error log time, set by the backend side.
+ Time int64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
+ // Page path in browser is the endpoint concept in the backend
+ // Page path in the browser, mostly it is URI, without parameter
+ PagePath string `protobuf:"bytes,5,opt,name=pagePath,proto3" json:"pagePath,omitempty"`
+ Category ErrorCategory `protobuf:"varint,6,opt,name=category,proto3,enum=skywalking.v3.ErrorCategory" json:"category,omitempty"`
+ Grade string `protobuf:"bytes,7,opt,name=grade,proto3" json:"grade,omitempty"`
+ Message string `protobuf:"bytes,8,opt,name=message,proto3" json:"message,omitempty"`
+ Line int32 `protobuf:"varint,9,opt,name=line,proto3" json:"line,omitempty"`
+ Col int32 `protobuf:"varint,10,opt,name=col,proto3" json:"col,omitempty"`
+ Stack string `protobuf:"bytes,11,opt,name=stack,proto3" json:"stack,omitempty"`
+ ErrorUrl string `protobuf:"bytes,12,opt,name=errorUrl,proto3" json:"errorUrl,omitempty"`
+ // Then the PV with error is only calculated when firstReportedError is true.
+ FirstReportedError bool `protobuf:"varint,13,opt,name=firstReportedError,proto3" json:"firstReportedError,omitempty"`
+}
+
+func (x *BrowserErrorLog) Reset() {
+ *x = BrowserErrorLog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_browser_BrowserPerf_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BrowserErrorLog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BrowserErrorLog) ProtoMessage() {}
+
+func (x *BrowserErrorLog) ProtoReflect() protoreflect.Message {
+ mi := &file_browser_BrowserPerf_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 BrowserErrorLog.ProtoReflect.Descriptor instead.
+func (*BrowserErrorLog) Descriptor() ([]byte, []int) {
+ return file_browser_BrowserPerf_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *BrowserErrorLog) GetUniqueId() string {
+ if x != nil {
+ return x.UniqueId
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetServiceVersion() string {
+ if x != nil {
+ return x.ServiceVersion
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *BrowserErrorLog) GetPagePath() string {
+ if x != nil {
+ return x.PagePath
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetCategory() ErrorCategory {
+ if x != nil {
+ return x.Category
+ }
+ return ErrorCategory_ajax
+}
+
+func (x *BrowserErrorLog) GetGrade() string {
+ if x != nil {
+ return x.Grade
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetLine() int32 {
+ if x != nil {
+ return x.Line
+ }
+ return 0
+}
+
+func (x *BrowserErrorLog) GetCol() int32 {
+ if x != nil {
+ return x.Col
+ }
+ return 0
+}
+
+func (x *BrowserErrorLog) GetStack() string {
+ if x != nil {
+ return x.Stack
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetErrorUrl() string {
+ if x != nil {
+ return x.ErrorUrl
+ }
+ return ""
+}
+
+func (x *BrowserErrorLog) GetFirstReportedError() bool {
+ if x != nil {
+ return x.FirstReportedError
+ }
+ return false
+}
+
+var File_browser_BrowserPerf_proto protoreflect.FileDescriptor
+
+var file_browser_BrowserPerf_proto_rawDesc = []byte{
+ 0x0a, 0x19, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65,
+ 0x72, 0x50, 0x65, 0x72, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79,
+ 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+ 0xaf, 0x04, 0x0a, 0x0f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x44,
+ 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a,
+ 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67,
+ 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67,
+ 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x64,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73,
+ 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x74, 0x66, 0x62, 0x54, 0x69, 0x6d, 0x65, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x74, 0x66, 0x62, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x07, 0x74, 0x63, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6f, 0x6d, 0x41, 0x6e,
+ 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x0f, 0x64, 0x6f, 0x6d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x07, 0x66, 0x70, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64,
+ 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18,
+ 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x67, 0x65, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a,
+ 0x07, 0x73, 0x73, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
+ 0x73, 0x73, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x74, 0x6c, 0x54, 0x69,
+ 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x74, 0x6c, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x69,
+ 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50,
+ 0x61, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6d, 0x70, 0x54, 0x69,
+ 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x6d, 0x70, 0x54, 0x69, 0x6d,
+ 0x65, 0x22, 0x91, 0x03, 0x0a, 0x0f, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,
+ 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x50,
+ 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x50,
+ 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67,
+ 0x6f, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72,
+ 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x69, 0x6e,
+ 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
+ 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x52, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61,
+ 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x6a, 0x61, 0x78, 0x10, 0x00,
+ 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0x01, 0x12, 0x07,
+ 0x0a, 0x03, 0x76, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x69,
+ 0x73, 0x65, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x6a, 0x73, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07,
+ 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x05, 0x32, 0xb3, 0x01, 0x0a, 0x12, 0x42, 0x72,
+ 0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x66, 0x44,
+ 0x61, 0x74, 0x61, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x66, 0x44,
+ 0x61, 0x74, 0x61, 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, 0x4f,
+ 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f,
+ 0x67, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c,
+ 0x6f, 0x67, 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, 0x28, 0x01, 0x42,
+ 0x7d, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67,
+ 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e,
+ 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02,
+ 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_browser_BrowserPerf_proto_rawDescOnce sync.Once
+ file_browser_BrowserPerf_proto_rawDescData = file_browser_BrowserPerf_proto_rawDesc
+)
+
+func file_browser_BrowserPerf_proto_rawDescGZIP() []byte {
+ file_browser_BrowserPerf_proto_rawDescOnce.Do(func() {
+ file_browser_BrowserPerf_proto_rawDescData = protoimpl.X.CompressGZIP(file_browser_BrowserPerf_proto_rawDescData)
+ })
+ return file_browser_BrowserPerf_proto_rawDescData
+}
+
+var file_browser_BrowserPerf_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_browser_BrowserPerf_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_browser_BrowserPerf_proto_goTypes = []interface{}{
+ (ErrorCategory)(0), // 0: skywalking.v3.ErrorCategory
+ (*BrowserPerfData)(nil), // 1: skywalking.v3.BrowserPerfData
+ (*BrowserErrorLog)(nil), // 2: skywalking.v3.BrowserErrorLog
+ (*v3.Commands)(nil), // 3: skywalking.v3.Commands
+}
+var file_browser_BrowserPerf_proto_depIdxs = []int32{
+ 0, // 0: skywalking.v3.BrowserErrorLog.category:type_name -> skywalking.v3.ErrorCategory
+ 1, // 1: skywalking.v3.BrowserPerfService.collectPerfData:input_type -> skywalking.v3.BrowserPerfData
+ 2, // 2: skywalking.v3.BrowserPerfService.collectErrorLogs:input_type -> skywalking.v3.BrowserErrorLog
+ 3, // 3: skywalking.v3.BrowserPerfService.collectPerfData:output_type -> skywalking.v3.Commands
+ 3, // 4: skywalking.v3.BrowserPerfService.collectErrorLogs:output_type -> skywalking.v3.Commands
+ 3, // [3:5] is the sub-list for method output_type
+ 1, // [1:3] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_browser_BrowserPerf_proto_init() }
+func file_browser_BrowserPerf_proto_init() {
+ if File_browser_BrowserPerf_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_browser_BrowserPerf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BrowserPerfData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_browser_BrowserPerf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BrowserErrorLog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_browser_BrowserPerf_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_browser_BrowserPerf_proto_goTypes,
+ DependencyIndexes: file_browser_BrowserPerf_proto_depIdxs,
+ EnumInfos: file_browser_BrowserPerf_proto_enumTypes,
+ MessageInfos: file_browser_BrowserPerf_proto_msgTypes,
+ }.Build()
+ File_browser_BrowserPerf_proto = out.File
+ file_browser_BrowserPerf_proto_rawDesc = nil
+ file_browser_BrowserPerf_proto_goTypes = nil
+ file_browser_BrowserPerf_proto_depIdxs = nil
+}
diff --git a/language/agent/v3/BrowserPerf_grpc.pb.go b/language/agent/v3/BrowserPerf_grpc.pb.go
new file mode 100644
index 0000000..428f1ae
--- /dev/null
+++ b/language/agent/v3/BrowserPerf_grpc.pb.go
@@ -0,0 +1,177 @@
+// 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/network/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
+
+// BrowserPerfServiceClient is the client API for BrowserPerfService 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 BrowserPerfServiceClient interface {
+ // report once per page
+ CollectPerfData(ctx context.Context, in *BrowserPerfData, opts ...grpc.CallOption) (*v3.Commands, error)
+ // report one or more error logs for pages, could report multiple times.
+ CollectErrorLogs(ctx context.Context, opts ...grpc.CallOption) (BrowserPerfService_CollectErrorLogsClient, error)
+}
+
+type browserPerfServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewBrowserPerfServiceClient(cc grpc.ClientConnInterface) BrowserPerfServiceClient {
+ return &browserPerfServiceClient{cc}
+}
+
+func (c *browserPerfServiceClient) CollectPerfData(ctx context.Context, in *BrowserPerfData, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.BrowserPerfService/collectPerfData", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *browserPerfServiceClient) CollectErrorLogs(ctx context.Context, opts ...grpc.CallOption) (BrowserPerfService_CollectErrorLogsClient, error) {
+ stream, err := c.cc.NewStream(ctx, &BrowserPerfService_ServiceDesc.Streams[0], "/skywalking.v3.BrowserPerfService/collectErrorLogs", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &browserPerfServiceCollectErrorLogsClient{stream}
+ return x, nil
+}
+
+type BrowserPerfService_CollectErrorLogsClient interface {
+ Send(*BrowserErrorLog) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type browserPerfServiceCollectErrorLogsClient struct {
+ grpc.ClientStream
+}
+
+func (x *browserPerfServiceCollectErrorLogsClient) Send(m *BrowserErrorLog) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *browserPerfServiceCollectErrorLogsClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// BrowserPerfServiceServer is the server API for BrowserPerfService service.
+// All implementations must embed UnimplementedBrowserPerfServiceServer
+// for forward compatibility
+type BrowserPerfServiceServer interface {
+ // report once per page
+ CollectPerfData(context.Context, *BrowserPerfData) (*v3.Commands, error)
+ // report one or more error logs for pages, could report multiple times.
+ CollectErrorLogs(BrowserPerfService_CollectErrorLogsServer) error
+ mustEmbedUnimplementedBrowserPerfServiceServer()
+}
+
+// UnimplementedBrowserPerfServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedBrowserPerfServiceServer struct {
+}
+
+func (UnimplementedBrowserPerfServiceServer) CollectPerfData(context.Context, *BrowserPerfData) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CollectPerfData not implemented")
+}
+func (UnimplementedBrowserPerfServiceServer) CollectErrorLogs(BrowserPerfService_CollectErrorLogsServer) error {
+ return status.Errorf(codes.Unimplemented, "method CollectErrorLogs not implemented")
+}
+func (UnimplementedBrowserPerfServiceServer) mustEmbedUnimplementedBrowserPerfServiceServer() {}
+
+// UnsafeBrowserPerfServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to BrowserPerfServiceServer will
+// result in compilation errors.
+type UnsafeBrowserPerfServiceServer interface {
+ mustEmbedUnimplementedBrowserPerfServiceServer()
+}
+
+func RegisterBrowserPerfServiceServer(s grpc.ServiceRegistrar, srv BrowserPerfServiceServer) {
+ s.RegisterService(&BrowserPerfService_ServiceDesc, srv)
+}
+
+func _BrowserPerfService_CollectPerfData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(BrowserPerfData)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(BrowserPerfServiceServer).CollectPerfData(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.BrowserPerfService/collectPerfData",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(BrowserPerfServiceServer).CollectPerfData(ctx, req.(*BrowserPerfData))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _BrowserPerfService_CollectErrorLogs_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(BrowserPerfServiceServer).CollectErrorLogs(&browserPerfServiceCollectErrorLogsServer{stream})
+}
+
+type BrowserPerfService_CollectErrorLogsServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*BrowserErrorLog, error)
+ grpc.ServerStream
+}
+
+type browserPerfServiceCollectErrorLogsServer struct {
+ grpc.ServerStream
+}
+
+func (x *browserPerfServiceCollectErrorLogsServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *browserPerfServiceCollectErrorLogsServer) Recv() (*BrowserErrorLog, error) {
+ m := new(BrowserErrorLog)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// BrowserPerfService_ServiceDesc is the grpc.ServiceDesc for BrowserPerfService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var BrowserPerfService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.BrowserPerfService",
+ HandlerType: (*BrowserPerfServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "collectPerfData",
+ Handler: _BrowserPerfService_CollectPerfData_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collectErrorLogs",
+ Handler: _BrowserPerfService_CollectErrorLogs_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "browser/BrowserPerf.proto",
+}
diff --git a/language/agent/v3/CLRMetric.pb.go b/language/agent/v3/CLRMetric.pb.go
new file mode 100644
index 0000000..22139cf
--- /dev/null
+++ b/language/agent/v3/CLRMetric.pb.go
@@ -0,0 +1,495 @@
+//
+// 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: language-agent/CLRMetric.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 CLRMetricCollection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Metrics []*CLRMetric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
+ Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+}
+
+func (x *CLRMetricCollection) Reset() {
+ *x = CLRMetricCollection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_CLRMetric_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CLRMetricCollection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CLRMetricCollection) ProtoMessage() {}
+
+func (x *CLRMetricCollection) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_CLRMetric_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 CLRMetricCollection.ProtoReflect.Descriptor instead.
+func (*CLRMetricCollection) Descriptor() ([]byte, []int) {
+ return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CLRMetricCollection) GetMetrics() []*CLRMetric {
+ if x != nil {
+ return x.Metrics
+ }
+ return nil
+}
+
+func (x *CLRMetricCollection) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *CLRMetricCollection) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+type CLRMetric struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
+ Cpu *v3.CPU `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
+ Gc *ClrGC `protobuf:"bytes,3,opt,name=gc,proto3" json:"gc,omitempty"`
+ Thread *ClrThread `protobuf:"bytes,4,opt,name=thread,proto3" json:"thread,omitempty"`
+}
+
+func (x *CLRMetric) Reset() {
+ *x = CLRMetric{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_CLRMetric_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CLRMetric) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CLRMetric) ProtoMessage() {}
+
+func (x *CLRMetric) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_CLRMetric_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 CLRMetric.ProtoReflect.Descriptor instead.
+func (*CLRMetric) Descriptor() ([]byte, []int) {
+ return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *CLRMetric) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *CLRMetric) GetCpu() *v3.CPU {
+ if x != nil {
+ return x.Cpu
+ }
+ return nil
+}
+
+func (x *CLRMetric) GetGc() *ClrGC {
+ if x != nil {
+ return x.Gc
+ }
+ return nil
+}
+
+func (x *CLRMetric) GetThread() *ClrThread {
+ if x != nil {
+ return x.Thread
+ }
+ return nil
+}
+
+type ClrGC struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Gen0CollectCount int64 `protobuf:"varint,1,opt,name=Gen0CollectCount,proto3" json:"Gen0CollectCount,omitempty"`
+ Gen1CollectCount int64 `protobuf:"varint,2,opt,name=Gen1CollectCount,proto3" json:"Gen1CollectCount,omitempty"`
+ Gen2CollectCount int64 `protobuf:"varint,3,opt,name=Gen2CollectCount,proto3" json:"Gen2CollectCount,omitempty"`
+ HeapMemory int64 `protobuf:"varint,4,opt,name=HeapMemory,proto3" json:"HeapMemory,omitempty"`
+}
+
+func (x *ClrGC) Reset() {
+ *x = ClrGC{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_CLRMetric_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ClrGC) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ClrGC) ProtoMessage() {}
+
+func (x *ClrGC) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_CLRMetric_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 ClrGC.ProtoReflect.Descriptor instead.
+func (*ClrGC) Descriptor() ([]byte, []int) {
+ return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ClrGC) GetGen0CollectCount() int64 {
+ if x != nil {
+ return x.Gen0CollectCount
+ }
+ return 0
+}
+
+func (x *ClrGC) GetGen1CollectCount() int64 {
+ if x != nil {
+ return x.Gen1CollectCount
+ }
+ return 0
+}
+
+func (x *ClrGC) GetGen2CollectCount() int64 {
+ if x != nil {
+ return x.Gen2CollectCount
+ }
+ return 0
+}
+
+func (x *ClrGC) GetHeapMemory() int64 {
+ if x != nil {
+ return x.HeapMemory
+ }
+ return 0
+}
+
+type ClrThread struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AvailableCompletionPortThreads int32 `protobuf:"varint,1,opt,name=AvailableCompletionPortThreads,proto3" json:"AvailableCompletionPortThreads,omitempty"`
+ AvailableWorkerThreads int32 `protobuf:"varint,2,opt,name=AvailableWorkerThreads,proto3" json:"AvailableWorkerThreads,omitempty"`
+ MaxCompletionPortThreads int32 `protobuf:"varint,3,opt,name=MaxCompletionPortThreads,proto3" json:"MaxCompletionPortThreads,omitempty"`
+ MaxWorkerThreads int32 `protobuf:"varint,4,opt,name=MaxWorkerThreads,proto3" json:"MaxWorkerThreads,omitempty"`
+}
+
+func (x *ClrThread) Reset() {
+ *x = ClrThread{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_CLRMetric_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ClrThread) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ClrThread) ProtoMessage() {}
+
+func (x *ClrThread) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_CLRMetric_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 ClrThread.ProtoReflect.Descriptor instead.
+func (*ClrThread) Descriptor() ([]byte, []int) {
+ return file_language_agent_CLRMetric_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ClrThread) GetAvailableCompletionPortThreads() int32 {
+ if x != nil {
+ return x.AvailableCompletionPortThreads
+ }
+ return 0
+}
+
+func (x *ClrThread) GetAvailableWorkerThreads() int32 {
+ if x != nil {
+ return x.AvailableWorkerThreads
+ }
+ return 0
+}
+
+func (x *ClrThread) GetMaxCompletionPortThreads() int32 {
+ if x != nil {
+ return x.MaxCompletionPortThreads
+ }
+ return 0
+}
+
+func (x *ClrThread) GetMaxWorkerThreads() int32 {
+ if x != nil {
+ return x.MaxWorkerThreads
+ }
+ return 0
+}
+
+var File_language_agent_CLRMetric_proto protoreflect.FileDescriptor
+
+var file_language_agent_CLRMetric_proto_rawDesc = []byte{
+ 0x0a, 0x1e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a,
+ 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x07,
+ 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x4c,
+ 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x43, 0x4c, 0x52, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x02,
+ 0x67, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
+ 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x72, 0x47, 0x43, 0x52, 0x02,
+ 0x67, 0x63, 0x12, 0x30, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x43, 0x6c, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x52, 0x06, 0x74, 0x68,
+ 0x72, 0x65, 0x61, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x05, 0x43, 0x6c, 0x72, 0x47, 0x43, 0x12, 0x2a,
+ 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x30, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x47, 0x65, 0x6e, 0x30, 0x43, 0x6f,
+ 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x65,
+ 0x6e, 0x31, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x47, 0x65, 0x6e, 0x31, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
+ 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x32, 0x43, 0x6f,
+ 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x10, 0x47, 0x65, 0x6e, 0x32, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x70, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x48, 0x65, 0x61, 0x70, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x72, 0x79, 0x22, 0xf3, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
+ 0x12, 0x46, 0x0a, 0x1e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d,
+ 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61,
+ 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72,
+ 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x41, 0x76, 0x61, 0x69,
+ 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61,
+ 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
+ 0x12, 0x3a, 0x0a, 0x18, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f,
+ 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x18, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f,
+ 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x10,
+ 0x4d, 0x61, 0x78, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x4d, 0x61, 0x78, 0x57, 0x6f, 0x72, 0x6b, 0x65,
+ 0x72, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x32, 0x62, 0x0a, 0x16, 0x43, 0x4c, 0x52, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x22, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x4c,
+ 0x52, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 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, 0x7d, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
+ 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b,
+ 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_language_agent_CLRMetric_proto_rawDescOnce sync.Once
+ file_language_agent_CLRMetric_proto_rawDescData = file_language_agent_CLRMetric_proto_rawDesc
+)
+
+func file_language_agent_CLRMetric_proto_rawDescGZIP() []byte {
+ file_language_agent_CLRMetric_proto_rawDescOnce.Do(func() {
+ file_language_agent_CLRMetric_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_CLRMetric_proto_rawDescData)
+ })
+ return file_language_agent_CLRMetric_proto_rawDescData
+}
+
+var file_language_agent_CLRMetric_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_language_agent_CLRMetric_proto_goTypes = []interface{}{
+ (*CLRMetricCollection)(nil), // 0: skywalking.v3.CLRMetricCollection
+ (*CLRMetric)(nil), // 1: skywalking.v3.CLRMetric
+ (*ClrGC)(nil), // 2: skywalking.v3.ClrGC
+ (*ClrThread)(nil), // 3: skywalking.v3.ClrThread
+ (*v3.CPU)(nil), // 4: skywalking.v3.CPU
+ (*v3.Commands)(nil), // 5: skywalking.v3.Commands
+}
+var file_language_agent_CLRMetric_proto_depIdxs = []int32{
+ 1, // 0: skywalking.v3.CLRMetricCollection.metrics:type_name -> skywalking.v3.CLRMetric
+ 4, // 1: skywalking.v3.CLRMetric.cpu:type_name -> skywalking.v3.CPU
+ 2, // 2: skywalking.v3.CLRMetric.gc:type_name -> skywalking.v3.ClrGC
+ 3, // 3: skywalking.v3.CLRMetric.thread:type_name -> skywalking.v3.ClrThread
+ 0, // 4: skywalking.v3.CLRMetricReportService.collect:input_type -> skywalking.v3.CLRMetricCollection
+ 5, // 5: skywalking.v3.CLRMetricReportService.collect:output_type -> skywalking.v3.Commands
+ 5, // [5:6] is the sub-list for method output_type
+ 4, // [4:5] is the sub-list for method input_type
+ 4, // [4:4] is the sub-list for extension type_name
+ 4, // [4:4] is the sub-list for extension extendee
+ 0, // [0:4] is the sub-list for field type_name
+}
+
+func init() { file_language_agent_CLRMetric_proto_init() }
+func file_language_agent_CLRMetric_proto_init() {
+ if File_language_agent_CLRMetric_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_language_agent_CLRMetric_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CLRMetricCollection); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_CLRMetric_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CLRMetric); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_CLRMetric_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ClrGC); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_CLRMetric_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ClrThread); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_language_agent_CLRMetric_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_language_agent_CLRMetric_proto_goTypes,
+ DependencyIndexes: file_language_agent_CLRMetric_proto_depIdxs,
+ MessageInfos: file_language_agent_CLRMetric_proto_msgTypes,
+ }.Build()
+ File_language_agent_CLRMetric_proto = out.File
+ file_language_agent_CLRMetric_proto_rawDesc = nil
+ file_language_agent_CLRMetric_proto_goTypes = nil
+ file_language_agent_CLRMetric_proto_depIdxs = nil
+}
diff --git a/language/agent/v3/CLRMetric_grpc.pb.go b/language/agent/v3/CLRMetric_grpc.pb.go
new file mode 100644
index 0000000..18ac4a3
--- /dev/null
+++ b/language/agent/v3/CLRMetric_grpc.pb.go
@@ -0,0 +1,103 @@
+// 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/network/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
+
+// CLRMetricReportServiceClient is the client API for CLRMetricReportService 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 CLRMetricReportServiceClient interface {
+ Collect(ctx context.Context, in *CLRMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type cLRMetricReportServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewCLRMetricReportServiceClient(cc grpc.ClientConnInterface) CLRMetricReportServiceClient {
+ return &cLRMetricReportServiceClient{cc}
+}
+
+func (c *cLRMetricReportServiceClient) Collect(ctx context.Context, in *CLRMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.CLRMetricReportService/collect", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// CLRMetricReportServiceServer is the server API for CLRMetricReportService service.
+// All implementations must embed UnimplementedCLRMetricReportServiceServer
+// for forward compatibility
+type CLRMetricReportServiceServer interface {
+ Collect(context.Context, *CLRMetricCollection) (*v3.Commands, error)
+ mustEmbedUnimplementedCLRMetricReportServiceServer()
+}
+
+// UnimplementedCLRMetricReportServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedCLRMetricReportServiceServer struct {
+}
+
+func (UnimplementedCLRMetricReportServiceServer) Collect(context.Context, *CLRMetricCollection) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedCLRMetricReportServiceServer) mustEmbedUnimplementedCLRMetricReportServiceServer() {
+}
+
+// UnsafeCLRMetricReportServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to CLRMetricReportServiceServer will
+// result in compilation errors.
+type UnsafeCLRMetricReportServiceServer interface {
+ mustEmbedUnimplementedCLRMetricReportServiceServer()
+}
+
+func RegisterCLRMetricReportServiceServer(s grpc.ServiceRegistrar, srv CLRMetricReportServiceServer) {
+ s.RegisterService(&CLRMetricReportService_ServiceDesc, srv)
+}
+
+func _CLRMetricReportService_Collect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CLRMetricCollection)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CLRMetricReportServiceServer).Collect(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.CLRMetricReportService/collect",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CLRMetricReportServiceServer).Collect(ctx, req.(*CLRMetricCollection))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// CLRMetricReportService_ServiceDesc is the grpc.ServiceDesc for CLRMetricReportService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var CLRMetricReportService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.CLRMetricReportService",
+ HandlerType: (*CLRMetricReportServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "collect",
+ Handler: _CLRMetricReportService_Collect_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "language-agent/CLRMetric.proto",
+}
diff --git a/language/agent/v3/JVMMetric.pb.go b/language/agent/v3/JVMMetric.pb.go
new file mode 100644
index 0000000..f3e5619
--- /dev/null
+++ b/language/agent/v3/JVMMetric.pb.go
@@ -0,0 +1,810 @@
+//
+// 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: language-agent/JVMMetric.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 PoolType int32
+
+const (
+ PoolType_CODE_CACHE_USAGE PoolType = 0
+ PoolType_NEWGEN_USAGE PoolType = 1
+ PoolType_OLDGEN_USAGE PoolType = 2
+ PoolType_SURVIVOR_USAGE PoolType = 3
+ PoolType_PERMGEN_USAGE PoolType = 4
+ PoolType_METASPACE_USAGE PoolType = 5
+)
+
+// Enum value maps for PoolType.
+var (
+ PoolType_name = map[int32]string{
+ 0: "CODE_CACHE_USAGE",
+ 1: "NEWGEN_USAGE",
+ 2: "OLDGEN_USAGE",
+ 3: "SURVIVOR_USAGE",
+ 4: "PERMGEN_USAGE",
+ 5: "METASPACE_USAGE",
+ }
+ PoolType_value = map[string]int32{
+ "CODE_CACHE_USAGE": 0,
+ "NEWGEN_USAGE": 1,
+ "OLDGEN_USAGE": 2,
+ "SURVIVOR_USAGE": 3,
+ "PERMGEN_USAGE": 4,
+ "METASPACE_USAGE": 5,
+ }
+)
+
+func (x PoolType) Enum() *PoolType {
+ p := new(PoolType)
+ *p = x
+ return p
+}
+
+func (x PoolType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (PoolType) Descriptor() protoreflect.EnumDescriptor {
+ return file_language_agent_JVMMetric_proto_enumTypes[0].Descriptor()
+}
+
+func (PoolType) Type() protoreflect.EnumType {
+ return &file_language_agent_JVMMetric_proto_enumTypes[0]
+}
+
+func (x PoolType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use PoolType.Descriptor instead.
+func (PoolType) EnumDescriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{0}
+}
+
+type GCPhrase int32
+
+const (
+ GCPhrase_NEW GCPhrase = 0
+ GCPhrase_OLD GCPhrase = 1
+)
+
+// Enum value maps for GCPhrase.
+var (
+ GCPhrase_name = map[int32]string{
+ 0: "NEW",
+ 1: "OLD",
+ }
+ GCPhrase_value = map[string]int32{
+ "NEW": 0,
+ "OLD": 1,
+ }
+)
+
+func (x GCPhrase) Enum() *GCPhrase {
+ p := new(GCPhrase)
+ *p = x
+ return p
+}
+
+func (x GCPhrase) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (GCPhrase) Descriptor() protoreflect.EnumDescriptor {
+ return file_language_agent_JVMMetric_proto_enumTypes[1].Descriptor()
+}
+
+func (GCPhrase) Type() protoreflect.EnumType {
+ return &file_language_agent_JVMMetric_proto_enumTypes[1]
+}
+
+func (x GCPhrase) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GCPhrase.Descriptor instead.
+func (GCPhrase) EnumDescriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{1}
+}
+
+type JVMMetricCollection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Metrics []*JVMMetric `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
+ Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+}
+
+func (x *JVMMetricCollection) Reset() {
+ *x = JVMMetricCollection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *JVMMetricCollection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JVMMetricCollection) ProtoMessage() {}
+
+func (x *JVMMetricCollection) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 JVMMetricCollection.ProtoReflect.Descriptor instead.
+func (*JVMMetricCollection) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *JVMMetricCollection) GetMetrics() []*JVMMetric {
+ if x != nil {
+ return x.Metrics
+ }
+ return nil
+}
+
+func (x *JVMMetricCollection) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *JVMMetricCollection) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+type JVMMetric struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
+ Cpu *v3.CPU `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
+ Memory []*Memory `protobuf:"bytes,3,rep,name=memory,proto3" json:"memory,omitempty"`
+ MemoryPool []*MemoryPool `protobuf:"bytes,4,rep,name=memoryPool,proto3" json:"memoryPool,omitempty"`
+ Gc []*GC `protobuf:"bytes,5,rep,name=gc,proto3" json:"gc,omitempty"`
+ Thread *Thread `protobuf:"bytes,6,opt,name=thread,proto3" json:"thread,omitempty"`
+}
+
+func (x *JVMMetric) Reset() {
+ *x = JVMMetric{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *JVMMetric) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JVMMetric) ProtoMessage() {}
+
+func (x *JVMMetric) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 JVMMetric.ProtoReflect.Descriptor instead.
+func (*JVMMetric) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *JVMMetric) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *JVMMetric) GetCpu() *v3.CPU {
+ if x != nil {
+ return x.Cpu
+ }
+ return nil
+}
+
+func (x *JVMMetric) GetMemory() []*Memory {
+ if x != nil {
+ return x.Memory
+ }
+ return nil
+}
+
+func (x *JVMMetric) GetMemoryPool() []*MemoryPool {
+ if x != nil {
+ return x.MemoryPool
+ }
+ return nil
+}
+
+func (x *JVMMetric) GetGc() []*GC {
+ if x != nil {
+ return x.Gc
+ }
+ return nil
+}
+
+func (x *JVMMetric) GetThread() *Thread {
+ if x != nil {
+ return x.Thread
+ }
+ return nil
+}
+
+type Memory struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IsHeap bool `protobuf:"varint,1,opt,name=isHeap,proto3" json:"isHeap,omitempty"`
+ Init int64 `protobuf:"varint,2,opt,name=init,proto3" json:"init,omitempty"`
+ Max int64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
+ Used int64 `protobuf:"varint,4,opt,name=used,proto3" json:"used,omitempty"`
+ Committed int64 `protobuf:"varint,5,opt,name=committed,proto3" json:"committed,omitempty"`
+}
+
+func (x *Memory) Reset() {
+ *x = Memory{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Memory) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Memory) ProtoMessage() {}
+
+func (x *Memory) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 Memory.ProtoReflect.Descriptor instead.
+func (*Memory) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Memory) GetIsHeap() bool {
+ if x != nil {
+ return x.IsHeap
+ }
+ return false
+}
+
+func (x *Memory) GetInit() int64 {
+ if x != nil {
+ return x.Init
+ }
+ return 0
+}
+
+func (x *Memory) GetMax() int64 {
+ if x != nil {
+ return x.Max
+ }
+ return 0
+}
+
+func (x *Memory) GetUsed() int64 {
+ if x != nil {
+ return x.Used
+ }
+ return 0
+}
+
+func (x *Memory) GetCommitted() int64 {
+ if x != nil {
+ return x.Committed
+ }
+ return 0
+}
+
+type MemoryPool struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type PoolType `protobuf:"varint,1,opt,name=type,proto3,enum=skywalking.v3.PoolType" json:"type,omitempty"`
+ Init int64 `protobuf:"varint,2,opt,name=init,proto3" json:"init,omitempty"`
+ Max int64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
+ Used int64 `protobuf:"varint,4,opt,name=used,proto3" json:"used,omitempty"`
+ Committed int64 `protobuf:"varint,5,opt,name=committed,proto3" json:"committed,omitempty"`
+}
+
+func (x *MemoryPool) Reset() {
+ *x = MemoryPool{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MemoryPool) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MemoryPool) ProtoMessage() {}
+
+func (x *MemoryPool) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 MemoryPool.ProtoReflect.Descriptor instead.
+func (*MemoryPool) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *MemoryPool) GetType() PoolType {
+ if x != nil {
+ return x.Type
+ }
+ return PoolType_CODE_CACHE_USAGE
+}
+
+func (x *MemoryPool) GetInit() int64 {
+ if x != nil {
+ return x.Init
+ }
+ return 0
+}
+
+func (x *MemoryPool) GetMax() int64 {
+ if x != nil {
+ return x.Max
+ }
+ return 0
+}
+
+func (x *MemoryPool) GetUsed() int64 {
+ if x != nil {
+ return x.Used
+ }
+ return 0
+}
+
+func (x *MemoryPool) GetCommitted() int64 {
+ if x != nil {
+ return x.Committed
+ }
+ return 0
+}
+
+type GC struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Phrase GCPhrase `protobuf:"varint,1,opt,name=phrase,proto3,enum=skywalking.v3.GCPhrase" json:"phrase,omitempty"`
+ Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
+ Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
+}
+
+func (x *GC) Reset() {
+ *x = GC{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GC) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GC) ProtoMessage() {}
+
+func (x *GC) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 GC.ProtoReflect.Descriptor instead.
+func (*GC) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *GC) GetPhrase() GCPhrase {
+ if x != nil {
+ return x.Phrase
+ }
+ return GCPhrase_NEW
+}
+
+func (x *GC) GetCount() int64 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+
+func (x *GC) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+type Thread struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ LiveCount int64 `protobuf:"varint,1,opt,name=liveCount,proto3" json:"liveCount,omitempty"`
+ DaemonCount int64 `protobuf:"varint,2,opt,name=daemonCount,proto3" json:"daemonCount,omitempty"`
+ PeakCount int64 `protobuf:"varint,3,opt,name=peakCount,proto3" json:"peakCount,omitempty"`
+}
+
+func (x *Thread) Reset() {
+ *x = Thread{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_JVMMetric_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Thread) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Thread) ProtoMessage() {}
+
+func (x *Thread) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_JVMMetric_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 Thread.ProtoReflect.Descriptor instead.
+func (*Thread) Descriptor() ([]byte, []int) {
+ return file_language_agent_JVMMetric_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *Thread) GetLiveCount() int64 {
+ if x != nil {
+ return x.LiveCount
+ }
+ return 0
+}
+
+func (x *Thread) GetDaemonCount() int64 {
+ if x != nil {
+ return x.DaemonCount
+ }
+ return 0
+}
+
+func (x *Thread) GetPeakCount() int64 {
+ if x != nil {
+ return x.PeakCount
+ }
+ return 0
+}
+
+var File_language_agent_JVMMetric_proto protoreflect.FileDescriptor
+
+var file_language_agent_JVMMetric_proto_rawDesc = []byte{
+ 0x0a, 0x1e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a,
+ 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x07,
+ 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4a, 0x56,
+ 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x09, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x2d, 0x0a, 0x06,
+ 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x6d,
+ 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x19, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x02, 0x67, 0x63, 0x18, 0x05, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x47, 0x43, 0x52, 0x02, 0x67, 0x63, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x68, 0x72,
+ 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x6b, 0x79, 0x77,
+ 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
+ 0x52, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x22, 0x78, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x48, 0x65, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, 0x65, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e,
+ 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x10,
+ 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78,
+ 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
+ 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65,
+ 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74,
+ 0x65, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x6f,
+ 0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x17, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e,
+ 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12,
+ 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x69, 0x6e,
+ 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x03, 0x6d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x22, 0x5f, 0x0a, 0x02, 0x47, 0x43, 0x12, 0x2f, 0x0a, 0x06,
+ 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x47, 0x43, 0x50,
+ 0x68, 0x72, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x06, 0x54, 0x68, 0x72, 0x65, 0x61,
+ 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+ 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
+ 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a,
+ 0x80, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10,
+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45,
+ 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x47, 0x45, 0x4e, 0x5f, 0x55, 0x53, 0x41,
+ 0x47, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x4c, 0x44, 0x47, 0x45, 0x4e, 0x5f, 0x55,
+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x55, 0x52, 0x56, 0x49, 0x56,
+ 0x4f, 0x52, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45,
+ 0x52, 0x4d, 0x47, 0x45, 0x4e, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a,
+ 0x0f, 0x4d, 0x45, 0x54, 0x41, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45,
+ 0x10, 0x05, 0x2a, 0x1c, 0x0a, 0x08, 0x47, 0x43, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x07,
+ 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4c, 0x44, 0x10, 0x01,
+ 0x32, 0x62, 0x0a, 0x16, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x63, 0x6f,
+ 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4a, 0x56, 0x4d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43,
+ 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x7d, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
+ 0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+ 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_language_agent_JVMMetric_proto_rawDescOnce sync.Once
+ file_language_agent_JVMMetric_proto_rawDescData = file_language_agent_JVMMetric_proto_rawDesc
+)
+
+func file_language_agent_JVMMetric_proto_rawDescGZIP() []byte {
+ file_language_agent_JVMMetric_proto_rawDescOnce.Do(func() {
+ file_language_agent_JVMMetric_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_JVMMetric_proto_rawDescData)
+ })
+ return file_language_agent_JVMMetric_proto_rawDescData
+}
+
+var file_language_agent_JVMMetric_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_language_agent_JVMMetric_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_language_agent_JVMMetric_proto_goTypes = []interface{}{
+ (PoolType)(0), // 0: skywalking.v3.PoolType
+ (GCPhrase)(0), // 1: skywalking.v3.GCPhrase
+ (*JVMMetricCollection)(nil), // 2: skywalking.v3.JVMMetricCollection
+ (*JVMMetric)(nil), // 3: skywalking.v3.JVMMetric
+ (*Memory)(nil), // 4: skywalking.v3.Memory
+ (*MemoryPool)(nil), // 5: skywalking.v3.MemoryPool
+ (*GC)(nil), // 6: skywalking.v3.GC
+ (*Thread)(nil), // 7: skywalking.v3.Thread
+ (*v3.CPU)(nil), // 8: skywalking.v3.CPU
+ (*v3.Commands)(nil), // 9: skywalking.v3.Commands
+}
+var file_language_agent_JVMMetric_proto_depIdxs = []int32{
+ 3, // 0: skywalking.v3.JVMMetricCollection.metrics:type_name -> skywalking.v3.JVMMetric
+ 8, // 1: skywalking.v3.JVMMetric.cpu:type_name -> skywalking.v3.CPU
+ 4, // 2: skywalking.v3.JVMMetric.memory:type_name -> skywalking.v3.Memory
+ 5, // 3: skywalking.v3.JVMMetric.memoryPool:type_name -> skywalking.v3.MemoryPool
+ 6, // 4: skywalking.v3.JVMMetric.gc:type_name -> skywalking.v3.GC
+ 7, // 5: skywalking.v3.JVMMetric.thread:type_name -> skywalking.v3.Thread
+ 0, // 6: skywalking.v3.MemoryPool.type:type_name -> skywalking.v3.PoolType
+ 1, // 7: skywalking.v3.GC.phrase:type_name -> skywalking.v3.GCPhrase
+ 2, // 8: skywalking.v3.JVMMetricReportService.collect:input_type -> skywalking.v3.JVMMetricCollection
+ 9, // 9: skywalking.v3.JVMMetricReportService.collect:output_type -> skywalking.v3.Commands
+ 9, // [9:10] is the sub-list for method output_type
+ 8, // [8:9] 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_language_agent_JVMMetric_proto_init() }
+func file_language_agent_JVMMetric_proto_init() {
+ if File_language_agent_JVMMetric_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_language_agent_JVMMetric_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*JVMMetricCollection); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_JVMMetric_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*JVMMetric); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_JVMMetric_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Memory); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_JVMMetric_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MemoryPool); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_JVMMetric_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GC); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_JVMMetric_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Thread); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_language_agent_JVMMetric_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_language_agent_JVMMetric_proto_goTypes,
+ DependencyIndexes: file_language_agent_JVMMetric_proto_depIdxs,
+ EnumInfos: file_language_agent_JVMMetric_proto_enumTypes,
+ MessageInfos: file_language_agent_JVMMetric_proto_msgTypes,
+ }.Build()
+ File_language_agent_JVMMetric_proto = out.File
+ file_language_agent_JVMMetric_proto_rawDesc = nil
+ file_language_agent_JVMMetric_proto_goTypes = nil
+ file_language_agent_JVMMetric_proto_depIdxs = nil
+}
diff --git a/language/agent/v3/JVMMetric_grpc.pb.go b/language/agent/v3/JVMMetric_grpc.pb.go
new file mode 100644
index 0000000..7ee6b52
--- /dev/null
+++ b/language/agent/v3/JVMMetric_grpc.pb.go
@@ -0,0 +1,103 @@
+// 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/network/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
+
+// JVMMetricReportServiceClient is the client API for JVMMetricReportService 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 JVMMetricReportServiceClient interface {
+ Collect(ctx context.Context, in *JVMMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type jVMMetricReportServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewJVMMetricReportServiceClient(cc grpc.ClientConnInterface) JVMMetricReportServiceClient {
+ return &jVMMetricReportServiceClient{cc}
+}
+
+func (c *jVMMetricReportServiceClient) Collect(ctx context.Context, in *JVMMetricCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.JVMMetricReportService/collect", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// JVMMetricReportServiceServer is the server API for JVMMetricReportService service.
+// All implementations must embed UnimplementedJVMMetricReportServiceServer
+// for forward compatibility
+type JVMMetricReportServiceServer interface {
+ Collect(context.Context, *JVMMetricCollection) (*v3.Commands, error)
+ mustEmbedUnimplementedJVMMetricReportServiceServer()
+}
+
+// UnimplementedJVMMetricReportServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedJVMMetricReportServiceServer struct {
+}
+
+func (UnimplementedJVMMetricReportServiceServer) Collect(context.Context, *JVMMetricCollection) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedJVMMetricReportServiceServer) mustEmbedUnimplementedJVMMetricReportServiceServer() {
+}
+
+// UnsafeJVMMetricReportServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to JVMMetricReportServiceServer will
+// result in compilation errors.
+type UnsafeJVMMetricReportServiceServer interface {
+ mustEmbedUnimplementedJVMMetricReportServiceServer()
+}
+
+func RegisterJVMMetricReportServiceServer(s grpc.ServiceRegistrar, srv JVMMetricReportServiceServer) {
+ s.RegisterService(&JVMMetricReportService_ServiceDesc, srv)
+}
+
+func _JVMMetricReportService_Collect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(JVMMetricCollection)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(JVMMetricReportServiceServer).Collect(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.JVMMetricReportService/collect",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(JVMMetricReportServiceServer).Collect(ctx, req.(*JVMMetricCollection))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// JVMMetricReportService_ServiceDesc is the grpc.ServiceDesc for JVMMetricReportService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var JVMMetricReportService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.JVMMetricReportService",
+ HandlerType: (*JVMMetricReportServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "collect",
+ Handler: _JVMMetricReportService_Collect_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "language-agent/JVMMetric.proto",
+}
diff --git a/language/agent/v3/Meter.pb.go b/language/agent/v3/Meter.pb.go
new file mode 100644
index 0000000..a916cc1
--- /dev/null
+++ b/language/agent/v3/Meter.pb.go
@@ -0,0 +1,652 @@
+//
+// 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: language-agent/Meter.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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)
+)
+
+// Label of the meter
+type Label struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *Label) Reset() {
+ *x = Label{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Label) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Label) ProtoMessage() {}
+
+func (x *Label) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 Label.ProtoReflect.Descriptor instead.
+func (*Label) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Label) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Label) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+
+// The histogram element definition. It includes the bucket lower boundary and the count in the bucket.
+type MeterBucketValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The value represents the min value of the bucket,
+ // the upper boundary is determined by next MeterBucketValue$bucket,
+ // if it doesn't exist, the upper boundary is positive infinity.
+ // Also, could use Int32.MIN_VALUE to represent negative infinity.
+ Bucket float64 `protobuf:"fixed64,1,opt,name=bucket,proto3" json:"bucket,omitempty"`
+ Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
+}
+
+func (x *MeterBucketValue) Reset() {
+ *x = MeterBucketValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeterBucketValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterBucketValue) ProtoMessage() {}
+
+func (x *MeterBucketValue) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 MeterBucketValue.ProtoReflect.Descriptor instead.
+func (*MeterBucketValue) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *MeterBucketValue) GetBucket() float64 {
+ if x != nil {
+ return x.Bucket
+ }
+ return 0
+}
+
+func (x *MeterBucketValue) GetCount() int64 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+
+// Meter single value
+type MeterSingleValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Meter name
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Labels
+ Labels []*Label `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
+ // Single value
+ Value float64 `protobuf:"fixed64,3,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *MeterSingleValue) Reset() {
+ *x = MeterSingleValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeterSingleValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterSingleValue) ProtoMessage() {}
+
+func (x *MeterSingleValue) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 MeterSingleValue.ProtoReflect.Descriptor instead.
+func (*MeterSingleValue) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *MeterSingleValue) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *MeterSingleValue) GetLabels() []*Label {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *MeterSingleValue) GetValue() float64 {
+ if x != nil {
+ return x.Value
+ }
+ return 0
+}
+
+// Histogram
+type MeterHistogram struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Meter name
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Labels
+ Labels []*Label `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"`
+ // Customize the buckets
+ Values []*MeterBucketValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *MeterHistogram) Reset() {
+ *x = MeterHistogram{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeterHistogram) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterHistogram) ProtoMessage() {}
+
+func (x *MeterHistogram) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 MeterHistogram.ProtoReflect.Descriptor instead.
+func (*MeterHistogram) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *MeterHistogram) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *MeterHistogram) GetLabels() []*Label {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *MeterHistogram) GetValues() []*MeterBucketValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+// Single meter data, if the same metrics have a different label, they will separate.
+type MeterData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Meter data could be a single value or histogram.
+ //
+ // Types that are assignable to Metric:
+ // *MeterData_SingleValue
+ // *MeterData_Histogram
+ Metric isMeterData_Metric `protobuf_oneof:"metric"`
+ // Service name, be set value in the first element in the stream-call.
+ Service string `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
+ // Service instance name, be set value in the first element in the stream-call.
+ ServiceInstance string `protobuf:"bytes,4,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ // Meter data report time, be set value in the first element in the stream-call.
+ Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+}
+
+func (x *MeterData) Reset() {
+ *x = MeterData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeterData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterData) ProtoMessage() {}
+
+func (x *MeterData) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 MeterData.ProtoReflect.Descriptor instead.
+func (*MeterData) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{4}
+}
+
+func (m *MeterData) GetMetric() isMeterData_Metric {
+ if m != nil {
+ return m.Metric
+ }
+ return nil
+}
+
+func (x *MeterData) GetSingleValue() *MeterSingleValue {
+ if x, ok := x.GetMetric().(*MeterData_SingleValue); ok {
+ return x.SingleValue
+ }
+ return nil
+}
+
+func (x *MeterData) GetHistogram() *MeterHistogram {
+ if x, ok := x.GetMetric().(*MeterData_Histogram); ok {
+ return x.Histogram
+ }
+ return nil
+}
+
+func (x *MeterData) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *MeterData) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *MeterData) GetTimestamp() int64 {
+ if x != nil {
+ return x.Timestamp
+ }
+ return 0
+}
+
+type isMeterData_Metric interface {
+ isMeterData_Metric()
+}
+
+type MeterData_SingleValue struct {
+ SingleValue *MeterSingleValue `protobuf:"bytes,1,opt,name=singleValue,proto3,oneof"`
+}
+
+type MeterData_Histogram struct {
+ Histogram *MeterHistogram `protobuf:"bytes,2,opt,name=histogram,proto3,oneof"`
+}
+
+func (*MeterData_SingleValue) isMeterData_Metric() {}
+
+func (*MeterData_Histogram) isMeterData_Metric() {}
+
+type MeterDataCollection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ MeterData []*MeterData `protobuf:"bytes,1,rep,name=meterData,proto3" json:"meterData,omitempty"`
+}
+
+func (x *MeterDataCollection) Reset() {
+ *x = MeterDataCollection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Meter_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeterDataCollection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterDataCollection) ProtoMessage() {}
+
+func (x *MeterDataCollection) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Meter_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 MeterDataCollection.ProtoReflect.Descriptor instead.
+func (*MeterDataCollection) Descriptor() ([]byte, []int) {
+ return file_language_agent_Meter_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *MeterDataCollection) GetMeterData() []*MeterData {
+ if x != nil {
+ return x.MeterData
+ }
+ return nil
+}
+
+var File_language_agent_Meter_proto protoreflect.FileDescriptor
+
+var file_language_agent_Meter_proto_rawDesc = []byte{
+ 0x0a, 0x1a, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x31, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x22, 0x40, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x75, 0x63, 0x6b,
+ 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x69,
+ 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a,
+ 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x61,
+ 0x62, 0x65, 0x6c, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x67, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
+ 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
+ 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x06,
+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x75, 0x63, 0x6b,
+ 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22,
+ 0xfb, 0x01, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a,
+ 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f,
+ 0x67, 0x72, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61,
+ 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x4d, 0x0a,
+ 0x13, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74,
+ 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74,
+ 0x61, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x32, 0x56, 0x0a, 0x12,
+ 0x4d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65,
+ 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 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, 0x28, 0x01, 0x42, 0x5d, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
+ 0x67, 0x65, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x76, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_language_agent_Meter_proto_rawDescOnce sync.Once
+ file_language_agent_Meter_proto_rawDescData = file_language_agent_Meter_proto_rawDesc
+)
+
+func file_language_agent_Meter_proto_rawDescGZIP() []byte {
+ file_language_agent_Meter_proto_rawDescOnce.Do(func() {
+ file_language_agent_Meter_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_Meter_proto_rawDescData)
+ })
+ return file_language_agent_Meter_proto_rawDescData
+}
+
+var file_language_agent_Meter_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_language_agent_Meter_proto_goTypes = []interface{}{
+ (*Label)(nil), // 0: skywalking.v3.Label
+ (*MeterBucketValue)(nil), // 1: skywalking.v3.MeterBucketValue
+ (*MeterSingleValue)(nil), // 2: skywalking.v3.MeterSingleValue
+ (*MeterHistogram)(nil), // 3: skywalking.v3.MeterHistogram
+ (*MeterData)(nil), // 4: skywalking.v3.MeterData
+ (*MeterDataCollection)(nil), // 5: skywalking.v3.MeterDataCollection
+ (*v3.Commands)(nil), // 6: skywalking.v3.Commands
+}
+var file_language_agent_Meter_proto_depIdxs = []int32{
+ 0, // 0: skywalking.v3.MeterSingleValue.labels:type_name -> skywalking.v3.Label
+ 0, // 1: skywalking.v3.MeterHistogram.labels:type_name -> skywalking.v3.Label
+ 1, // 2: skywalking.v3.MeterHistogram.values:type_name -> skywalking.v3.MeterBucketValue
+ 2, // 3: skywalking.v3.MeterData.singleValue:type_name -> skywalking.v3.MeterSingleValue
+ 3, // 4: skywalking.v3.MeterData.histogram:type_name -> skywalking.v3.MeterHistogram
+ 4, // 5: skywalking.v3.MeterDataCollection.meterData:type_name -> skywalking.v3.MeterData
+ 4, // 6: skywalking.v3.MeterReportService.collect:input_type -> skywalking.v3.MeterData
+ 6, // 7: skywalking.v3.MeterReportService.collect:output_type -> skywalking.v3.Commands
+ 7, // [7:8] is the sub-list for method output_type
+ 6, // [6:7] is the sub-list for method input_type
+ 6, // [6:6] is the sub-list for extension type_name
+ 6, // [6:6] is the sub-list for extension extendee
+ 0, // [0:6] is the sub-list for field type_name
+}
+
+func init() { file_language_agent_Meter_proto_init() }
+func file_language_agent_Meter_proto_init() {
+ if File_language_agent_Meter_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_language_agent_Meter_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Label); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeterBucketValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeterSingleValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeterHistogram); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeterData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeterDataCollection); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_language_agent_Meter_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*MeterData_SingleValue)(nil),
+ (*MeterData_Histogram)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_language_agent_Meter_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_language_agent_Meter_proto_goTypes,
+ DependencyIndexes: file_language_agent_Meter_proto_depIdxs,
+ MessageInfos: file_language_agent_Meter_proto_msgTypes,
+ }.Build()
+ File_language_agent_Meter_proto = out.File
+ file_language_agent_Meter_proto_rawDesc = nil
+ file_language_agent_Meter_proto_goTypes = nil
+ file_language_agent_Meter_proto_depIdxs = nil
+}
diff --git a/language/agent/v3/Meter_grpc.pb.go b/language/agent/v3/Meter_grpc.pb.go
new file mode 100644
index 0000000..29d86a9
--- /dev/null
+++ b/language/agent/v3/Meter_grpc.pb.go
@@ -0,0 +1,138 @@
+// 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/network/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
+
+// MeterReportServiceClient is the client API for MeterReportService 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 MeterReportServiceClient interface {
+ // Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
+ Collect(ctx context.Context, opts ...grpc.CallOption) (MeterReportService_CollectClient, error)
+}
+
+type meterReportServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewMeterReportServiceClient(cc grpc.ClientConnInterface) MeterReportServiceClient {
+ return &meterReportServiceClient{cc}
+}
+
+func (c *meterReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (MeterReportService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &MeterReportService_ServiceDesc.Streams[0], "/skywalking.v3.MeterReportService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &meterReportServiceCollectClient{stream}
+ return x, nil
+}
+
+type MeterReportService_CollectClient interface {
+ Send(*MeterData) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type meterReportServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *meterReportServiceCollectClient) Send(m *MeterData) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *meterReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// MeterReportServiceServer is the server API for MeterReportService service.
+// All implementations must embed UnimplementedMeterReportServiceServer
+// for forward compatibility
+type MeterReportServiceServer interface {
+ // Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
+ Collect(MeterReportService_CollectServer) error
+ mustEmbedUnimplementedMeterReportServiceServer()
+}
+
+// UnimplementedMeterReportServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedMeterReportServiceServer struct {
+}
+
+func (UnimplementedMeterReportServiceServer) Collect(MeterReportService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedMeterReportServiceServer) mustEmbedUnimplementedMeterReportServiceServer() {}
+
+// UnsafeMeterReportServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to MeterReportServiceServer will
+// result in compilation errors.
+type UnsafeMeterReportServiceServer interface {
+ mustEmbedUnimplementedMeterReportServiceServer()
+}
+
+func RegisterMeterReportServiceServer(s grpc.ServiceRegistrar, srv MeterReportServiceServer) {
+ s.RegisterService(&MeterReportService_ServiceDesc, srv)
+}
+
+func _MeterReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(MeterReportServiceServer).Collect(&meterReportServiceCollectServer{stream})
+}
+
+type MeterReportService_CollectServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*MeterData, error)
+ grpc.ServerStream
+}
+
+type meterReportServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *meterReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *meterReportServiceCollectServer) Recv() (*MeterData, error) {
+ m := new(MeterData)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// MeterReportService_ServiceDesc is the grpc.ServiceDesc for MeterReportService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var MeterReportService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.MeterReportService",
+ HandlerType: (*MeterReportServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _MeterReportService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "language-agent/Meter.proto",
+}
diff --git a/language/agent/v3/Tracing.pb.go b/language/agent/v3/Tracing.pb.go
new file mode 100644
index 0000000..be0c6f3
--- /dev/null
+++ b/language/agent/v3/Tracing.pb.go
@@ -0,0 +1,1062 @@
+//
+// 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: language-agent/Tracing.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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)
+)
+
+// Map to the type of span
+type SpanType int32
+
+const (
+ // Server side of RPC. Consumer side of MQ.
+ SpanType_Entry SpanType = 0
+ // Client side of RPC. Producer side of MQ.
+ SpanType_Exit SpanType = 1
+ // A common local code execution.
+ SpanType_Local SpanType = 2
+)
+
+// Enum value maps for SpanType.
+var (
+ SpanType_name = map[int32]string{
+ 0: "Entry",
+ 1: "Exit",
+ 2: "Local",
+ }
+ SpanType_value = map[string]int32{
+ "Entry": 0,
+ "Exit": 1,
+ "Local": 2,
+ }
+)
+
+func (x SpanType) Enum() *SpanType {
+ p := new(SpanType)
+ *p = x
+ return p
+}
+
+func (x SpanType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SpanType) Descriptor() protoreflect.EnumDescriptor {
+ return file_language_agent_Tracing_proto_enumTypes[0].Descriptor()
+}
+
+func (SpanType) Type() protoreflect.EnumType {
+ return &file_language_agent_Tracing_proto_enumTypes[0]
+}
+
+func (x SpanType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SpanType.Descriptor instead.
+func (SpanType) EnumDescriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{0}
+}
+
+// Type of the reference
+type RefType int32
+
+const (
+ // Map to the reference targeting the segment in another OS process.
+ RefType_CrossProcess RefType = 0
+ // Map to the reference targeting the segment in the same process of the current one, just across thread.
+ // This is only used when the coding language has the thread concept.
+ RefType_CrossThread RefType = 1
+)
+
+// Enum value maps for RefType.
+var (
+ RefType_name = map[int32]string{
+ 0: "CrossProcess",
+ 1: "CrossThread",
+ }
+ RefType_value = map[string]int32{
+ "CrossProcess": 0,
+ "CrossThread": 1,
+ }
+)
+
+func (x RefType) Enum() *RefType {
+ p := new(RefType)
+ *p = x
+ return p
+}
+
+func (x RefType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (RefType) Descriptor() protoreflect.EnumDescriptor {
+ return file_language_agent_Tracing_proto_enumTypes[1].Descriptor()
+}
+
+func (RefType) Type() protoreflect.EnumType {
+ return &file_language_agent_Tracing_proto_enumTypes[1]
+}
+
+func (x RefType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use RefType.Descriptor instead.
+func (RefType) EnumDescriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{1}
+}
+
+// Map to the layer of span
+type SpanLayer int32
+
+const (
+ // Unknown layer. Could be anything.
+ SpanLayer_Unknown SpanLayer = 0
+ // A database layer, used in tracing the database client component.
+ SpanLayer_Database SpanLayer = 1
+ // A RPC layer, used in both client and server sides of RPC component.
+ SpanLayer_RPCFramework SpanLayer = 2
+ // HTTP is a more specific RPCFramework.
+ SpanLayer_Http SpanLayer = 3
+ // A MQ layer, used in both producer and consuer sides of the MQ component.
+ SpanLayer_MQ SpanLayer = 4
+ // A cache layer, used in tracing the cache client component.
+ SpanLayer_Cache SpanLayer = 5
+)
+
+// Enum value maps for SpanLayer.
+var (
+ SpanLayer_name = map[int32]string{
+ 0: "Unknown",
+ 1: "Database",
+ 2: "RPCFramework",
+ 3: "Http",
+ 4: "MQ",
+ 5: "Cache",
+ }
+ SpanLayer_value = map[string]int32{
+ "Unknown": 0,
+ "Database": 1,
+ "RPCFramework": 2,
+ "Http": 3,
+ "MQ": 4,
+ "Cache": 5,
+ }
+)
+
+func (x SpanLayer) Enum() *SpanLayer {
+ p := new(SpanLayer)
+ *p = x
+ return p
+}
+
+func (x SpanLayer) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SpanLayer) Descriptor() protoreflect.EnumDescriptor {
+ return file_language_agent_Tracing_proto_enumTypes[2].Descriptor()
+}
+
+func (SpanLayer) Type() protoreflect.EnumType {
+ return &file_language_agent_Tracing_proto_enumTypes[2]
+}
+
+func (x SpanLayer) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SpanLayer.Descriptor instead.
+func (SpanLayer) EnumDescriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{2}
+}
+
+// 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.
+type SegmentObject struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A string id represents the whole trace.
+ TraceId string `protobuf:"bytes,1,opt,name=traceId,proto3" json:"traceId,omitempty"`
+ // A unique id represents this segment. Other segments could use this id to reference as a child segment.
+ TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
+ // Span collections included in this segment.
+ Spans []*SpanObject `protobuf:"bytes,3,rep,name=spans,proto3" json:"spans,omitempty"`
+ // **Service**. Represents a set/group of workloads which provide the same behaviours for incoming requests.
+ //
+ // The logic name represents the service. This would show as a separate node in the topology.
+ // The metrics analyzed from the spans, would be aggregated for this entity as the service level.
+ Service string `protobuf:"bytes,4,opt,name=service,proto3" json:"service,omitempty"`
+ // **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it
+ // doesn't need to be a single OS process, however, if you are using instrument agents, an instance is actually a real OS process.
+ //
+ // The logic name represents the service instance. This would show as a separate node in the instance relationship.
+ // The metrics analyzed from the spans, would be aggregated for this entity as the service instance level.
+ ServiceInstance string `protobuf:"bytes,5,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ // Whether the segment includes all tracked spans.
+ // In the production environment tracked, some tasks could include too many spans for one request context, such as a batch update for a cache, or an async job.
+ // The agent/SDK could optimize or ignore some tracked spans for better performance.
+ // In this case, the value should be flagged as TRUE.
+ IsSizeLimited bool `protobuf:"varint,6,opt,name=isSizeLimited,proto3" json:"isSizeLimited,omitempty"`
+}
+
+func (x *SegmentObject) Reset() {
+ *x = SegmentObject{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SegmentObject) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SegmentObject) ProtoMessage() {}
+
+func (x *SegmentObject) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 SegmentObject.ProtoReflect.Descriptor instead.
+func (*SegmentObject) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *SegmentObject) GetTraceId() string {
+ if x != nil {
+ return x.TraceId
+ }
+ return ""
+}
+
+func (x *SegmentObject) GetTraceSegmentId() string {
+ if x != nil {
+ return x.TraceSegmentId
+ }
+ return ""
+}
+
+func (x *SegmentObject) GetSpans() []*SpanObject {
+ if x != nil {
+ return x.Spans
+ }
+ return nil
+}
+
+func (x *SegmentObject) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *SegmentObject) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *SegmentObject) GetIsSizeLimited() bool {
+ if x != nil {
+ return x.IsSizeLimited
+ }
+ return false
+}
+
+// Segment reference represents the link between two existing segment.
+type SegmentReference struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Represent the reference type. It could be across thread or across process.
+ // Across process means there is a downstream RPC call for this.
+ // Typically, refType == CrossProcess means SpanObject#spanType = entry.
+ RefType RefType `protobuf:"varint,1,opt,name=refType,proto3,enum=skywalking.v3.RefType" json:"refType,omitempty"`
+ // A string id represents the whole trace.
+ TraceId string `protobuf:"bytes,2,opt,name=traceId,proto3" json:"traceId,omitempty"`
+ // Another segment id as the parent.
+ ParentTraceSegmentId string `protobuf:"bytes,3,opt,name=parentTraceSegmentId,proto3" json:"parentTraceSegmentId,omitempty"`
+ // The span id in the parent trace segment.
+ ParentSpanId int32 `protobuf:"varint,4,opt,name=parentSpanId,proto3" json:"parentSpanId,omitempty"`
+ // The service logic name of the parent segment.
+ // If refType == CrossThread, this name is as same as the trace segment.
+ ParentService string `protobuf:"bytes,5,opt,name=parentService,proto3" json:"parentService,omitempty"`
+ // The service logic name instance of the parent segment.
+ // If refType == CrossThread, this name is as same as the trace segment.
+ ParentServiceInstance string `protobuf:"bytes,6,opt,name=parentServiceInstance,proto3" json:"parentServiceInstance,omitempty"`
+ // The endpoint name of the parent segment.
+ // **Endpoint**. A path in a service for incoming requests, such as an HTTP URI path or a gRPC service class + method signature.
+ // In a trace segment, the endpoint name is the name of first entry span.
+ ParentEndpoint string `protobuf:"bytes,7,opt,name=parentEndpoint,proto3" json:"parentEndpoint,omitempty"`
+ // The network address, including ip/hostname and port, which is used in the client side.
+ // Such as Client --> use 127.0.11.8:913 -> Server
+ // then, in the reference of entry span reported by Server, the value of this field is 127.0.11.8:913.
+ // This plays the important role in the SkyWalking STAM(Streaming Topology Analysis Method)
+ // For more details, read https://wu-sheng.github.io/STAM/
+ NetworkAddressUsedAtPeer string `protobuf:"bytes,8,opt,name=networkAddressUsedAtPeer,proto3" json:"networkAddressUsedAtPeer,omitempty"`
+}
+
+func (x *SegmentReference) Reset() {
+ *x = SegmentReference{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SegmentReference) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SegmentReference) ProtoMessage() {}
+
+func (x *SegmentReference) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 SegmentReference.ProtoReflect.Descriptor instead.
+func (*SegmentReference) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *SegmentReference) GetRefType() RefType {
+ if x != nil {
+ return x.RefType
+ }
+ return RefType_CrossProcess
+}
+
+func (x *SegmentReference) GetTraceId() string {
+ if x != nil {
+ return x.TraceId
+ }
+ return ""
+}
+
+func (x *SegmentReference) GetParentTraceSegmentId() string {
+ if x != nil {
+ return x.ParentTraceSegmentId
+ }
+ return ""
+}
+
+func (x *SegmentReference) GetParentSpanId() int32 {
+ if x != nil {
+ return x.ParentSpanId
+ }
+ return 0
+}
+
+func (x *SegmentReference) GetParentService() string {
+ if x != nil {
+ return x.ParentService
+ }
+ return ""
+}
+
+func (x *SegmentReference) GetParentServiceInstance() string {
+ if x != nil {
+ return x.ParentServiceInstance
+ }
+ return ""
+}
+
+func (x *SegmentReference) GetParentEndpoint() string {
+ if x != nil {
+ return x.ParentEndpoint
+ }
+ return ""
+}
+
+func (x *SegmentReference) GetNetworkAddressUsedAtPeer() string {
+ if x != nil {
+ return x.NetworkAddressUsedAtPeer
+ }
+ return ""
+}
+
+// Span represents a execution unit in the system, with duration and many other attributes.
+// Span could be a method, a RPC, MQ message produce or consume.
+// In the practice, the span should be added when it is really necessary, to avoid payload overhead.
+// We recommend to creating spans in across process(client/server of RPC/MQ) and across thread cases only.
+type SpanObject struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The number id of the span. Should be unique in the whole segment.
+ // Starting at 0.
+ SpanId int32 `protobuf:"varint,1,opt,name=spanId,proto3" json:"spanId,omitempty"`
+ // The number id of the parent span in the whole segment.
+ // -1 represents no parent span.
+ // Also, be known as the root/first span of the segment.
+ ParentSpanId int32 `protobuf:"varint,2,opt,name=parentSpanId,proto3" json:"parentSpanId,omitempty"`
+ // Start timestamp in milliseconds of this span,
+ // measured between the current time and midnight, January 1, 1970 UTC.
+ StartTime int64 `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"`
+ // End timestamp in milliseconds of this span,
+ // measured between the current time and midnight, January 1, 1970 UTC.
+ EndTime int64 `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"`
+ // <Optional>
+ // In the across thread and across process, these references targeting the parent segments.
+ // The references usually have only one element, but in batch consumer case, such as in MQ or async batch process, it could be multiple.
+ Refs []*SegmentReference `protobuf:"bytes,5,rep,name=refs,proto3" json:"refs,omitempty"`
+ // A logic name represents this span.
+ //
+ // We don't recommend to include the parameter, such as HTTP request parameters, as a part of the operation, especially this is the name of the entry span.
+ // All statistic for the endpoints are aggregated base on this name. Those parameters should be added in the tags if necessary.
+ // If in some cases, it have to be a part of the operation name,
+ // users should use the Group Parameterized Endpoints capability at the backend to get the meaningful metrics.
+ // Read https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/endpoint-grouping-rules.md
+ OperationName string `protobuf:"bytes,6,opt,name=operationName,proto3" json:"operationName,omitempty"`
+ // Remote address of the peer in RPC/MQ case.
+ // This is required when spanType = Exit, as it is a part of the SkyWalking STAM(Streaming Topology Analysis Method).
+ // For more details, read https://wu-sheng.github.io/STAM/
+ Peer string `protobuf:"bytes,7,opt,name=peer,proto3" json:"peer,omitempty"`
+ // Span type represents the role in the RPC context.
+ SpanType SpanType `protobuf:"varint,8,opt,name=spanType,proto3,enum=skywalking.v3.SpanType" json:"spanType,omitempty"`
+ // Span layer represent the component tech stack, related to the network tech.
+ SpanLayer SpanLayer `protobuf:"varint,9,opt,name=spanLayer,proto3,enum=skywalking.v3.SpanLayer" json:"spanLayer,omitempty"`
+ // Component id is a predefinited number id in the SkyWalking.
+ // It represents the framework, tech stack used by this tracked span, such as Spring.
+ // All IDs are defined in the https://github.com/apache/skywalking/blob/master/oap-server/server-bootstrap/src/main/resources/component-libraries.yml
+ // Send a pull request if you want to add languages, components or mapping defintions,
+ // all public components could be accepted.
+ // Follow this doc for more details, https://github.com/apache/skywalking/blob/master/docs/en/guides/Component-library-settings.md
+ ComponentId int32 `protobuf:"varint,10,opt,name=componentId,proto3" json:"componentId,omitempty"`
+ // The status of the span. False means the tracked execution ends in the unexpected status.
+ // This affects the successful rate statistic in the backend.
+ // Exception or error code happened in the tracked process doesn't mean isError == true, the implementations of agent plugin and tracing SDK make the final decision.
+ IsError bool `protobuf:"varint,11,opt,name=isError,proto3" json:"isError,omitempty"`
+ // String key, String value pair.
+ // Tags provides more informance, includes parameters.
+ //
+ // In the OAP backend analysis, some special tag or tag combination could provide other advanced features.
+ // https://github.com/apache/skywalking/blob/master/docs/en/guides/Java-Plugin-Development-Guide.md#special-span-tags
+ Tags []*v3.KeyStringValuePair `protobuf:"bytes,12,rep,name=tags,proto3" json:"tags,omitempty"`
+ // String key, String value pair with an accurate timestamp.
+ // Logging some events happening in the context of the span duration.
+ Logs []*Log `protobuf:"bytes,13,rep,name=logs,proto3" json:"logs,omitempty"`
+ // Force the backend don't do analysis, if the value is TRUE.
+ // The backend has its own configurations to follow or override this.
+ //
+ // Use this mostly because the agent/SDK could know more context of the service role.
+ SkipAnalysis bool `protobuf:"varint,14,opt,name=skipAnalysis,proto3" json:"skipAnalysis,omitempty"`
+}
+
+func (x *SpanObject) Reset() {
+ *x = SpanObject{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SpanObject) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SpanObject) ProtoMessage() {}
+
+func (x *SpanObject) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 SpanObject.ProtoReflect.Descriptor instead.
+func (*SpanObject) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *SpanObject) GetSpanId() int32 {
+ if x != nil {
+ return x.SpanId
+ }
+ return 0
+}
+
+func (x *SpanObject) GetParentSpanId() int32 {
+ if x != nil {
+ return x.ParentSpanId
+ }
+ return 0
+}
+
+func (x *SpanObject) GetStartTime() int64 {
+ if x != nil {
+ return x.StartTime
+ }
+ return 0
+}
+
+func (x *SpanObject) GetEndTime() int64 {
+ if x != nil {
+ return x.EndTime
+ }
+ return 0
+}
+
+func (x *SpanObject) GetRefs() []*SegmentReference {
+ if x != nil {
+ return x.Refs
+ }
+ return nil
+}
+
+func (x *SpanObject) GetOperationName() string {
+ if x != nil {
+ return x.OperationName
+ }
+ return ""
+}
+
+func (x *SpanObject) GetPeer() string {
+ if x != nil {
+ return x.Peer
+ }
+ return ""
+}
+
+func (x *SpanObject) GetSpanType() SpanType {
+ if x != nil {
+ return x.SpanType
+ }
+ return SpanType_Entry
+}
+
+func (x *SpanObject) GetSpanLayer() SpanLayer {
+ if x != nil {
+ return x.SpanLayer
+ }
+ return SpanLayer_Unknown
+}
+
+func (x *SpanObject) GetComponentId() int32 {
+ if x != nil {
+ return x.ComponentId
+ }
+ return 0
+}
+
+func (x *SpanObject) GetIsError() bool {
+ if x != nil {
+ return x.IsError
+ }
+ return false
+}
+
+func (x *SpanObject) GetTags() []*v3.KeyStringValuePair {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *SpanObject) GetLogs() []*Log {
+ if x != nil {
+ return x.Logs
+ }
+ return nil
+}
+
+func (x *SpanObject) GetSkipAnalysis() bool {
+ if x != nil {
+ return x.SkipAnalysis
+ }
+ return false
+}
+
+type Log struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The timestamp in milliseconds of this event.,
+ // measured between the current time and midnight, January 1, 1970 UTC.
+ Time int64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
+ // String key, String value pair.
+ Data []*v3.KeyStringValuePair `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *Log) Reset() {
+ *x = Log{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Log) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Log) ProtoMessage() {}
+
+func (x *Log) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 Log.ProtoReflect.Descriptor instead.
+func (*Log) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *Log) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *Log) GetData() []*v3.KeyStringValuePair {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+// A ID could be represented by multiple string sections.
+type ID struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *ID) Reset() {
+ *x = ID{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ID) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ID) ProtoMessage() {}
+
+func (x *ID) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 ID.ProtoReflect.Descriptor instead.
+func (*ID) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ID) GetId() []string {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+
+// The segment collections for trace report in batch and sync mode.
+type SegmentCollection struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Segments []*SegmentObject `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
+}
+
+func (x *SegmentCollection) Reset() {
+ *x = SegmentCollection{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_language_agent_Tracing_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SegmentCollection) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SegmentCollection) ProtoMessage() {}
+
+func (x *SegmentCollection) ProtoReflect() protoreflect.Message {
+ mi := &file_language_agent_Tracing_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 SegmentCollection.ProtoReflect.Descriptor instead.
+func (*SegmentCollection) Descriptor() ([]byte, []int) {
+ return file_language_agent_Tracing_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *SegmentCollection) GetSegments() []*SegmentObject {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+var File_language_agent_Tracing_proto protoreflect.FileDescriptor
+
+var file_language_agent_Tracing_proto_rawDesc = []byte{
+ 0x0a, 0x1c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
+ 0x2f, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0xec, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x26,
+ 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67,
+ 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
+ 0x52, 0x05, 0x73, 0x70, 0x61, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69,
+ 0x73, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65,
+ 0x64, 0x22, 0xf6, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66,
+ 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x07, 0x72, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65,
+ 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67,
+ 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x53, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x12, 0x34, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a,
+ 0x0a, 0x18, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x55, 0x73, 0x65, 0x64, 0x41, 0x74, 0x50, 0x65, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x18, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x55, 0x73, 0x65, 0x64, 0x41, 0x74, 0x50, 0x65, 0x65, 0x72, 0x22, 0x9b, 0x04, 0x0a, 0x0a, 0x53,
+ 0x70, 0x61, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70, 0x61,
+ 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e, 0x49,
+ 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x49,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53,
+ 0x70, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
+ 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a,
+ 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d,
+ 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x72, 0x65,
+ 0x66, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
+ 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08,
+ 0x73, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17,
+ 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53,
+ 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x09,
+ 0x73, 0x70, 0x61, 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d,
+ 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
+ 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69,
+ 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x04,
+ 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x6b, 0x79,
+ 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04,
+ 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x41, 0x6e, 0x61, 0x6c,
+ 0x79, 0x73, 0x69, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70,
+ 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x22, 0x50, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12,
+ 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74,
+ 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
+ 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x14, 0x0a, 0x02, 0x49, 0x44,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x22, 0x4d, 0x0a, 0x11, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f,
+ 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2a,
+ 0x2a, 0x0a, 0x08, 0x53, 0x70, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x78, 0x69, 0x74, 0x10, 0x01,
+ 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x02, 0x2a, 0x2c, 0x0a, 0x07, 0x52,
+ 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x50,
+ 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x72, 0x6f, 0x73,
+ 0x73, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x10, 0x01, 0x2a, 0x55, 0x0a, 0x09, 0x53, 0x70, 0x61,
+ 0x6e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
+ 0x6e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10,
+ 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x50, 0x43, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72,
+ 0x6b, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x10, 0x03, 0x12, 0x06, 0x0a,
+ 0x02, 0x4d, 0x51, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x61, 0x63, 0x68, 0x65, 0x10, 0x05,
+ 0x32, 0xaf, 0x01, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
+ 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44,
+ 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, 0x73, 0x6b, 0x79, 0x77,
+ 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 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, 0x28, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49,
+ 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x20, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x7d, 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+ 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x24, 0x73, 0x6b, 0x79,
+ 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f,
+ 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2f, 0x76,
+ 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56,
+ 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_language_agent_Tracing_proto_rawDescOnce sync.Once
+ file_language_agent_Tracing_proto_rawDescData = file_language_agent_Tracing_proto_rawDesc
+)
+
+func file_language_agent_Tracing_proto_rawDescGZIP() []byte {
+ file_language_agent_Tracing_proto_rawDescOnce.Do(func() {
+ file_language_agent_Tracing_proto_rawDescData = protoimpl.X.CompressGZIP(file_language_agent_Tracing_proto_rawDescData)
+ })
+ return file_language_agent_Tracing_proto_rawDescData
+}
+
+var file_language_agent_Tracing_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_language_agent_Tracing_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_language_agent_Tracing_proto_goTypes = []interface{}{
+ (SpanType)(0), // 0: skywalking.v3.SpanType
+ (RefType)(0), // 1: skywalking.v3.RefType
+ (SpanLayer)(0), // 2: skywalking.v3.SpanLayer
+ (*SegmentObject)(nil), // 3: skywalking.v3.SegmentObject
+ (*SegmentReference)(nil), // 4: skywalking.v3.SegmentReference
+ (*SpanObject)(nil), // 5: skywalking.v3.SpanObject
+ (*Log)(nil), // 6: skywalking.v3.Log
+ (*ID)(nil), // 7: skywalking.v3.ID
+ (*SegmentCollection)(nil), // 8: skywalking.v3.SegmentCollection
+ (*v3.KeyStringValuePair)(nil), // 9: skywalking.v3.KeyStringValuePair
+ (*v3.Commands)(nil), // 10: skywalking.v3.Commands
+}
+var file_language_agent_Tracing_proto_depIdxs = []int32{
+ 5, // 0: skywalking.v3.SegmentObject.spans:type_name -> skywalking.v3.SpanObject
+ 1, // 1: skywalking.v3.SegmentReference.refType:type_name -> skywalking.v3.RefType
+ 4, // 2: skywalking.v3.SpanObject.refs:type_name -> skywalking.v3.SegmentReference
+ 0, // 3: skywalking.v3.SpanObject.spanType:type_name -> skywalking.v3.SpanType
+ 2, // 4: skywalking.v3.SpanObject.spanLayer:type_name -> skywalking.v3.SpanLayer
+ 9, // 5: skywalking.v3.SpanObject.tags:type_name -> skywalking.v3.KeyStringValuePair
+ 6, // 6: skywalking.v3.SpanObject.logs:type_name -> skywalking.v3.Log
+ 9, // 7: skywalking.v3.Log.data:type_name -> skywalking.v3.KeyStringValuePair
+ 3, // 8: skywalking.v3.SegmentCollection.segments:type_name -> skywalking.v3.SegmentObject
+ 3, // 9: skywalking.v3.TraceSegmentReportService.collect:input_type -> skywalking.v3.SegmentObject
+ 8, // 10: skywalking.v3.TraceSegmentReportService.collectInSync:input_type -> skywalking.v3.SegmentCollection
+ 10, // 11: skywalking.v3.TraceSegmentReportService.collect:output_type -> skywalking.v3.Commands
+ 10, // 12: skywalking.v3.TraceSegmentReportService.collectInSync:output_type -> skywalking.v3.Commands
+ 11, // [11:13] is the sub-list for method output_type
+ 9, // [9:11] is the sub-list for method input_type
+ 9, // [9:9] is the sub-list for extension type_name
+ 9, // [9:9] is the sub-list for extension extendee
+ 0, // [0:9] is the sub-list for field type_name
+}
+
+func init() { file_language_agent_Tracing_proto_init() }
+func file_language_agent_Tracing_proto_init() {
+ if File_language_agent_Tracing_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_language_agent_Tracing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SegmentObject); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Tracing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SegmentReference); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Tracing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SpanObject); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Tracing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Log); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Tracing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ID); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_language_agent_Tracing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SegmentCollection); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_language_agent_Tracing_proto_rawDesc,
+ NumEnums: 3,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_language_agent_Tracing_proto_goTypes,
+ DependencyIndexes: file_language_agent_Tracing_proto_depIdxs,
+ EnumInfos: file_language_agent_Tracing_proto_enumTypes,
+ MessageInfos: file_language_agent_Tracing_proto_msgTypes,
+ }.Build()
+ File_language_agent_Tracing_proto = out.File
+ file_language_agent_Tracing_proto_rawDesc = nil
+ file_language_agent_Tracing_proto_goTypes = nil
+ file_language_agent_Tracing_proto_depIdxs = nil
+}
diff --git a/language/agent/v3/Tracing_grpc.pb.go b/language/agent/v3/Tracing_grpc.pb.go
new file mode 100644
index 0000000..b6c5534
--- /dev/null
+++ b/language/agent/v3/Tracing_grpc.pb.go
@@ -0,0 +1,188 @@
+// 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/network/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
+
+// TraceSegmentReportServiceClient is the client API for TraceSegmentReportService 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 TraceSegmentReportServiceClient interface {
+ // Recommended trace segment report channel.
+ // gRPC streaming provides better performance.
+ // All language agents should choose this.
+ Collect(ctx context.Context, opts ...grpc.CallOption) (TraceSegmentReportService_CollectClient, error)
+ // An alternative for trace report by using gRPC unary
+ // This is provided for some 3rd-party integration, if and only if they prefer the unary mode somehow.
+ // The performance of SkyWalking OAP server would be very similar with streaming report,
+ // the performance of the network and client side are affected
+ CollectInSync(ctx context.Context, in *SegmentCollection, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type traceSegmentReportServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewTraceSegmentReportServiceClient(cc grpc.ClientConnInterface) TraceSegmentReportServiceClient {
+ return &traceSegmentReportServiceClient{cc}
+}
+
+func (c *traceSegmentReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (TraceSegmentReportService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &TraceSegmentReportService_ServiceDesc.Streams[0], "/skywalking.v3.TraceSegmentReportService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &traceSegmentReportServiceCollectClient{stream}
+ return x, nil
+}
+
+type TraceSegmentReportService_CollectClient interface {
+ Send(*SegmentObject) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type traceSegmentReportServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *traceSegmentReportServiceCollectClient) Send(m *SegmentObject) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *traceSegmentReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *traceSegmentReportServiceClient) CollectInSync(ctx context.Context, in *SegmentCollection, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.TraceSegmentReportService/collectInSync", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// TraceSegmentReportServiceServer is the server API for TraceSegmentReportService service.
+// All implementations must embed UnimplementedTraceSegmentReportServiceServer
+// for forward compatibility
+type TraceSegmentReportServiceServer interface {
+ // Recommended trace segment report channel.
+ // gRPC streaming provides better performance.
+ // All language agents should choose this.
+ Collect(TraceSegmentReportService_CollectServer) error
+ // An alternative for trace report by using gRPC unary
+ // This is provided for some 3rd-party integration, if and only if they prefer the unary mode somehow.
+ // The performance of SkyWalking OAP server would be very similar with streaming report,
+ // the performance of the network and client side are affected
+ CollectInSync(context.Context, *SegmentCollection) (*v3.Commands, error)
+ mustEmbedUnimplementedTraceSegmentReportServiceServer()
+}
+
+// UnimplementedTraceSegmentReportServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedTraceSegmentReportServiceServer struct {
+}
+
+func (UnimplementedTraceSegmentReportServiceServer) Collect(TraceSegmentReportService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedTraceSegmentReportServiceServer) CollectInSync(context.Context, *SegmentCollection) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CollectInSync not implemented")
+}
+func (UnimplementedTraceSegmentReportServiceServer) mustEmbedUnimplementedTraceSegmentReportServiceServer() {
+}
+
+// UnsafeTraceSegmentReportServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to TraceSegmentReportServiceServer will
+// result in compilation errors.
+type UnsafeTraceSegmentReportServiceServer interface {
+ mustEmbedUnimplementedTraceSegmentReportServiceServer()
+}
+
+func RegisterTraceSegmentReportServiceServer(s grpc.ServiceRegistrar, srv TraceSegmentReportServiceServer) {
+ s.RegisterService(&TraceSegmentReportService_ServiceDesc, srv)
+}
+
+func _TraceSegmentReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(TraceSegmentReportServiceServer).Collect(&traceSegmentReportServiceCollectServer{stream})
+}
+
+type TraceSegmentReportService_CollectServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*SegmentObject, error)
+ grpc.ServerStream
+}
+
+type traceSegmentReportServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *traceSegmentReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *traceSegmentReportServiceCollectServer) Recv() (*SegmentObject, error) {
+ m := new(SegmentObject)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _TraceSegmentReportService_CollectInSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SegmentCollection)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TraceSegmentReportServiceServer).CollectInSync(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.TraceSegmentReportService/collectInSync",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TraceSegmentReportServiceServer).CollectInSync(ctx, req.(*SegmentCollection))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// TraceSegmentReportService_ServiceDesc is the grpc.ServiceDesc for TraceSegmentReportService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var TraceSegmentReportService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.TraceSegmentReportService",
+ HandlerType: (*TraceSegmentReportServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "collectInSync",
+ Handler: _TraceSegmentReportService_CollectInSync_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _TraceSegmentReportService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "language-agent/Tracing.proto",
+}
diff --git a/language/profile/v3/Profile.pb.go b/language/profile/v3/Profile.pb.go
new file mode 100644
index 0000000..9798e91
--- /dev/null
+++ b/language/profile/v3/Profile.pb.go
@@ -0,0 +1,479 @@
+//
+// 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: profile/Profile.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 ProfileTaskCommandQuery struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // current sniffer information
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ // last command timestamp
+ LastCommandTime int64 `protobuf:"varint,3,opt,name=lastCommandTime,proto3" json:"lastCommandTime,omitempty"`
+}
+
+func (x *ProfileTaskCommandQuery) Reset() {
+ *x = ProfileTaskCommandQuery{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_profile_Profile_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProfileTaskCommandQuery) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProfileTaskCommandQuery) ProtoMessage() {}
+
+func (x *ProfileTaskCommandQuery) ProtoReflect() protoreflect.Message {
+ mi := &file_profile_Profile_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 ProfileTaskCommandQuery.ProtoReflect.Descriptor instead.
+func (*ProfileTaskCommandQuery) Descriptor() ([]byte, []int) {
+ return file_profile_Profile_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ProfileTaskCommandQuery) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *ProfileTaskCommandQuery) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *ProfileTaskCommandQuery) GetLastCommandTime() int64 {
+ if x != nil {
+ return x.LastCommandTime
+ }
+ return 0
+}
+
+// dumped thread snapshot
+type ThreadSnapshot struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // profile task id
+ TaskId string `protobuf:"bytes,1,opt,name=taskId,proto3" json:"taskId,omitempty"`
+ // dumped segment id
+ TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
+ // dump timestamp
+ Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"`
+ // snapshot dump sequence, start with zero
+ Sequence int32 `protobuf:"varint,4,opt,name=sequence,proto3" json:"sequence,omitempty"`
+ // snapshot stack
+ Stack *ThreadStack `protobuf:"bytes,5,opt,name=stack,proto3" json:"stack,omitempty"`
+}
+
+func (x *ThreadSnapshot) Reset() {
+ *x = ThreadSnapshot{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_profile_Profile_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ThreadSnapshot) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ThreadSnapshot) ProtoMessage() {}
+
+func (x *ThreadSnapshot) ProtoReflect() protoreflect.Message {
+ mi := &file_profile_Profile_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 ThreadSnapshot.ProtoReflect.Descriptor instead.
+func (*ThreadSnapshot) Descriptor() ([]byte, []int) {
+ return file_profile_Profile_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ThreadSnapshot) GetTaskId() string {
+ if x != nil {
+ return x.TaskId
+ }
+ return ""
+}
+
+func (x *ThreadSnapshot) GetTraceSegmentId() string {
+ if x != nil {
+ return x.TraceSegmentId
+ }
+ return ""
+}
+
+func (x *ThreadSnapshot) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
+func (x *ThreadSnapshot) GetSequence() int32 {
+ if x != nil {
+ return x.Sequence
+ }
+ return 0
+}
+
+func (x *ThreadSnapshot) GetStack() *ThreadStack {
+ if x != nil {
+ return x.Stack
+ }
+ return nil
+}
+
+type ThreadStack struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // stack code signature list
+ CodeSignatures []string `protobuf:"bytes,1,rep,name=codeSignatures,proto3" json:"codeSignatures,omitempty"`
+}
+
+func (x *ThreadStack) Reset() {
+ *x = ThreadStack{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_profile_Profile_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ThreadStack) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ThreadStack) ProtoMessage() {}
+
+func (x *ThreadStack) ProtoReflect() protoreflect.Message {
+ mi := &file_profile_Profile_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 ThreadStack.ProtoReflect.Descriptor instead.
+func (*ThreadStack) Descriptor() ([]byte, []int) {
+ return file_profile_Profile_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ThreadStack) GetCodeSignatures() []string {
+ if x != nil {
+ return x.CodeSignatures
+ }
+ return nil
+}
+
+// profile task finished report
+type ProfileTaskFinishReport struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // current sniffer information
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ // profile task
+ TaskId string `protobuf:"bytes,3,opt,name=taskId,proto3" json:"taskId,omitempty"`
+}
+
+func (x *ProfileTaskFinishReport) Reset() {
+ *x = ProfileTaskFinishReport{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_profile_Profile_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProfileTaskFinishReport) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProfileTaskFinishReport) ProtoMessage() {}
+
+func (x *ProfileTaskFinishReport) ProtoReflect() protoreflect.Message {
+ mi := &file_profile_Profile_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 ProfileTaskFinishReport.ProtoReflect.Descriptor instead.
+func (*ProfileTaskFinishReport) Descriptor() ([]byte, []int) {
+ return file_profile_Profile_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ProfileTaskFinishReport) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *ProfileTaskFinishReport) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *ProfileTaskFinishReport) GetTaskId() string {
+ if x != nil {
+ return x.TaskId
+ }
+ return ""
+}
+
+var File_profile_Profile_proto protoreflect.FileDescriptor
+
+var file_profile_Profile_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x17,
+ 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61,
+ 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c,
+ 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
+ 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x0e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
+ 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53,
+ 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
+ 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53, 0x74,
+ 0x61, 0x63, 0x6b, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0x35, 0x0a, 0x0b, 0x54, 0x68,
+ 0x72, 0x65, 0x61, 0x64, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x64,
+ 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
+ 0x73, 0x22, 0x75, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b,
+ 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x32, 0x90, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f,
+ 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x5b, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x50,
+ 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
+ 0x64, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x61, 0x6e, 0x64, 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, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
+ 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1d, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
+ 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x53,
+ 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 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, 0x28, 0x01, 0x12, 0x55, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61,
+ 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x26, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
+ 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
+ 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 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, 0x81, 0x01, 0x0a, 0x35,
+ 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, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69,
+ 0x6c, 0x65, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x26, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c, 0x61, 0x6e, 0x67,
+ 0x75, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x76, 0x33, 0xaa,
+ 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62,
+ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_profile_Profile_proto_rawDescOnce sync.Once
+ file_profile_Profile_proto_rawDescData = file_profile_Profile_proto_rawDesc
+)
+
+func file_profile_Profile_proto_rawDescGZIP() []byte {
+ file_profile_Profile_proto_rawDescOnce.Do(func() {
+ file_profile_Profile_proto_rawDescData = protoimpl.X.CompressGZIP(file_profile_Profile_proto_rawDescData)
+ })
+ return file_profile_Profile_proto_rawDescData
+}
+
+var file_profile_Profile_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_profile_Profile_proto_goTypes = []interface{}{
+ (*ProfileTaskCommandQuery)(nil), // 0: skywalking.v3.ProfileTaskCommandQuery
+ (*ThreadSnapshot)(nil), // 1: skywalking.v3.ThreadSnapshot
+ (*ThreadStack)(nil), // 2: skywalking.v3.ThreadStack
+ (*ProfileTaskFinishReport)(nil), // 3: skywalking.v3.ProfileTaskFinishReport
+ (*v3.Commands)(nil), // 4: skywalking.v3.Commands
+}
+var file_profile_Profile_proto_depIdxs = []int32{
+ 2, // 0: skywalking.v3.ThreadSnapshot.stack:type_name -> skywalking.v3.ThreadStack
+ 0, // 1: skywalking.v3.ProfileTask.getProfileTaskCommands:input_type -> skywalking.v3.ProfileTaskCommandQuery
+ 1, // 2: skywalking.v3.ProfileTask.collectSnapshot:input_type -> skywalking.v3.ThreadSnapshot
+ 3, // 3: skywalking.v3.ProfileTask.reportTaskFinish:input_type -> skywalking.v3.ProfileTaskFinishReport
+ 4, // 4: skywalking.v3.ProfileTask.getProfileTaskCommands:output_type -> skywalking.v3.Commands
+ 4, // 5: skywalking.v3.ProfileTask.collectSnapshot:output_type -> skywalking.v3.Commands
+ 4, // 6: skywalking.v3.ProfileTask.reportTaskFinish:output_type -> skywalking.v3.Commands
+ 4, // [4:7] is the sub-list for method output_type
+ 1, // [1:4] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_profile_Profile_proto_init() }
+func file_profile_Profile_proto_init() {
+ if File_profile_Profile_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_profile_Profile_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProfileTaskCommandQuery); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_profile_Profile_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ThreadSnapshot); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_profile_Profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ThreadStack); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_profile_Profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProfileTaskFinishReport); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_profile_Profile_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_profile_Profile_proto_goTypes,
+ DependencyIndexes: file_profile_Profile_proto_depIdxs,
+ MessageInfos: file_profile_Profile_proto_msgTypes,
+ }.Build()
+ File_profile_Profile_proto = out.File
+ file_profile_Profile_proto_rawDesc = nil
+ file_profile_Profile_proto_goTypes = nil
+ file_profile_Profile_proto_depIdxs = nil
+}
diff --git a/language/profile/v3/Profile_grpc.pb.go b/language/profile/v3/Profile_grpc.pb.go
new file mode 100644
index 0000000..3864da1
--- /dev/null
+++ b/language/profile/v3/Profile_grpc.pb.go
@@ -0,0 +1,215 @@
+// 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/network/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
+
+// ProfileTaskClient is the client API for ProfileTask 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 ProfileTaskClient interface {
+ // query all sniffer need to execute profile task commands
+ GetProfileTaskCommands(ctx context.Context, in *ProfileTaskCommandQuery, opts ...grpc.CallOption) (*v3.Commands, error)
+ // collect dumped thread snapshot
+ CollectSnapshot(ctx context.Context, opts ...grpc.CallOption) (ProfileTask_CollectSnapshotClient, error)
+ // report profiling task finished
+ ReportTaskFinish(ctx context.Context, in *ProfileTaskFinishReport, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type profileTaskClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewProfileTaskClient(cc grpc.ClientConnInterface) ProfileTaskClient {
+ return &profileTaskClient{cc}
+}
+
+func (c *profileTaskClient) GetProfileTaskCommands(ctx context.Context, in *ProfileTaskCommandQuery, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.ProfileTask/getProfileTaskCommands", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *profileTaskClient) CollectSnapshot(ctx context.Context, opts ...grpc.CallOption) (ProfileTask_CollectSnapshotClient, error) {
+ stream, err := c.cc.NewStream(ctx, &ProfileTask_ServiceDesc.Streams[0], "/skywalking.v3.ProfileTask/collectSnapshot", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &profileTaskCollectSnapshotClient{stream}
+ return x, nil
+}
+
+type ProfileTask_CollectSnapshotClient interface {
+ Send(*ThreadSnapshot) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type profileTaskCollectSnapshotClient struct {
+ grpc.ClientStream
+}
+
+func (x *profileTaskCollectSnapshotClient) Send(m *ThreadSnapshot) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *profileTaskCollectSnapshotClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *profileTaskClient) ReportTaskFinish(ctx context.Context, in *ProfileTaskFinishReport, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.ProfileTask/reportTaskFinish", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ProfileTaskServer is the server API for ProfileTask service.
+// All implementations must embed UnimplementedProfileTaskServer
+// for forward compatibility
+type ProfileTaskServer interface {
+ // query all sniffer need to execute profile task commands
+ GetProfileTaskCommands(context.Context, *ProfileTaskCommandQuery) (*v3.Commands, error)
+ // collect dumped thread snapshot
+ CollectSnapshot(ProfileTask_CollectSnapshotServer) error
+ // report profiling task finished
+ ReportTaskFinish(context.Context, *ProfileTaskFinishReport) (*v3.Commands, error)
+ mustEmbedUnimplementedProfileTaskServer()
+}
+
+// UnimplementedProfileTaskServer must be embedded to have forward compatible implementations.
+type UnimplementedProfileTaskServer struct {
+}
+
+func (UnimplementedProfileTaskServer) GetProfileTaskCommands(context.Context, *ProfileTaskCommandQuery) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetProfileTaskCommands not implemented")
+}
+func (UnimplementedProfileTaskServer) CollectSnapshot(ProfileTask_CollectSnapshotServer) error {
+ return status.Errorf(codes.Unimplemented, "method CollectSnapshot not implemented")
+}
+func (UnimplementedProfileTaskServer) ReportTaskFinish(context.Context, *ProfileTaskFinishReport) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ReportTaskFinish not implemented")
+}
+func (UnimplementedProfileTaskServer) mustEmbedUnimplementedProfileTaskServer() {}
+
+// UnsafeProfileTaskServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ProfileTaskServer will
+// result in compilation errors.
+type UnsafeProfileTaskServer interface {
+ mustEmbedUnimplementedProfileTaskServer()
+}
+
+func RegisterProfileTaskServer(s grpc.ServiceRegistrar, srv ProfileTaskServer) {
+ s.RegisterService(&ProfileTask_ServiceDesc, srv)
+}
+
+func _ProfileTask_GetProfileTaskCommands_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ProfileTaskCommandQuery)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProfileTaskServer).GetProfileTaskCommands(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.ProfileTask/getProfileTaskCommands",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProfileTaskServer).GetProfileTaskCommands(ctx, req.(*ProfileTaskCommandQuery))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ProfileTask_CollectSnapshot_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(ProfileTaskServer).CollectSnapshot(&profileTaskCollectSnapshotServer{stream})
+}
+
+type ProfileTask_CollectSnapshotServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*ThreadSnapshot, error)
+ grpc.ServerStream
+}
+
+type profileTaskCollectSnapshotServer struct {
+ grpc.ServerStream
+}
+
+func (x *profileTaskCollectSnapshotServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *profileTaskCollectSnapshotServer) Recv() (*ThreadSnapshot, error) {
+ m := new(ThreadSnapshot)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _ProfileTask_ReportTaskFinish_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ProfileTaskFinishReport)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ProfileTaskServer).ReportTaskFinish(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.ProfileTask/reportTaskFinish",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ProfileTaskServer).ReportTaskFinish(ctx, req.(*ProfileTaskFinishReport))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// ProfileTask_ServiceDesc is the grpc.ServiceDesc for ProfileTask service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ProfileTask_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.ProfileTask",
+ HandlerType: (*ProfileTaskServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "getProfileTaskCommands",
+ Handler: _ProfileTask_GetProfileTaskCommands_Handler,
+ },
+ {
+ MethodName: "reportTaskFinish",
+ Handler: _ProfileTask_ReportTaskFinish_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collectSnapshot",
+ Handler: _ProfileTask_CollectSnapshot_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "profile/Profile.proto",
+}
diff --git a/logging/v3/Logging.pb.go b/logging/v3/Logging.pb.go
new file mode 100644
index 0000000..68796b3
--- /dev/null
+++ b/logging/v3/Logging.pb.go
@@ -0,0 +1,748 @@
+//
+// 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: logging/Logging.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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)
+)
+
+// Log data is collected through file scratcher of agent.
+// Natively, Satellite provides various ways to collect logs.
+type LogData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // [Optional] The timestamp of the log, in millisecond.
+ // If not set, OAP server would use the received timestamp as log's timestamp, or relies on the OAP server analyzer.
+ Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ // [Required] **Service**. Represents a set/group of workloads which provide the same behaviours for incoming requests.
+ //
+ // The logic name represents the service. This would show as a separate node in the topology.
+ // The metrics analyzed from the spans, would be aggregated for this entity as the service level.
+ //
+ // If this is not the first element of the streaming, use the previous not-null name as the service name.
+ Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
+ // [Optional] **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it
+ // doesn't need to be a single OS process, however, if you are using instrument agents, an instance is actually a real OS process.
+ //
+ // The logic name represents the service instance. This would show as a separate node in the instance relationship.
+ // The metrics analyzed from the spans, would be aggregated for this entity as the service instance level.
+ ServiceInstance string `protobuf:"bytes,3,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ // [Optional] **Endpoint**. A path in a service for incoming requests, such as an HTTP URI path or a gRPC service class + method signature.
+ //
+ // The logic name represents the endpoint, which logs belong.
+ Endpoint string `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+ // [Required] The content of the log.
+ Body *LogDataBody `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
+ // [Optional] Logs with trace context
+ TraceContext *TraceContext `protobuf:"bytes,6,opt,name=traceContext,proto3" json:"traceContext,omitempty"`
+ // [Optional] The available tags. OAP server could provide search/analysis capabilities based on these.
+ Tags *LogTags `protobuf:"bytes,7,opt,name=tags,proto3" json:"tags,omitempty"`
+}
+
+func (x *LogData) Reset() {
+ *x = LogData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LogData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogData) ProtoMessage() {}
+
+func (x *LogData) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 LogData.ProtoReflect.Descriptor instead.
+func (*LogData) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *LogData) GetTimestamp() int64 {
+ if x != nil {
+ return x.Timestamp
+ }
+ return 0
+}
+
+func (x *LogData) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *LogData) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *LogData) GetEndpoint() string {
+ if x != nil {
+ return x.Endpoint
+ }
+ return ""
+}
+
+func (x *LogData) GetBody() *LogDataBody {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+
+func (x *LogData) GetTraceContext() *TraceContext {
+ if x != nil {
+ return x.TraceContext
+ }
+ return nil
+}
+
+func (x *LogData) GetTags() *LogTags {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+// The content of the log data
+type LogDataBody struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // A type to match analyzer(s) at the OAP server.
+ // The data could be analyzed at the client side, but could be partial
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ // Content with extendable format.
+ //
+ // Types that are assignable to Content:
+ // *LogDataBody_Text
+ // *LogDataBody_Json
+ // *LogDataBody_Yaml
+ Content isLogDataBody_Content `protobuf_oneof:"content"`
+}
+
+func (x *LogDataBody) Reset() {
+ *x = LogDataBody{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LogDataBody) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogDataBody) ProtoMessage() {}
+
+func (x *LogDataBody) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 LogDataBody.ProtoReflect.Descriptor instead.
+func (*LogDataBody) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *LogDataBody) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+func (m *LogDataBody) GetContent() isLogDataBody_Content {
+ if m != nil {
+ return m.Content
+ }
+ return nil
+}
+
+func (x *LogDataBody) GetText() *TextLog {
+ if x, ok := x.GetContent().(*LogDataBody_Text); ok {
+ return x.Text
+ }
+ return nil
+}
+
+func (x *LogDataBody) GetJson() *JSONLog {
+ if x, ok := x.GetContent().(*LogDataBody_Json); ok {
+ return x.Json
+ }
+ return nil
+}
+
+func (x *LogDataBody) GetYaml() *YAMLLog {
+ if x, ok := x.GetContent().(*LogDataBody_Yaml); ok {
+ return x.Yaml
+ }
+ return nil
+}
+
+type isLogDataBody_Content interface {
+ isLogDataBody_Content()
+}
+
+type LogDataBody_Text struct {
+ Text *TextLog `protobuf:"bytes,2,opt,name=text,proto3,oneof"`
+}
+
+type LogDataBody_Json struct {
+ Json *JSONLog `protobuf:"bytes,3,opt,name=json,proto3,oneof"`
+}
+
+type LogDataBody_Yaml struct {
+ Yaml *YAMLLog `protobuf:"bytes,4,opt,name=yaml,proto3,oneof"`
+}
+
+func (*LogDataBody_Text) isLogDataBody_Content() {}
+
+func (*LogDataBody_Json) isLogDataBody_Content() {}
+
+func (*LogDataBody_Yaml) isLogDataBody_Content() {}
+
+// Literal text log, typically requires regex or split mechanism to filter meaningful info.
+type TextLog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
+}
+
+func (x *TextLog) Reset() {
+ *x = TextLog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TextLog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TextLog) ProtoMessage() {}
+
+func (x *TextLog) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 TextLog.ProtoReflect.Descriptor instead.
+func (*TextLog) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *TextLog) GetText() string {
+ if x != nil {
+ return x.Text
+ }
+ return ""
+}
+
+// JSON formatted log. The json field represents the string that could be formatted as a JSON object.
+type JSONLog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Json string `protobuf:"bytes,1,opt,name=json,proto3" json:"json,omitempty"`
+}
+
+func (x *JSONLog) Reset() {
+ *x = JSONLog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *JSONLog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*JSONLog) ProtoMessage() {}
+
+func (x *JSONLog) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 JSONLog.ProtoReflect.Descriptor instead.
+func (*JSONLog) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *JSONLog) GetJson() string {
+ if x != nil {
+ return x.Json
+ }
+ return ""
+}
+
+// YAML formatted log. The yaml field represents the string that could be formatted as a YAML map.
+type YAMLLog struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Yaml string `protobuf:"bytes,1,opt,name=yaml,proto3" json:"yaml,omitempty"`
+}
+
+func (x *YAMLLog) Reset() {
+ *x = YAMLLog{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *YAMLLog) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*YAMLLog) ProtoMessage() {}
+
+func (x *YAMLLog) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 YAMLLog.ProtoReflect.Descriptor instead.
+func (*YAMLLog) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *YAMLLog) GetYaml() string {
+ if x != nil {
+ return x.Yaml
+ }
+ return ""
+}
+
+// Logs with trace context, represent agent system has injects context(IDs) into log text.
+type TraceContext struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // [Optional] A string id represents the whole trace.
+ TraceId string `protobuf:"bytes,1,opt,name=traceId,proto3" json:"traceId,omitempty"`
+ // [Optional] A unique id represents this segment. Other segments could use this id to reference as a child segment.
+ TraceSegmentId string `protobuf:"bytes,2,opt,name=traceSegmentId,proto3" json:"traceSegmentId,omitempty"`
+ // [Optional] The number id of the span. Should be unique in the whole segment.
+ // Starting at 0.
+ SpanId int32 `protobuf:"varint,3,opt,name=spanId,proto3" json:"spanId,omitempty"`
+}
+
+func (x *TraceContext) Reset() {
+ *x = TraceContext{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TraceContext) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TraceContext) ProtoMessage() {}
+
+func (x *TraceContext) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 TraceContext.ProtoReflect.Descriptor instead.
+func (*TraceContext) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *TraceContext) GetTraceId() string {
+ if x != nil {
+ return x.TraceId
+ }
+ return ""
+}
+
+func (x *TraceContext) GetTraceSegmentId() string {
+ if x != nil {
+ return x.TraceSegmentId
+ }
+ return ""
+}
+
+func (x *TraceContext) GetSpanId() int32 {
+ if x != nil {
+ return x.SpanId
+ }
+ return 0
+}
+
+type LogTags struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // String key, String value pair.
+ Data []*v3.KeyStringValuePair `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
+}
+
+func (x *LogTags) Reset() {
+ *x = LogTags{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_logging_Logging_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LogTags) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogTags) ProtoMessage() {}
+
+func (x *LogTags) ProtoReflect() protoreflect.Message {
+ mi := &file_logging_Logging_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 LogTags.ProtoReflect.Descriptor instead.
+func (*LogTags) Descriptor() ([]byte, []int) {
+ return file_logging_Logging_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *LogTags) GetData() []*v3.KeyStringValuePair {
+ if x != nil {
+ return x.Data
+ }
+ return nil
+}
+
+var File_logging_Logging_proto protoreflect.FileDescriptor
+
+var file_logging_Logging_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
+ 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0x02, 0x0a, 0x07,
+ 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
+ 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+ 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64,
+ 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64,
+ 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x52,
+ 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43,
+ 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61,
+ 0x67, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x42, 0x6f,
+ 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04,
+ 0x74, 0x65, 0x78, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
+ 0x76, 0x33, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x73,
+ 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
+ 0x2e, 0x59, 0x41, 0x4d, 0x4c, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c,
+ 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x54,
+ 0x65, 0x78, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x4a, 0x53,
+ 0x4f, 0x4e, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x1d, 0x0a, 0x07, 0x59, 0x41, 0x4d,
+ 0x4c, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x68, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65,
+ 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65,
+ 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x70,
+ 0x61, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x70, 0x61, 0x6e,
+ 0x49, 0x64, 0x22, 0x40, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x61, 0x67, 0x73, 0x12, 0x35, 0x0a,
+ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x6b,
+ 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x53,
+ 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04,
+ 0x64, 0x61, 0x74, 0x61, 0x32, 0x52, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c,
+ 0x65, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 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, 0x28, 0x01, 0x42, 0x6f, 0x0a, 0x2c, 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, 0x6c, 0x6f,
+ 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x50, 0x01, 0x5a, 0x1d, 0x73, 0x6b, 0x79, 0x77,
+ 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6c,
+ 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57,
+ 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_logging_Logging_proto_rawDescOnce sync.Once
+ file_logging_Logging_proto_rawDescData = file_logging_Logging_proto_rawDesc
+)
+
+func file_logging_Logging_proto_rawDescGZIP() []byte {
+ file_logging_Logging_proto_rawDescOnce.Do(func() {
+ file_logging_Logging_proto_rawDescData = protoimpl.X.CompressGZIP(file_logging_Logging_proto_rawDescData)
+ })
+ return file_logging_Logging_proto_rawDescData
+}
+
+var file_logging_Logging_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
+var file_logging_Logging_proto_goTypes = []interface{}{
+ (*LogData)(nil), // 0: skywalking.v3.LogData
+ (*LogDataBody)(nil), // 1: skywalking.v3.LogDataBody
+ (*TextLog)(nil), // 2: skywalking.v3.TextLog
+ (*JSONLog)(nil), // 3: skywalking.v3.JSONLog
+ (*YAMLLog)(nil), // 4: skywalking.v3.YAMLLog
+ (*TraceContext)(nil), // 5: skywalking.v3.TraceContext
+ (*LogTags)(nil), // 6: skywalking.v3.LogTags
+ (*v3.KeyStringValuePair)(nil), // 7: skywalking.v3.KeyStringValuePair
+ (*v3.Commands)(nil), // 8: skywalking.v3.Commands
+}
+var file_logging_Logging_proto_depIdxs = []int32{
+ 1, // 0: skywalking.v3.LogData.body:type_name -> skywalking.v3.LogDataBody
+ 5, // 1: skywalking.v3.LogData.traceContext:type_name -> skywalking.v3.TraceContext
+ 6, // 2: skywalking.v3.LogData.tags:type_name -> skywalking.v3.LogTags
+ 2, // 3: skywalking.v3.LogDataBody.text:type_name -> skywalking.v3.TextLog
+ 3, // 4: skywalking.v3.LogDataBody.json:type_name -> skywalking.v3.JSONLog
+ 4, // 5: skywalking.v3.LogDataBody.yaml:type_name -> skywalking.v3.YAMLLog
+ 7, // 6: skywalking.v3.LogTags.data:type_name -> skywalking.v3.KeyStringValuePair
+ 0, // 7: skywalking.v3.LogReportService.collect:input_type -> skywalking.v3.LogData
+ 8, // 8: skywalking.v3.LogReportService.collect:output_type -> skywalking.v3.Commands
+ 8, // [8:9] is the sub-list for method output_type
+ 7, // [7:8] is the sub-list for method input_type
+ 7, // [7:7] is the sub-list for extension type_name
+ 7, // [7:7] is the sub-list for extension extendee
+ 0, // [0:7] is the sub-list for field type_name
+}
+
+func init() { file_logging_Logging_proto_init() }
+func file_logging_Logging_proto_init() {
+ if File_logging_Logging_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_logging_Logging_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LogData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LogDataBody); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TextLog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*JSONLog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*YAMLLog); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TraceContext); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_logging_Logging_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LogTags); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_logging_Logging_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*LogDataBody_Text)(nil),
+ (*LogDataBody_Json)(nil),
+ (*LogDataBody_Yaml)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_logging_Logging_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 7,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_logging_Logging_proto_goTypes,
+ DependencyIndexes: file_logging_Logging_proto_depIdxs,
+ MessageInfos: file_logging_Logging_proto_msgTypes,
+ }.Build()
+ File_logging_Logging_proto = out.File
+ file_logging_Logging_proto_rawDesc = nil
+ file_logging_Logging_proto_goTypes = nil
+ file_logging_Logging_proto_depIdxs = nil
+}
diff --git a/logging/v3/Logging_grpc.pb.go b/logging/v3/Logging_grpc.pb.go
new file mode 100644
index 0000000..12167aa
--- /dev/null
+++ b/logging/v3/Logging_grpc.pb.go
@@ -0,0 +1,142 @@
+// 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/network/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
+
+// LogReportServiceClient is the client API for LogReportService 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 LogReportServiceClient interface {
+ // Recommend to report log data in a stream mode.
+ // The service/instance/endpoint of the log could share the previous value if they are not set.
+ // Reporting the logs of same service in the batch mode could reduce the network cost.
+ Collect(ctx context.Context, opts ...grpc.CallOption) (LogReportService_CollectClient, error)
+}
+
+type logReportServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewLogReportServiceClient(cc grpc.ClientConnInterface) LogReportServiceClient {
+ return &logReportServiceClient{cc}
+}
+
+func (c *logReportServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (LogReportService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &LogReportService_ServiceDesc.Streams[0], "/skywalking.v3.LogReportService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &logReportServiceCollectClient{stream}
+ return x, nil
+}
+
+type LogReportService_CollectClient interface {
+ Send(*LogData) error
+ CloseAndRecv() (*v3.Commands, error)
+ grpc.ClientStream
+}
+
+type logReportServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *logReportServiceCollectClient) Send(m *LogData) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *logReportServiceCollectClient) CloseAndRecv() (*v3.Commands, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(v3.Commands)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// LogReportServiceServer is the server API for LogReportService service.
+// All implementations must embed UnimplementedLogReportServiceServer
+// for forward compatibility
+type LogReportServiceServer interface {
+ // Recommend to report log data in a stream mode.
+ // The service/instance/endpoint of the log could share the previous value if they are not set.
+ // Reporting the logs of same service in the batch mode could reduce the network cost.
+ Collect(LogReportService_CollectServer) error
+ mustEmbedUnimplementedLogReportServiceServer()
+}
+
+// UnimplementedLogReportServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedLogReportServiceServer struct {
+}
+
+func (UnimplementedLogReportServiceServer) Collect(LogReportService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedLogReportServiceServer) mustEmbedUnimplementedLogReportServiceServer() {}
+
+// UnsafeLogReportServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to LogReportServiceServer will
+// result in compilation errors.
+type UnsafeLogReportServiceServer interface {
+ mustEmbedUnimplementedLogReportServiceServer()
+}
+
+func RegisterLogReportServiceServer(s grpc.ServiceRegistrar, srv LogReportServiceServer) {
+ s.RegisterService(&LogReportService_ServiceDesc, srv)
+}
+
+func _LogReportService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(LogReportServiceServer).Collect(&logReportServiceCollectServer{stream})
+}
+
+type LogReportService_CollectServer interface {
+ SendAndClose(*v3.Commands) error
+ Recv() (*LogData, error)
+ grpc.ServerStream
+}
+
+type logReportServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *logReportServiceCollectServer) SendAndClose(m *v3.Commands) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *logReportServiceCollectServer) Recv() (*LogData, error) {
+ m := new(LogData)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// LogReportService_ServiceDesc is the grpc.ServiceDesc for LogReportService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var LogReportService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.LogReportService",
+ HandlerType: (*LogReportServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _LogReportService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "logging/Logging.proto",
+}
diff --git a/management/v3/Management.pb.go b/management/v3/Management.pb.go
new file mode 100644
index 0000000..7feb466
--- /dev/null
+++ b/management/v3/Management.pb.go
@@ -0,0 +1,284 @@
+//
+// 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: management/Management.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 InstanceProperties struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+ Properties []*v3.KeyStringValuePair `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"`
+}
+
+func (x *InstanceProperties) Reset() {
+ *x = InstanceProperties{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_management_Management_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *InstanceProperties) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InstanceProperties) ProtoMessage() {}
+
+func (x *InstanceProperties) ProtoReflect() protoreflect.Message {
+ mi := &file_management_Management_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 InstanceProperties.ProtoReflect.Descriptor instead.
+func (*InstanceProperties) Descriptor() ([]byte, []int) {
+ return file_management_Management_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *InstanceProperties) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *InstanceProperties) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+func (x *InstanceProperties) GetProperties() []*v3.KeyStringValuePair {
+ if x != nil {
+ return x.Properties
+ }
+ return nil
+}
+
+type InstancePingPkg struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
+ ServiceInstance string `protobuf:"bytes,2,opt,name=serviceInstance,proto3" json:"serviceInstance,omitempty"`
+}
+
+func (x *InstancePingPkg) Reset() {
+ *x = InstancePingPkg{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_management_Management_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *InstancePingPkg) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InstancePingPkg) ProtoMessage() {}
+
+func (x *InstancePingPkg) ProtoReflect() protoreflect.Message {
+ mi := &file_management_Management_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 InstancePingPkg.ProtoReflect.Descriptor instead.
+func (*InstancePingPkg) Descriptor() ([]byte, []int) {
+ return file_management_Management_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *InstancePingPkg) GetService() string {
+ if x != nil {
+ return x.Service
+ }
+ return ""
+}
+
+func (x *InstancePingPkg) GetServiceInstance() string {
+ if x != nil {
+ return x.ServiceInstance
+ }
+ return ""
+}
+
+var File_management_Management_proto protoreflect.FileDescriptor
+
+var file_management_Management_proto_rawDesc = []byte{
+ 0x0a, 0x1b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x4d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
+ 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0a,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33,
+ 0x2e, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50,
+ 0x61, 0x69, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,
+ 0x55, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x67, 0x50,
+ 0x6b, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x32, 0xb5, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x18,
+ 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72,
+ 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61,
+ 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+ 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 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, 0x46, 0x0a, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c,
+ 0x69, 0x76, 0x65, 0x12, 0x1e, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x67,
+ 0x50, 0x6b, 0x67, 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, 0x75,
+ 0x0a, 0x2f, 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, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76,
+ 0x33, 0x50, 0x01, 0x5a, 0x20, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2f,
+ 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+ 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_management_Management_proto_rawDescOnce sync.Once
+ file_management_Management_proto_rawDescData = file_management_Management_proto_rawDesc
+)
+
+func file_management_Management_proto_rawDescGZIP() []byte {
+ file_management_Management_proto_rawDescOnce.Do(func() {
+ file_management_Management_proto_rawDescData = protoimpl.X.CompressGZIP(file_management_Management_proto_rawDescData)
+ })
+ return file_management_Management_proto_rawDescData
+}
+
+var file_management_Management_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_management_Management_proto_goTypes = []interface{}{
+ (*InstanceProperties)(nil), // 0: skywalking.v3.InstanceProperties
+ (*InstancePingPkg)(nil), // 1: skywalking.v3.InstancePingPkg
+ (*v3.KeyStringValuePair)(nil), // 2: skywalking.v3.KeyStringValuePair
+ (*v3.Commands)(nil), // 3: skywalking.v3.Commands
+}
+var file_management_Management_proto_depIdxs = []int32{
+ 2, // 0: skywalking.v3.InstanceProperties.properties:type_name -> skywalking.v3.KeyStringValuePair
+ 0, // 1: skywalking.v3.ManagementService.reportInstanceProperties:input_type -> skywalking.v3.InstanceProperties
+ 1, // 2: skywalking.v3.ManagementService.keepAlive:input_type -> skywalking.v3.InstancePingPkg
+ 3, // 3: skywalking.v3.ManagementService.reportInstanceProperties:output_type -> skywalking.v3.Commands
+ 3, // 4: skywalking.v3.ManagementService.keepAlive:output_type -> skywalking.v3.Commands
+ 3, // [3:5] is the sub-list for method output_type
+ 1, // [1:3] is the sub-list for method input_type
+ 1, // [1:1] is the sub-list for extension type_name
+ 1, // [1:1] is the sub-list for extension extendee
+ 0, // [0:1] is the sub-list for field type_name
+}
+
+func init() { file_management_Management_proto_init() }
+func file_management_Management_proto_init() {
+ if File_management_Management_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_management_Management_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InstanceProperties); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_management_Management_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InstancePingPkg); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_management_Management_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_management_Management_proto_goTypes,
+ DependencyIndexes: file_management_Management_proto_depIdxs,
+ MessageInfos: file_management_Management_proto_msgTypes,
+ }.Build()
+ File_management_Management_proto = out.File
+ file_management_Management_proto_rawDesc = nil
+ file_management_Management_proto_goTypes = nil
+ file_management_Management_proto_depIdxs = nil
+}
diff --git a/management/v3/Management_grpc.pb.go b/management/v3/Management_grpc.pb.go
new file mode 100644
index 0000000..bc63c0f
--- /dev/null
+++ b/management/v3/Management_grpc.pb.go
@@ -0,0 +1,146 @@
+// 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/network/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
+
+// ManagementServiceClient is the client API for ManagementService 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 ManagementServiceClient interface {
+ // Report custom properties of a service instance.
+ ReportInstanceProperties(ctx context.Context, in *InstanceProperties, opts ...grpc.CallOption) (*v3.Commands, error)
+ // Keep the instance alive in the backend analysis.
+ // Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
+ // Otherwise, it is duplicated.
+ KeepAlive(ctx context.Context, in *InstancePingPkg, opts ...grpc.CallOption) (*v3.Commands, error)
+}
+
+type managementServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewManagementServiceClient(cc grpc.ClientConnInterface) ManagementServiceClient {
+ return &managementServiceClient{cc}
+}
+
+func (c *managementServiceClient) ReportInstanceProperties(ctx context.Context, in *InstanceProperties, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.ManagementService/reportInstanceProperties", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *managementServiceClient) KeepAlive(ctx context.Context, in *InstancePingPkg, opts ...grpc.CallOption) (*v3.Commands, error) {
+ out := new(v3.Commands)
+ err := c.cc.Invoke(ctx, "/skywalking.v3.ManagementService/keepAlive", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// ManagementServiceServer is the server API for ManagementService service.
+// All implementations must embed UnimplementedManagementServiceServer
+// for forward compatibility
+type ManagementServiceServer interface {
+ // Report custom properties of a service instance.
+ ReportInstanceProperties(context.Context, *InstanceProperties) (*v3.Commands, error)
+ // Keep the instance alive in the backend analysis.
+ // Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
+ // Otherwise, it is duplicated.
+ KeepAlive(context.Context, *InstancePingPkg) (*v3.Commands, error)
+ mustEmbedUnimplementedManagementServiceServer()
+}
+
+// UnimplementedManagementServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedManagementServiceServer struct {
+}
+
+func (UnimplementedManagementServiceServer) ReportInstanceProperties(context.Context, *InstanceProperties) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ReportInstanceProperties not implemented")
+}
+func (UnimplementedManagementServiceServer) KeepAlive(context.Context, *InstancePingPkg) (*v3.Commands, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method KeepAlive not implemented")
+}
+func (UnimplementedManagementServiceServer) mustEmbedUnimplementedManagementServiceServer() {}
+
+// UnsafeManagementServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ManagementServiceServer will
+// result in compilation errors.
+type UnsafeManagementServiceServer interface {
+ mustEmbedUnimplementedManagementServiceServer()
+}
+
+func RegisterManagementServiceServer(s grpc.ServiceRegistrar, srv ManagementServiceServer) {
+ s.RegisterService(&ManagementService_ServiceDesc, srv)
+}
+
+func _ManagementService_ReportInstanceProperties_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(InstanceProperties)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ManagementServiceServer).ReportInstanceProperties(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.ManagementService/reportInstanceProperties",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ManagementServiceServer).ReportInstanceProperties(ctx, req.(*InstanceProperties))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _ManagementService_KeepAlive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(InstancePingPkg)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ManagementServiceServer).KeepAlive(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/skywalking.v3.ManagementService/keepAlive",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ManagementServiceServer).KeepAlive(ctx, req.(*InstancePingPkg))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// ManagementService_ServiceDesc is the grpc.ServiceDesc for ManagementService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ManagementService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.ManagementService",
+ HandlerType: (*ManagementServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "reportInstanceProperties",
+ Handler: _ManagementService_ReportInstanceProperties_Handler,
+ },
+ {
+ MethodName: "keepAlive",
+ Handler: _ManagementService_KeepAlive_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "management/Management.proto",
+}
diff --git a/scripts/protoc.sh b/scripts/protoc.sh
new file mode 100755
index 0000000..cb6cb6c
--- /dev/null
+++ b/scripts/protoc.sh
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+PROTOC_VERSION=3.14.0
+
+BASEDIR=$(dirname "$0")/..
+TEMPDIR="$BASEDIR"/temp
+BINDIR="$TEMPDIR"/bin
+
+mkdir -p "$TEMPDIR" || exit 1
+mkdir -p "$BINDIR" || exit 1
+
+if [[ -f "$BINDIR"/protoc ]]; then
+ "$BINDIR"/protoc "$@"
+ exit $?
+fi
+
+if uname -s | grep MINGW64_NT || uname -s | grep CYGWIN_NT-6.1; then
+ PROTOC_ZIP=protoc-"$PROTOC_VERSION"-win64.zip
+elif uname -s | grep Darwin; then
+ PROTOC_ZIP=protoc-"$PROTOC_VERSION"-osx-x86_64.zip
+elif uname -s | grep Linux; then
+ PROTOC_ZIP=protoc-"$PROTOC_VERSION"-linux-x86_64.zip
+else
+ echo "Sorry, we cannot install protoc for you, please visit https://github.com/protocolbuffers/protobuf and install protoc by yourself."
+fi
+
+curl -sL https://github.com/protocolbuffers/protobuf/releases/download/v"$PROTOC_VERSION"/$PROTOC_ZIP -o "$TEMPDIR"/$PROTOC_ZIP
+unzip -o "$TEMPDIR"/$PROTOC_ZIP -d "$BINDIR"/.. bin/protoc > /dev/null 2>&1 || true
+unzip -o "$TEMPDIR"/$PROTOC_ZIP -d "$BINDIR"/.. bin/protoc.exe > /dev/null 2>&1 || true
+
+mv "$BINDIR"/protoc.exe "$BINDIR"/protoc > /dev/null 2>&1 || true
+
+chmod +x "$BINDIR"/protoc
+
+rm -f "$TEMPDIR"/$PROTOC_ZIP
+
+"$BINDIR"/protoc "$@"
diff --git a/scripts/update.sh b/scripts/update.sh
new file mode 100644
index 0000000..918af25
--- /dev/null
+++ b/scripts/update.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+# 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.
+
+set -e
+
+BASEDIR=$(dirname "$0")/..
+TEMPDIR="$BASEDIR"/temp
+
+. "$BASEDIR"/dependencies.sh
+
+if [[ ! -d "$TEMPDIR" ]]; then
+ mkdir -p "$TEMPDIR"
+else
+ rm -rf "${TEMPDIR:?}"/*
+fi
+
+curl -sLo "$TEMPDIR"/collect-protocol.tgz https://github.com/apache/skywalking-data-collect-protocol/archive/"${COLLECT_PROTOCOL_SHA}".tar.gz
+
+if [[ ! -d "$TEMPDIR"/collect-protocol ]]; then
+ mkdir "$TEMPDIR"/collect-protocol
+else
+ rm -rf "$TEMPDIR"/collect-protocol/*
+fi
+
+tar -zxf "$TEMPDIR"/collect-protocol.tgz -C "$TEMPDIR"/collect-protocol --strip 1
+
+find "$TEMPDIR"/collect-protocol -name "*Compat.proto" -exec rm {} \;
+
+rm -rf "$BASEDIR"/{agent,common,event,language,logging,management,servicemesh}
+
+go get -u google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
+go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0
+
+"$BASEDIR"/scripts/protoc.sh \
+ --proto_path="$TEMPDIR"/collect-protocol \
+ --go_out="$BASEDIR" \
+ --go-grpc_out="$BASEDIR" \
+ "$TEMPDIR"/collect-protocol/*/*.proto
+
+cp -R "$BASEDIR"/skywalking/network/* "$BASEDIR"/ && rm -rf "$BASEDIR"/skywalking
+
+go mod tidy
diff --git a/servicemesh/v3/service-mesh-compat.pb.go b/servicemesh/v3/service-mesh-compat.pb.go
new file mode 100644
index 0000000..369323d
--- /dev/null
+++ b/servicemesh/v3/service-mesh-compat.pb.go
@@ -0,0 +1,103 @@
+//
+// 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
+// service-mesh-probe/service-mesh-compat.proto is a deprecated file.
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+)
+
+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)
+)
+
+var File_service_mesh_probe_service_mesh_compat_proto protoreflect.FileDescriptor
+
+var file_service_mesh_probe_service_mesh_compat_proto_rawDesc = []byte{
+ 0x0a, 0x2c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2d, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73,
+ 0x68, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2d, 0x70, 0x72, 0x6f,
+ 0x62, 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x6f, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x73,
+ 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x1a, 0x22,
+ 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d,
+ 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x22, 0x00, 0x28, 0x01, 0x42, 0x81, 0x01, 0x0a, 0x37, 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, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x70,
+ 0x61, 0x74, 0x50, 0x01, 0x5a, 0x21, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x33, 0xb8, 0x01, 0x01, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79,
+ 0x57, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var file_service_mesh_probe_service_mesh_compat_proto_goTypes = []interface{}{
+ (*ServiceMeshMetric)(nil), // 0: skywalking.v3.ServiceMeshMetric
+ (*MeshProbeDownstream)(nil), // 1: skywalking.v3.MeshProbeDownstream
+}
+var file_service_mesh_probe_service_mesh_compat_proto_depIdxs = []int32{
+ 0, // 0: ServiceMeshMetricService.collect:input_type -> skywalking.v3.ServiceMeshMetric
+ 1, // 1: ServiceMeshMetricService.collect:output_type -> skywalking.v3.MeshProbeDownstream
+ 1, // [1:2] is the sub-list for method output_type
+ 0, // [0:1] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_service_mesh_probe_service_mesh_compat_proto_init() }
+func file_service_mesh_probe_service_mesh_compat_proto_init() {
+ if File_service_mesh_probe_service_mesh_compat_proto != nil {
+ return
+ }
+ file_service_mesh_probe_service_mesh_proto_init()
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_service_mesh_probe_service_mesh_compat_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 0,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_service_mesh_probe_service_mesh_compat_proto_goTypes,
+ DependencyIndexes: file_service_mesh_probe_service_mesh_compat_proto_depIdxs,
+ }.Build()
+ File_service_mesh_probe_service_mesh_compat_proto = out.File
+ file_service_mesh_probe_service_mesh_compat_proto_rawDesc = nil
+ file_service_mesh_probe_service_mesh_compat_proto_goTypes = nil
+ file_service_mesh_probe_service_mesh_compat_proto_depIdxs = nil
+}
diff --git a/servicemesh/v3/service-mesh-compat_grpc.pb.go b/servicemesh/v3/service-mesh-compat_grpc.pb.go
new file mode 100644
index 0000000..180718b
--- /dev/null
+++ b/servicemesh/v3/service-mesh-compat_grpc.pb.go
@@ -0,0 +1,136 @@
+// 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"
+)
+
+// 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
+
+// ServiceMeshMetricServiceClient is the client API for ServiceMeshMetricService 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 ServiceMeshMetricServiceClient interface {
+ Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error)
+}
+
+type serviceMeshMetricServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewServiceMeshMetricServiceClient(cc grpc.ClientConnInterface) ServiceMeshMetricServiceClient {
+ return &serviceMeshMetricServiceClient{cc}
+}
+
+func (c *serviceMeshMetricServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &ServiceMeshMetricService_ServiceDesc.Streams[0], "/ServiceMeshMetricService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &serviceMeshMetricServiceCollectClient{stream}
+ return x, nil
+}
+
+type ServiceMeshMetricService_CollectClient interface {
+ Send(*ServiceMeshMetric) error
+ CloseAndRecv() (*MeshProbeDownstream, error)
+ grpc.ClientStream
+}
+
+type serviceMeshMetricServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *serviceMeshMetricServiceCollectClient) Send(m *ServiceMeshMetric) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *serviceMeshMetricServiceCollectClient) CloseAndRecv() (*MeshProbeDownstream, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(MeshProbeDownstream)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ServiceMeshMetricServiceServer is the server API for ServiceMeshMetricService service.
+// All implementations must embed UnimplementedServiceMeshMetricServiceServer
+// for forward compatibility
+type ServiceMeshMetricServiceServer interface {
+ Collect(ServiceMeshMetricService_CollectServer) error
+ mustEmbedUnimplementedServiceMeshMetricServiceServer()
+}
+
+// UnimplementedServiceMeshMetricServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedServiceMeshMetricServiceServer struct {
+}
+
+func (UnimplementedServiceMeshMetricServiceServer) Collect(ServiceMeshMetricService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedServiceMeshMetricServiceServer) mustEmbedUnimplementedServiceMeshMetricServiceServer() {
+}
+
+// UnsafeServiceMeshMetricServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ServiceMeshMetricServiceServer will
+// result in compilation errors.
+type UnsafeServiceMeshMetricServiceServer interface {
+ mustEmbedUnimplementedServiceMeshMetricServiceServer()
+}
+
+func RegisterServiceMeshMetricServiceServer(s grpc.ServiceRegistrar, srv ServiceMeshMetricServiceServer) {
+ s.RegisterService(&ServiceMeshMetricService_ServiceDesc, srv)
+}
+
+func _ServiceMeshMetricService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(ServiceMeshMetricServiceServer).Collect(&serviceMeshMetricServiceCollectServer{stream})
+}
+
+type ServiceMeshMetricService_CollectServer interface {
+ SendAndClose(*MeshProbeDownstream) error
+ Recv() (*ServiceMeshMetric, error)
+ grpc.ServerStream
+}
+
+type serviceMeshMetricServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *serviceMeshMetricServiceCollectServer) SendAndClose(m *MeshProbeDownstream) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *serviceMeshMetricServiceCollectServer) Recv() (*ServiceMeshMetric, error) {
+ m := new(ServiceMeshMetric)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ServiceMeshMetricService_ServiceDesc is the grpc.ServiceDesc for ServiceMeshMetricService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ServiceMeshMetricService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "ServiceMeshMetricService",
+ HandlerType: (*ServiceMeshMetricServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _ServiceMeshMetricService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "service-mesh-probe/service-mesh-compat.proto",
+}
diff --git a/servicemesh/v3/service-mesh.pb.go b/servicemesh/v3/service-mesh.pb.go
new file mode 100644
index 0000000..77d6d65
--- /dev/null
+++ b/servicemesh/v3/service-mesh.pb.go
@@ -0,0 +1,430 @@
+//
+// 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: service-mesh-probe/service-mesh.proto
+
+package v3
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ v3 "skywalking/network/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 Protocol int32
+
+const (
+ Protocol_HTTP Protocol = 0
+ Protocol_gRPC Protocol = 1
+)
+
+// Enum value maps for Protocol.
+var (
+ Protocol_name = map[int32]string{
+ 0: "HTTP",
+ 1: "gRPC",
+ }
+ Protocol_value = map[string]int32{
+ "HTTP": 0,
+ "gRPC": 1,
+ }
+)
+
+func (x Protocol) Enum() *Protocol {
+ p := new(Protocol)
+ *p = x
+ return p
+}
+
+func (x Protocol) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Protocol) Descriptor() protoreflect.EnumDescriptor {
+ return file_service_mesh_probe_service_mesh_proto_enumTypes[0].Descriptor()
+}
+
+func (Protocol) Type() protoreflect.EnumType {
+ return &file_service_mesh_probe_service_mesh_proto_enumTypes[0]
+}
+
+func (x Protocol) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Protocol.Descriptor instead.
+func (Protocol) EnumDescriptor() ([]byte, []int) {
+ return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{0}
+}
+
+type ServiceMeshMetric struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Start timestamp in milliseconds of this RPC,
+ // measured between the current time and midnight, January 1, 1970 UTC.
+ StartTime int64 `protobuf:"varint,1,opt,name=startTime,proto3" json:"startTime,omitempty"`
+ // End timestamp in milliseconds of this RPC,
+ // measured between the current time and midnight, January 1, 1970 UTC.
+ EndTime int64 `protobuf:"varint,2,opt,name=endTime,proto3" json:"endTime,omitempty"`
+ SourceServiceName string `protobuf:"bytes,3,opt,name=sourceServiceName,proto3" json:"sourceServiceName,omitempty"`
+ SourceServiceInstance string `protobuf:"bytes,4,opt,name=sourceServiceInstance,proto3" json:"sourceServiceInstance,omitempty"`
+ DestServiceName string `protobuf:"bytes,5,opt,name=destServiceName,proto3" json:"destServiceName,omitempty"`
+ DestServiceInstance string `protobuf:"bytes,6,opt,name=destServiceInstance,proto3" json:"destServiceInstance,omitempty"`
+ Endpoint string `protobuf:"bytes,7,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+ Latency int32 `protobuf:"varint,8,opt,name=latency,proto3" json:"latency,omitempty"`
+ ResponseCode int32 `protobuf:"varint,9,opt,name=responseCode,proto3" json:"responseCode,omitempty"`
+ // Status represents the response status of this calling.
+ Status bool `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
+ Protocol Protocol `protobuf:"varint,11,opt,name=protocol,proto3,enum=skywalking.v3.Protocol" json:"protocol,omitempty"`
+ DetectPoint v3.DetectPoint `protobuf:"varint,12,opt,name=detectPoint,proto3,enum=skywalking.v3.DetectPoint" json:"detectPoint,omitempty"`
+ // NONE, mTLS, or TLS
+ TlsMode string `protobuf:"bytes,13,opt,name=tlsMode,proto3" json:"tlsMode,omitempty"`
+ // The sidecar/proxy internal error code, the value bases on the implementation.
+ // The envoy internal error codes are listed here, https://www.envoyproxy.io/docs/envoy/latest/api-v2/data/accesslog/v2/accesslog.proto#data-accesslog-v2-responseflags
+ InternalErrorCode string `protobuf:"bytes,14,opt,name=internalErrorCode,proto3" json:"internalErrorCode,omitempty"`
+}
+
+func (x *ServiceMeshMetric) Reset() {
+ *x = ServiceMeshMetric{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_service_mesh_probe_service_mesh_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ServiceMeshMetric) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ServiceMeshMetric) ProtoMessage() {}
+
+func (x *ServiceMeshMetric) ProtoReflect() protoreflect.Message {
+ mi := &file_service_mesh_probe_service_mesh_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 ServiceMeshMetric.ProtoReflect.Descriptor instead.
+func (*ServiceMeshMetric) Descriptor() ([]byte, []int) {
+ return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ServiceMeshMetric) GetStartTime() int64 {
+ if x != nil {
+ return x.StartTime
+ }
+ return 0
+}
+
+func (x *ServiceMeshMetric) GetEndTime() int64 {
+ if x != nil {
+ return x.EndTime
+ }
+ return 0
+}
+
+func (x *ServiceMeshMetric) GetSourceServiceName() string {
+ if x != nil {
+ return x.SourceServiceName
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetSourceServiceInstance() string {
+ if x != nil {
+ return x.SourceServiceInstance
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetDestServiceName() string {
+ if x != nil {
+ return x.DestServiceName
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetDestServiceInstance() string {
+ if x != nil {
+ return x.DestServiceInstance
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetEndpoint() string {
+ if x != nil {
+ return x.Endpoint
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetLatency() int32 {
+ if x != nil {
+ return x.Latency
+ }
+ return 0
+}
+
+func (x *ServiceMeshMetric) GetResponseCode() int32 {
+ if x != nil {
+ return x.ResponseCode
+ }
+ return 0
+}
+
+func (x *ServiceMeshMetric) GetStatus() bool {
+ if x != nil {
+ return x.Status
+ }
+ return false
+}
+
+func (x *ServiceMeshMetric) GetProtocol() Protocol {
+ if x != nil {
+ return x.Protocol
+ }
+ return Protocol_HTTP
+}
+
+func (x *ServiceMeshMetric) GetDetectPoint() v3.DetectPoint {
+ if x != nil {
+ return x.DetectPoint
+ }
+ return v3.DetectPoint_client
+}
+
+func (x *ServiceMeshMetric) GetTlsMode() string {
+ if x != nil {
+ return x.TlsMode
+ }
+ return ""
+}
+
+func (x *ServiceMeshMetric) GetInternalErrorCode() string {
+ if x != nil {
+ return x.InternalErrorCode
+ }
+ return ""
+}
+
+type MeshProbeDownstream struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *MeshProbeDownstream) Reset() {
+ *x = MeshProbeDownstream{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_service_mesh_probe_service_mesh_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MeshProbeDownstream) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeshProbeDownstream) ProtoMessage() {}
+
+func (x *MeshProbeDownstream) ProtoReflect() protoreflect.Message {
+ mi := &file_service_mesh_probe_service_mesh_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 MeshProbeDownstream.ProtoReflect.Descriptor instead.
+func (*MeshProbeDownstream) Descriptor() ([]byte, []int) {
+ return file_service_mesh_probe_service_mesh_proto_rawDescGZIP(), []int{1}
+}
+
+var File_service_mesh_probe_service_mesh_proto protoreflect.FileDescriptor
+
+var file_service_mesh_probe_service_mesh_proto_rawDesc = []byte{
+ 0x0a, 0x25, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x2d, 0x70,
+ 0x72, 0x6f, 0x62, 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x6d, 0x65, 0x73,
+ 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x04, 0x0a, 0x11,
+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65,
+ 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a,
+ 0x0f, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x53,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64,
+ 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64,
+ 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12,
+ 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e,
+ 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+ 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69,
+ 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e,
+ 0x74, 0x52, 0x0b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18,
+ 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x74, 0x6c, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72,
+ 0x6f, 0x62, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2a, 0x1e, 0x0a,
+ 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x54,
+ 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x52, 0x50, 0x43, 0x10, 0x01, 0x32, 0x6f, 0x0a,
+ 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6f, 0x6c,
+ 0x6c, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e,
+ 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x1a, 0x22, 0x2e, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b,
+ 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65,
+ 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x00, 0x28, 0x01, 0x42, 0x77,
+ 0x0a, 0x30, 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, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e,
+ 0x76, 0x33, 0x50, 0x01, 0x5a, 0x21, 0x73, 0x6b, 0x79, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67,
+ 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x33, 0xaa, 0x02, 0x1d, 0x53, 0x6b, 0x79, 0x57, 0x61, 0x6c,
+ 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_service_mesh_probe_service_mesh_proto_rawDescOnce sync.Once
+ file_service_mesh_probe_service_mesh_proto_rawDescData = file_service_mesh_probe_service_mesh_proto_rawDesc
+)
+
+func file_service_mesh_probe_service_mesh_proto_rawDescGZIP() []byte {
+ file_service_mesh_probe_service_mesh_proto_rawDescOnce.Do(func() {
+ file_service_mesh_probe_service_mesh_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_mesh_probe_service_mesh_proto_rawDescData)
+ })
+ return file_service_mesh_probe_service_mesh_proto_rawDescData
+}
+
+var file_service_mesh_probe_service_mesh_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_service_mesh_probe_service_mesh_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_service_mesh_probe_service_mesh_proto_goTypes = []interface{}{
+ (Protocol)(0), // 0: skywalking.v3.Protocol
+ (*ServiceMeshMetric)(nil), // 1: skywalking.v3.ServiceMeshMetric
+ (*MeshProbeDownstream)(nil), // 2: skywalking.v3.MeshProbeDownstream
+ (v3.DetectPoint)(0), // 3: skywalking.v3.DetectPoint
+}
+var file_service_mesh_probe_service_mesh_proto_depIdxs = []int32{
+ 0, // 0: skywalking.v3.ServiceMeshMetric.protocol:type_name -> skywalking.v3.Protocol
+ 3, // 1: skywalking.v3.ServiceMeshMetric.detectPoint:type_name -> skywalking.v3.DetectPoint
+ 1, // 2: skywalking.v3.ServiceMeshMetricService.collect:input_type -> skywalking.v3.ServiceMeshMetric
+ 2, // 3: skywalking.v3.ServiceMeshMetricService.collect:output_type -> skywalking.v3.MeshProbeDownstream
+ 3, // [3:4] is the sub-list for method output_type
+ 2, // [2:3] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_service_mesh_probe_service_mesh_proto_init() }
+func file_service_mesh_probe_service_mesh_proto_init() {
+ if File_service_mesh_probe_service_mesh_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_service_mesh_probe_service_mesh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ServiceMeshMetric); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_service_mesh_probe_service_mesh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MeshProbeDownstream); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_service_mesh_probe_service_mesh_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_service_mesh_probe_service_mesh_proto_goTypes,
+ DependencyIndexes: file_service_mesh_probe_service_mesh_proto_depIdxs,
+ EnumInfos: file_service_mesh_probe_service_mesh_proto_enumTypes,
+ MessageInfos: file_service_mesh_probe_service_mesh_proto_msgTypes,
+ }.Build()
+ File_service_mesh_probe_service_mesh_proto = out.File
+ file_service_mesh_probe_service_mesh_proto_rawDesc = nil
+ file_service_mesh_probe_service_mesh_proto_goTypes = nil
+ file_service_mesh_probe_service_mesh_proto_depIdxs = nil
+}
diff --git a/servicemesh/v3/service-mesh_grpc.pb.go b/servicemesh/v3/service-mesh_grpc.pb.go
new file mode 100644
index 0000000..d413879
--- /dev/null
+++ b/servicemesh/v3/service-mesh_grpc.pb.go
@@ -0,0 +1,136 @@
+// 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"
+)
+
+// 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
+
+// ServiceMeshMetricServiceClient is the client API for ServiceMeshMetricService 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 ServiceMeshMetricServiceClient interface {
+ Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error)
+}
+
+type serviceMeshMetricServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewServiceMeshMetricServiceClient(cc grpc.ClientConnInterface) ServiceMeshMetricServiceClient {
+ return &serviceMeshMetricServiceClient{cc}
+}
+
+func (c *serviceMeshMetricServiceClient) Collect(ctx context.Context, opts ...grpc.CallOption) (ServiceMeshMetricService_CollectClient, error) {
+ stream, err := c.cc.NewStream(ctx, &ServiceMeshMetricService_ServiceDesc.Streams[0], "/skywalking.v3.ServiceMeshMetricService/collect", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &serviceMeshMetricServiceCollectClient{stream}
+ return x, nil
+}
+
+type ServiceMeshMetricService_CollectClient interface {
+ Send(*ServiceMeshMetric) error
+ CloseAndRecv() (*MeshProbeDownstream, error)
+ grpc.ClientStream
+}
+
+type serviceMeshMetricServiceCollectClient struct {
+ grpc.ClientStream
+}
+
+func (x *serviceMeshMetricServiceCollectClient) Send(m *ServiceMeshMetric) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *serviceMeshMetricServiceCollectClient) CloseAndRecv() (*MeshProbeDownstream, error) {
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ m := new(MeshProbeDownstream)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ServiceMeshMetricServiceServer is the server API for ServiceMeshMetricService service.
+// All implementations must embed UnimplementedServiceMeshMetricServiceServer
+// for forward compatibility
+type ServiceMeshMetricServiceServer interface {
+ Collect(ServiceMeshMetricService_CollectServer) error
+ mustEmbedUnimplementedServiceMeshMetricServiceServer()
+}
+
+// UnimplementedServiceMeshMetricServiceServer must be embedded to have forward compatible implementations.
+type UnimplementedServiceMeshMetricServiceServer struct {
+}
+
+func (UnimplementedServiceMeshMetricServiceServer) Collect(ServiceMeshMetricService_CollectServer) error {
+ return status.Errorf(codes.Unimplemented, "method Collect not implemented")
+}
+func (UnimplementedServiceMeshMetricServiceServer) mustEmbedUnimplementedServiceMeshMetricServiceServer() {
+}
+
+// UnsafeServiceMeshMetricServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ServiceMeshMetricServiceServer will
+// result in compilation errors.
+type UnsafeServiceMeshMetricServiceServer interface {
+ mustEmbedUnimplementedServiceMeshMetricServiceServer()
+}
+
+func RegisterServiceMeshMetricServiceServer(s grpc.ServiceRegistrar, srv ServiceMeshMetricServiceServer) {
+ s.RegisterService(&ServiceMeshMetricService_ServiceDesc, srv)
+}
+
+func _ServiceMeshMetricService_Collect_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(ServiceMeshMetricServiceServer).Collect(&serviceMeshMetricServiceCollectServer{stream})
+}
+
+type ServiceMeshMetricService_CollectServer interface {
+ SendAndClose(*MeshProbeDownstream) error
+ Recv() (*ServiceMeshMetric, error)
+ grpc.ServerStream
+}
+
+type serviceMeshMetricServiceCollectServer struct {
+ grpc.ServerStream
+}
+
+func (x *serviceMeshMetricServiceCollectServer) SendAndClose(m *MeshProbeDownstream) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *serviceMeshMetricServiceCollectServer) Recv() (*ServiceMeshMetric, error) {
+ m := new(ServiceMeshMetric)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// ServiceMeshMetricService_ServiceDesc is the grpc.ServiceDesc for ServiceMeshMetricService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var ServiceMeshMetricService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "skywalking.v3.ServiceMeshMetricService",
+ HandlerType: (*ServiceMeshMetricServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "collect",
+ Handler: _ServiceMeshMetricService_Collect_Handler,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "service-mesh-probe/service-mesh.proto",
+}