Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
add a backend
Used in:
,the socket address of the backend
Add a new TLS certificate to an HTTPs listener
Used in:
A unix timestamp. Overrides certificate expiration.
Aggregated metrics of main process & workers
Used in:
metrics about the main process. metric_name -> metric_value
details of worker metrics, with clusters and backends. worker_id -> worker_metrics
if present, contains metrics of clusters and their backends, merged across all workers. cluster_id -> cluster_metrics
if present, proxying metrics, merged accross all workers. metric_name -> metric_value
lists of available metrics in a worker, or in the main process (in which case there are no cluster metrics)
Used in:
Used in:
a prometheus histogram bucket
Used in:
upper range of the bucket (le = less or equal)
Used in:
, ,a list of domain names. Override certificate names if empty, the names of the certificate will be used
domain name and fingerprint of a certificate
Used in:
a hex-encoded TLS fingerprint
Summaries of certificates for a given address
Used in:
to reply to several certificate queries
Used in:
a map of fingerprint -> certificate_and_key
A cluster is what binds a frontend to backends with routing rules
Used in:
,wether a connection from a client shall be always redirected to the same backend
Used in:
cluster id -> hash of cluster information
Information about a given cluster Contains types usually used in requests, because they are readily available in protobuf
Used in:
Used in:
the metrics of a given cluster, with several backends
Used in:
,metric name -> metric value
list of backends with their metrics
Used in:
(message has no fields)
custom HTTP answers, useful for 404, 503 pages
Used in:
,MovedPermanently
BadRequest
Unauthorized
NotFound
RequestTimeout
PayloadTooLarge
BadGateway
ServiceUnavailable
GatewayTimeout
InsufficientStorage
Used in:
an event produced by a worker to notify about backends status
Used in:
Used in:
a histogram meant to be translated to prometheus
Used in:
A metric, in a "filtered" format, which means: sendable to outside programs.
Used in:
, , ,increases or decrease depending on the state
increases only
milliseconds
Used in:
list the frontends, filtered by protocol and/or domain
Used in:
Used in:
(message has no fields)
Used in:
warning: this should be a u16 but protobuf only has uint32. Make sure the value never exceeds u16 bounds.
details of an HTTP listener
Used in:
,client inactive time, in seconds
backend server inactive time, in seconds
time to connect to the backend, in seconds
max time to send a complete request, in seconds
wether the listener is actively listening on its socket
details of an HTTPS listener
Used in:
,client inactive time, in seconds
backend server inactive time, in seconds
time to connect to the backend, in seconds
max time to send a complete request, in seconds
wether the listener is actively listening on its socket
TLS versions
Number of TLS 1.3 tickets to send to a client when establishing a connection. The tickets allow the client to resume a session. This protects the client agains session tracking. Defaults to 4.
the Sōzu state, passed to a new worker. Consists in a collection of worker requests
Used in:
Used in:
(message has no fields)
Used by workers to reply to some certificate queries
Used in:
Used in:
(message has no fields)
lists of frontends present in the state
Used in:
Used in:
, ,Addresses of listeners, passed to new workers
socket addresses of HTTP listeners
socket addresses of HTTPS listeners
socket addresses of TCP listeners
All listeners, listed
Used in:
address -> http listener config
address -> https listener config
address -> tcp listener config
Used in:
Used in:
how sozu measures which backend is less loaded
Used in:
number of TCP connections
number of active HTTP requests
time to connect to the backend, weighted by the number of active connections (peak EWMA)
options to configure metrics collection
Used in:
enable metrics collection
disable metrics collection
wipe the metrics memory
A filter for the path of incoming requests
Used in:
The kind of filter used for path rules
the value of the given prefix, regex or equal pathrule
The kind of filter used for path rules
Used in:
filters paths that start with a pattern, typically "/api"
filters paths that match a regex pattern
filters paths that exactly match a pattern, no more, no less
Used in:
An access log, meant to be passed to another agent
error message if any
LogContext = request_id + cluster_id + backend_id
id of the cluster (set of frontend, backend, routing rules)
id of the backend (the server to which the traffic is redirected)
ip and port of the client
socket address of the backend server
the protocol, with SSL/TLS version, for instance "HTTPS-TLS1.1"
TCP or HTTP endpoint (method, path, context...)
round trip time for the client (microseconds)
round trip time for the backend (microseconds)
time spent on a session (microseconds)
number of bytes received from the client
number of bytes written to the client
value of the User-Agent header, if any
custom tags as key-values, for instance owner_id: MyOrganisation
short description of which process sends the log, for instance: "WRK-02"
POSIX timestamp, nanoseconds
Entire time between first byte received and last byte of the response. If a request ends abruptly before the last byte is transmitted, the `request_time` produced is the time elapsed since the first byte received.
time for the backend to respond (microseconds)
Used in:
Used in:
Used in:
Should be either a domain name or a fingerprint. These filter do not compound, use either one but not both. If none of them is specified, all certificates will be returned.
Used in:
a domain name to filter certificate results
a hex-encoded fingerprint of the TLS certificate to find
Used in:
Used in:
(message has no fields)
Options when querying metrics
Used in:
query a list of available metrics
query metrics for these clusters
query metrics for these backends
query only these metrics
query only worker and main process metrics (no cluster metrics)
display metrics of each worker, without flattening (takes more space)
remove an existing backend
Used in:
the socket address of the backend
Used in:
a hex-encoded TLS fingerprint to identify the certificate to remove
Used in:
Used in:
a hex-encoded TLS fingerprint to identify the old certificate
A unix timestamp. Overrides certificate expiration.
A message received by Sōzu to change its state or query information
Used in:
This message tells Sōzu to dump the current proxy state (backends, front domains, certificates, etc) as a list of JSON-serialized Requests, separated by a 0 byte, to a file. This file can be used later to bootstrap the proxy. This message is not forwarded to workers. If the specified path is relative, it will be calculated relative to the current working directory of the proxy.
load a state file, given its path
list the workers and their status
list the frontends, filtered by protocol and/or domain
list all listeners
launch a new worker never implemented, the tag is unused and probably not needed we may still implement it later with no paramater the main process will automatically assign a new id to a new worker
upgrade the main process
upgrade an existing worker, giving its id
subscribe to proxy events
reload the configuration from the config file, or a new file CHECK: this used to be an option. None => use the config file, Some(string) => path_to_file make sure it works using "" and "path_to_file"
give status of main process and all workers
add a cluster
remove a cluster giving its id
add an HTTP frontend
remove an HTTP frontend
add an HTTPS frontend
remove an HTTPS frontend
add a certificate
replace a certificate
remove a certificate
add a TCP frontend
remove a TCP frontend
add a backend
remove a backend
add an HTTP listener
add an HTTPS listener
add a TCP listener
remove a listener
activate a listener
deactivate a listener
query a cluster by id
query clusters with a hostname and optional path
query clusters hashes
query metrics
soft stop
hard stop
enable, disable or clear the metrics
Change the logging level
Return the listen sockets
Get certificates from the state (rather than from the workers)
Get certificates from the workers (rather than from the state)
query the state about how many requests of each type has been received since startup
Used in:
An HTTP or HTTPS frontend, as order to, or received from, Sōzu
Used in:
, ,custom tags to identify the frontend in the access logs
Used in:
, ,the socket address on which to listen for incoming traffic
custom tags to identify the frontend in the access logs
Response to a request
wether the request was a success, a failure, or is processing
a success or error message
response data, if any
content of a response
Used in:
, ,a list of workers, with ids, pids, statuses
aggregated metrics of main process and workers
a collection of worker responses to the same request
a proxy event
a filtered list of frontend
all listeners
contains proxy & cluster metrics
Lists of metrics that are available
a list of cluster informations
collection of hashes of cluster information,
a list of certificates summaries, grouped by socket address
a map of complete certificates using fingerprints as key
a census of the types of requests received since startup,
Used in:
,Used in:
(message has no fields)
TODO: find a proper definition for this
Used in:
Runstate of a worker
Used in:
Used by a worker to start its server loop. The defaults should match those of the config module
intended to workers
Used in:
matches std::net::SocketAddr in the Rust library beware that the ports are expressed with uint32 here, but they should NOT exceed uint16 value
Used in:
, , , , , , , , , , , , , , ,Used in:
(message has no fields)
Used in:
(message has no fields)
Used in:
(message has no fields)
Used in:
(message has no fields)
details of an TCP listener
Used in:
,client inactive time, in seconds
backend server inactive time, in seconds
time to connect to the backend, in seconds
wether the listener is actively listening on its socket
Used in:
,used to represent the 128 bits of an IPv6 address
Used in:
,higher value, first 8 bytes of the ip
lower value, last 8 bytes of the ip
Used in:
(message has no fields)
Information about a worker with id, pid, runstate
Used in:
A list of worker infos
Used in:
All metrics of a worker: proxy and clusters Populated by Options so partial results can be sent
Used in:
,Metrics of the worker process, key -> value
cluster_id -> cluster_metrics
This is sent only from Sōzu to Sōzu
Used in:
A response as sent by a worker
an associated message to detail failure, success or processing
a map of worker_id -> ResponseContent
Used in: