gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/grpc/profiling/cmd/main.go (about) 1 /* 2 * 3 * Copyright 2019 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 // Binary cmd is a command-line tool for profiling management. It retrieves and 20 // processes data from the profiling service. 21 package main 22 23 import ( 24 "os" 25 26 "gitee.com/ks-custle/core-gm/grpc/grpclog" 27 ppb "gitee.com/ks-custle/core-gm/grpc/profiling/proto" 28 ) 29 30 var logger = grpclog.Component("profiling") 31 32 type snapshot struct { 33 StreamStats []*ppb.Stat 34 } 35 36 func main() { 37 if err := parseArgs(); err != nil { 38 logger.Errorf("error parsing flags: %v", err) 39 os.Exit(1) 40 } 41 42 if *flagAddress != "" { 43 if err := remoteCommand(); err != nil { 44 logger.Errorf("error: %v", err) 45 os.Exit(1) 46 } 47 } else { 48 if err := localCommand(); err != nil { 49 logger.Errorf("error: %v", err) 50 os.Exit(1) 51 } 52 } 53 }