fs.StringVar(&cfg.ec.ListenMetricsUrlsJSON,"listen-metrics-urls","","List of URLs to listen on for metrics.")
fs.UintVar(&cfg.ec.MaxSnapFiles,"max-snapshots",cfg.ec.MaxSnapFiles,"Maximum number of snapshot files to retain (0 is unlimited).")
fs.UintVar(&cfg.ec.MaxWalFiles,"max-wals",cfg.ec.MaxWalFiles,"Maximum number of wal files to retain (0 is unlimited).")
fs.StringVar(&cfg.ec.Name,"name",cfg.ec.Name,"Human-readable name for this member.")
fs.Uint64Var(&cfg.ec.SnapCount,"snapshot-count",cfg.ec.SnapCount,"Number of committed transactions to trigger a snapshot to disk.")
fs.UintVar(&cfg.ec.TickMs,"heartbeat-interval",cfg.ec.TickMs,"Time (in milliseconds) of a heartbeat interval.")
fs.UintVar(&cfg.ec.ElectionMs,"election-timeout",cfg.ec.ElectionMs,"Time (in milliseconds) for an election to timeout.")
fs.Int64Var(&cfg.ec.QuotaBackendBytes,"quota-backend-bytes",cfg.ec.QuotaBackendBytes,"Raise alarms when backend size exceeds the given quota. 0 means use the default quota.")
fs.UintVar(&cfg.ec.MaxTxnOps,"max-txn-ops",cfg.ec.MaxTxnOps,"Maximum number of operations permitted in a transaction.")
fs.UintVar(&cfg.ec.MaxRequestBytes,"max-request-bytes",cfg.ec.MaxRequestBytes,"Maximum client request size in bytes the server will accept.")
fs.DurationVar(&cfg.ec.GRPCKeepAliveMinTime,"grpc-keepalive-min-time",cfg.ec.GRPCKeepAliveMinTime,"Minimum interval duration that a client should wait before pinging server.")
fs.DurationVar(&cfg.ec.GRPCKeepAliveInterval,"grpc-keepalive-interval",cfg.ec.GRPCKeepAliveInterval,"Frequency duration of server-to-client ping to check if a connection is alive (0 to disable).")
fs.DurationVar(&cfg.ec.GRPCKeepAliveTimeout,"grpc-keepalive-timeout",cfg.ec.GRPCKeepAliveTimeout,"Additional duration of wait before closing a non-responsive connection (0 to disable).")
fs.Var(flags.NewURLsValue(embed.DefaultInitialAdvertisePeerURLs),"initial-advertise-peer-urls","List of this member's peer URLs to advertise to the rest of the cluster.")
fs.Var(flags.NewURLsValue(embed.DefaultAdvertiseClientURLs),"advertise-client-urls","List of this member's client URLs to advertise to the public.")
fs.StringVar(&cfg.ec.Dproxy,"discovery-proxy",cfg.ec.Dproxy,"HTTP proxy to use for traffic to discovery service.")
fs.StringVar(&cfg.ec.DNSCluster,"discovery-srv",cfg.ec.DNSCluster,"DNS domain used to bootstrap initial cluster.")
fs.StringVar(&cfg.ec.InitialCluster,"initial-cluster",cfg.ec.InitialCluster,"Initial cluster configuration for bootstrapping.")
fs.StringVar(&cfg.ec.InitialClusterToken,"initial-cluster-token",cfg.ec.InitialClusterToken,"Initial cluster token for the etcd cluster during bootstrap.")
fs.Var(cfg.cf.clusterState,"initial-cluster-state","Initial cluster state ('new' or 'existing').")
fs.BoolVar(&cfg.ec.StrictReconfigCheck,"strict-reconfig-check",cfg.ec.StrictReconfigCheck,"Reject reconfiguration requests that would cause quorum loss.")
fs.UintVar(&cfg.cp.ProxyFailureWaitMs,"proxy-failure-wait",cfg.cp.ProxyFailureWaitMs,"Time (in milliseconds) an endpoint will be held in a failed state.")
fs.UintVar(&cfg.cp.ProxyRefreshIntervalMs,"proxy-refresh-interval",cfg.cp.ProxyRefreshIntervalMs,"Time (in milliseconds) of the endpoints refresh interval.")
fs.UintVar(&cfg.cp.ProxyDialTimeoutMs,"proxy-dial-timeout",cfg.cp.ProxyDialTimeoutMs,"Time (in milliseconds) for a dial to timeout.")
fs.UintVar(&cfg.cp.ProxyWriteTimeoutMs,"proxy-write-timeout",cfg.cp.ProxyWriteTimeoutMs,"Time (in milliseconds) for a write to timeout.")
fs.UintVar(&cfg.cp.ProxyReadTimeoutMs,"proxy-read-timeout",cfg.cp.ProxyReadTimeoutMs,"Time (in milliseconds) for a read to timeout.")
fs.BoolVar(&cfg.ec.Debug,"debug",false,"Enable debug-level logging for etcd.")
fs.StringVar(&cfg.ec.LogPkgLevels,"log-package-levels","","Specify a particular log level for each etcd package (eg: 'etcdmain=CRITICAL,etcdserver=DEBUG').")
fs.StringVar(&cfg.ec.LogOutput,"log-output",embed.DefaultLogOutput,"Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd.")
fs.StringVar(&cfg.ec.AutoCompactionRetention,"auto-compaction-retention","0","Auto compaction retention for mvcc key value store. 0 means disable auto compaction.")
fs.StringVar(&cfg.ec.AutoCompactionMode,"auto-compaction-mode","periodic","interpret 'auto-compaction-retention' one of: periodic|revision. 'periodic' for duration based retention, defaulting to hours if no time unit is provided (e.g. '5m'). 'revision' for revision number based retention.")
fs.BoolVar(&cfg.ec.ExperimentalInitialCorruptCheck,"experimental-initial-corrupt-check",cfg.ec.ExperimentalInitialCorruptCheck,"Enable to check data corruption before serving any client/peer traffic.")
fs.DurationVar(&cfg.ec.ExperimentalCorruptCheckTime,"experimental-corrupt-check-time",cfg.ec.ExperimentalCorruptCheckTime,"Duration of time between cluster corruption check passes.")
plog.Infof("Loading server configuration from %q. Other configuration command line flags and environment variables will be ignored if provided.",cfg.configFile)