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  }