ceshiren.com:diffy seveniruby$ java -jar diffy-server.jar -help | pbcopy
usage: null [<flag>...]
  -admin.announce='java.lang.String': Address for announcing admin server
  -admin.port=':9990': Admin http server port
  -allowHttpSideEffects='false': Ignore POST, PUT, and DELETE requests if set to false
  -apiRoot='': A path token that will be removed by a proxy gateway before forwarding UI requests to Diffy
  -candidate='class java.lang.String': candidate serverset where code that needs testing is deployed
  -dc='localhost': the datacenter where this Diffy instance is deployed
  -doc.root='': File serving directory/namespace for classpath resources
  -dtab.add='': Supplemental Dtab to add to the `c.t.finagle.Dtab.base` delegation table.
  -enableThriftMux='true': use thrift mux server and clients
  -excludeHttpHeadersComparison='false': Exclude comparison on HTTP headers if set to false
  -help='false': Show this help
  -http.announce='': Address for announcing HTTP server. Empty string indicates no announcement.
  -http.name='http': Http server name
  -http.port=':8888': External HTTP server port
  -http.response.charset.enabled='true': Return HTTP Response Content-Type UTF-8 Charset
  -http.shutdown.time='1.minutes': Maximum amount of time to wait for pending requests to complete on shutdown
  -https.announce='': Address for announcing HTTPS server. Empty string indicates no announcement.
  -https.name='https': Https server name
  -https.port='': External HTTPS server port
  -httpsPort='443': Port to be used when using HTTPS as a protocol
  -isotope.config='local.isotope': the isotope configuration file
  -local.doc.root='': File serving directory for local development
  -log.append='true': If true, appends to existing logfile. Otherwise, file is truncated.
  -log.async='true': Log asynchronously
  -log.async.inferClassNames='false': Infer class and method names synchronously. See com.twitter.logging.QueueingHandler
  -log.async.maxsize='4096': Max queue size for async logging
  -log.level='INFO': Log level
  -log.output='/dev/stderr': Output file
  -log.rollPolicy='Never': When or how frequently to roll the logfile. See com.twitter.logging.Policy#parse documentation for DSL details.
  -log.rotateCount='-1': How many rotated logfiles to keep around
  -master.primary='class java.lang.String': primary master serverset where known good code is deployed
  -master.secondary='class java.lang.String': secondary master serverset where known good code is deployed
  -maxRequestSize='5242880.bytes': HTTP(s) Max Request Size
  -mustache.templates.dir='templates': templates resource directory
  -proxy.clientId='diffy.proxy': The clientId to be used by the proxy service to talk to candidate, primary, and master
  -proxy.port=':9992': The port where the proxy service should listen
  -resource.mapping='': Coma separated list of resource paths and names. Each resource is separated by a colon. Example '/foo:foo-resource,/bar:bar-resource
  -rootUrl='': Root url to access this service, e.g. diffy-staging-gizmoduck.service.smf1.twitter.com
  -service.protocol='class java.lang.String': Service protocol: thrift, http or https
  -serviceName='class java.lang.String': The service title e.g. UserService or LocationService
  -skipEmailsWhenNoErrors='false': Do not send emails if there are no critical errors
  -summary.delay='5': minutes to wait before sending report out. e.g. 5
  -summary.email='class java.lang.String': team email to which cron report should be sent
  -threshold.absolute='0.03': minimum (inclusive) absolute threshold that a field must have to be returned
  -threshold.relative='20.0': minimum (inclusive) relative threshold that a field must have to be returned
  -thrift.jar='path/to/thrift.jar': The path to a fat Thrift jar - the jar should include all dependencies
  -thrift.serviceClass='unknown': The service name within the thrift jar e.g. UserService
  -thriftFramedTransport='true': Run in BufferedTransport mode when false
global flags:
  -com.twitter.finagle.client.useNackAdmissionFilter='true': When false, globally disables client side nack admission control (NackAdmissionFilter)
  -com.twitter.finagle.exp.scheduler='local': Which scheduler to use for futures <local> | <lifo> | <bridged>[:<num workers>] | <forkjoin>[:<num workers>]
  -com.twitter.finagle.http.cookie.supportSameSiteCodec='false': Allow the SameSite attribute to be added to the Set-Cookie header on Responses
  -com.twitter.finagle.http.package$serverErrorsAsFailures='true': Treat responses with status codes in the 500s as failures. See `com.twitter.finagle.http.service.HttpResponseClassifier.ServerErrorsAsFailures`
  -com.twitter.finagle.http2.trackH2SessionExceptions='false': Track H2 session exceptions
  -com.twitter.finagle.liveness.sessionFailureDetector='threshold:5.seconds:4.seconds': The failure detector used to determine session liveness [none|threshold:minPeriod:closeTimeout]
  -com.twitter.finagle.loadbalancer.aperture.minDeterminsticAperture='12': The minimum aperture that the deterministic aperture load balancer will allow
  -com.twitter.finagle.loadbalancer.aperture.staticDetermisticApertureWidth='true': Deterministic Aperture doesn't increase its aperture
  -com.twitter.finagle.loadbalancer.defaultBalancer='choice': Default load balancer
  -com.twitter.finagle.loadbalancer.exp.loadMetric='leastReq': Metric used to measure load across endpoints (leastReq | ewma)
  -com.twitter.finagle.loadbalancer.perHostStats='false': enable/default per-host stats.
	When enabled,the configured stats receiver will be used,
	or the loaded stats receiver if none given.
	When disabled, the configured stats receiver will be used,
	or the NullStatsReceiver if none given.
  -com.twitter.finagle.mux.lease.exp.drainerDebug='false': GC drainer debug log (verbose)
  -com.twitter.finagle.mux.lease.exp.drainerDiscountRange='52428800.bytes,629145600.bytes': Range of discount
  -com.twitter.finagle.mux.lease.exp.drainerEnabled='false': GC drainer enabled
  -com.twitter.finagle.mux.lease.exp.drainerPercentile='95': GC drainer cutoff percentile
  -com.twitter.finagle.mux.lease.exp.nackOnExpiredLease='false': nack when the lease has expired
  -com.twitter.finagle.mux.pushsession.allowInterruptingClientNegotiation='true': Allow interrupting the Mux client negotiation.
  -com.twitter.finagle.naming.namerMaxDepth='100': Maximum recursion level depth for Finagle namer.
  -com.twitter.finagle.netty4.http.revalidateInboundHeaders='false': Perform Finagle based validation of headers when converting from Netty `HeaderMap`s
  -com.twitter.finagle.netty4.numWorkers='8': number of netty4 worker threads
  -com.twitter.finagle.netty4.timerTickDuration='10.milliseconds': Netty 4 timer tick duration
  -com.twitter.finagle.netty4.timerTicksPerWheel='512': Netty 4 timer ticks per wheel
  -com.twitter.finagle.netty4.trackReferenceLeaks='false': Enable reference leak tracking in Netty and export a counter at finagle/netty4/reference_leaks
  -com.twitter.finagle.netty4.useNativeEpoll='true': Use Linux's native epoll transport, when available
  -com.twitter.finagle.offload.numWorkers='Int': Experimental flag. Enables the offload filter using a thread pool with the specified number of threads.
 When this flag is greater than zero, the execution of application code happens in an isolated pool and the netty threads
 are used only to handle the network channels. This behavior changes the assumptions regarding the scheduling of tasks in
 finagle applications. Traditionally, the recommendation is to execute CPU-intensive tasks using a `FuturePool` but, when
 this flag is enabled, CPU-intensive tasks don't require a `FuturePool`. Important: Blocking tasks should still use a

 It's important to review the allocation of thread pools when this flag is enabled otherwise the application might create
 too many threads, which leads to more GC pressure and increases the risk of CPU throttling.

  -com.twitter.finagle.stats.debugLoggedStatNames='': Comma separated stat names for logging observed values (set via a -D system property to avoid load ordering issues)
  -com.twitter.finagle.stats.format='commonsmetrics': Format style for metric names (ostrich|commonsmetrics|commonsstats)
  -com.twitter.finagle.stats.includeEmptyHistograms='false': Include full histogram details when there are no data points
  -com.twitter.finagle.stats.logOnShutdown='false': Enable behavior to dump metrics via logger on shutdown
  -com.twitter.finagle.stats.scopeSeparator='/': Override the scope separator.
  -com.twitter.finagle.stats.statsFilter='': Comma-separated regexes that indicate which metrics to filter out
  -com.twitter.finagle.stats.statsFilterFile='': Comma separated files of newline separated regexes that indicate which metrics to filter out
  -com.twitter.finagle.stats.useCounterDeltas='false': Return deltas for counters instead of absolute values. Provides compatibility with the behavior from 'Ostrich'
  -com.twitter.finagle.stats.verbose='java.lang.String': Comma-separated list of *-wildcard expressions to allowlist exporting debug metrics.
  -com.twitter.finagle.thrift.package$maxReusableBufferSize='16384.bytes': Max size (bytes) for ThriftServicePerEndpoint reusable transport buffer
  -com.twitter.finagle.toggle.flag.overrides='': Source for the Flag-based ToggleMap.
Format is `com.yourpackage.id1=fraction1,com.yourpackage.id2=fraction2,...`
where fractions must be [0.0-1.0]
When false, disables any tracing for this process (default: enabled). Note: it's never
recommended to disable tracing in production applications.

  -com.twitter.finagle.tracing.traceId128Bit='false': When true, new root spans will have 128-bit trace IDs. Defaults to false (64-bit).
  -com.twitter.finagle.util.defaultTimerProbeSlowTasks='false': Enable reporting of slow timer tasks executing in the default timer
  -com.twitter.finagle.util.defaultTimerSlowTaskLogMinInterval='20.seconds': Minimum interval between recording stack traces for slow tasks
  -com.twitter.finagle.util.defaultTimerSlowTaskMaxRuntime='2.seconds': Maximum runtime allowed for tasks before they are reported
  -com.twitter.finagle.util.loadServiceDenied='': A deny list of implementations to ignore. Keys are the fully qualified class names. Any other implementations that are found via `LoadService.apply` are eligible to be used.
  -com.twitter.finagle.util.loadServiceIgnoredPaths='': Additional packages to be excluded from recursive directory scan
  -com.twitter.jvm.numProcs='4.0': number of logical cores
  -com.twitter.server.announcerMap='': A list mapping service names to announcers (gizmoduck=zk!/gizmoduck)
  -com.twitter.server.promoteBeforeServing='true': Promote objects in young generation to old generation before serving requests. May shorten the following gc pauses by avoiding the copying back and forth between survivor spaces of a service's long lived objects.
  -com.twitter.server.resolverMap='': A list mapping service names to resolvers (gizmoduck=zk!/gizmoduck)
  -socksPassword='': SOCKS password
  -socksProxyForLocalhost='false': Use SOCKS proxy for localhost connections, defaults to false.
  -socksProxyHost='': SOCKS proxy host
  -socksProxyPort='0': SOCKS proxy port
  -socksUsername='': SOCKS username