github.com/google/cloudprober@v0.11.3/config/proto/config.proto (about) 1 syntax = "proto2"; 2 3 package cloudprober; 4 5 import "github.com/google/cloudprober/common/tlsconfig/proto/config.proto"; 6 import "github.com/google/cloudprober/probes/proto/config.proto"; 7 import "github.com/google/cloudprober/rds/server/proto/config.proto"; 8 import "github.com/google/cloudprober/servers/proto/config.proto"; 9 import "github.com/google/cloudprober/surfacers/proto/config.proto"; 10 import "github.com/google/cloudprober/targets/proto/targets.proto"; 11 12 option go_package = "github.com/google/cloudprober/config/proto"; 13 14 message ProberConfig { 15 // Probes to run. 16 repeated probes.ProbeDef probe = 1; 17 18 // Surfacers are used to export probe results for further processing. 19 // If no surfacer is configured, a prometheus and a file surfacer are 20 // initialized: 21 // - Prometheus makes probe results available at http://<host>:9313/metrics. 22 // - File surfacer writes results to stdout. 23 // 24 // You can disable default surfacers (in case you want no surfacer at all), by 25 // adding the following to your config: 26 // surfacer {} 27 repeated surfacer.SurfacerDef surfacer = 2; 28 29 // Servers to run inside cloudprober. These servers can serve as targets for 30 // other probes. 31 repeated servers.ServerDef server = 3; 32 33 // Shared targets allow you to re-use the same targets copy across multiple 34 // probes. Example usage: 35 // 36 // shared_targets { 37 // name: "internal-vms" 38 // targets { 39 // rds_targets { 40 // .. 41 // } 42 // } 43 // } 44 // 45 // probe { 46 // name: "vm-ping" 47 // type: PING 48 // targets { 49 // shared_targets: "internal-vms" 50 // } 51 // } 52 // 53 // probe { 54 // name: "vm-http" 55 // type: HTTP 56 // targets { 57 // shared_targets: "internal-vms" 58 // } 59 // } 60 repeated SharedTargets shared_targets = 4; 61 62 // Common services related options. 63 // Next tag: 106 64 65 // Resource discovery server 66 optional rds.ServerConf rds_server = 95; 67 68 // Port for the default HTTP server. This port is also used for prometheus 69 // exporter (URL /metrics). Default port is 9313. If not specified in the 70 // config, default port can be overridden by the environment variable 71 // CLOUDPROBER_PORT. 72 optional int32 port = 96; 73 74 // Port to run the default gRPC server on. If not specified, and if 75 // environment variable CLOUDPROBER_GRPC_PORT is set, CLOUDPROBER_GRPC_PORT is 76 // used for the default gRPC server. If CLOUDPROBER_GRPC_PORT is not set as 77 // well, default gRPC server is not started. 78 optional int32 grpc_port = 104; 79 80 // TLS config, it can be used to: 81 // - Specify client's CA cert for client cert verification: 82 // tls_config { 83 // ca_cert_file: "...." 84 // } 85 // 86 // - Specify TLS cert and key: 87 // tls_config { 88 // tls_cert_file: "..." 89 // tls_key_file: "..." 90 // } 91 optional tlsconfig.TLSConfig grpc_tls_config = 105; 92 93 // Host for the default HTTP server. Default listens on all addresses. If not 94 // specified in the config, default port can be overridden by the environment 95 // variable CLOUDPROBER_HOST. 96 optional string host = 101; 97 98 // Probes are staggered across time to avoid executing all of them at the 99 // same time. This behavior can be disabled by setting the following option 100 // to true. 101 optional bool disable_jitter = 102 [default = false]; 102 103 // How often to export system variables. To learn more about system variables: 104 // http://godoc.org/github.com/google/cloudprober/sysvars. 105 optional int32 sysvars_interval_msec = 97 [default = 10000]; 106 107 // Variables specified in this environment variable are exported as it is. 108 // This is specifically useful to export information about system environment, 109 // for example, docker image tag/digest-id, OS version etc. See 110 // tools/cloudprober_startup.sh in the cloudprober directory for an example on 111 // how to use these variables. 112 optional string sysvars_env_var = 98 [default = "SYSVARS"]; 113 114 // Time between triggering cancelation of various goroutines and exiting the 115 // process. If --stop_time flag is also configured, that gets priority. 116 // You may want to set it to 0 if cloudprober is running as a backend for 117 // the probes and you don't want time lost in stop and start. 118 optional int32 stop_time_sec = 99 [default = 5]; 119 120 // Global targets options. Per-probe options are specified within the probe 121 // stanza. 122 optional targets.GlobalTargetsOptions global_targets_options = 100; 123 } 124 125 message SharedTargets { 126 required string name = 1; 127 required targets.TargetsDef targets = 2; 128 }