Proto commits in sozu-proxy/sozu

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:e77e822
Author:Eloi DEMOLIS

Fix header position parsing, fix automatic 502 Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:4eb3555
Author:Eloi DEMOLIS

Add custom headers on frontends Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:1309262
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Finalize authentication - Use Sha256 hashes - Add WWW_AUTHENTICATE variable to 401 templates Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:fb909a6
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Flag h2 at config level not frontend level Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:c7a9d95
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add h2 flag to frontends and in Router Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:f68a5c7
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add ALPN field to listener config, change listener builder Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:6110de3
Author:Eloi DEMOLIS

PoC authentication Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:663b67f
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Rewrite template providing to allow custom ones Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:4102871
Author:Eloi DEMOLIS

Add https_redirect_port on clusters Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:c9ffaae
Author:Eloi DEMOLIS

Add rewrite_port on frontends Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:5d7e0f9
Author:Eloi DEMOLIS

Allow clusterless redirections Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:50008c3
Author:Eloi DEMOLIS

URL rewrite and redirections Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:001b792
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Flag h2 at config level not frontend level Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:befbde1
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Add ALPN field to listener config, change listener builder Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:b11de16
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Add h2 flag to frontends and in Router Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:0561490
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Add ALPN field to listener config, change listener builder Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:9b26653
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Flag h2 at config level not frontend level Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:4196cea
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Add h2 flag to frontends and in Router Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:57923de
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

add request_time metric to access logs, BREAKING fix the response_time metric, request_time was wrongly assigned to it instead, response_time is assigned the value of backend_response_time Co-Authored-By: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

The documentation is generated from this commit.

Commit:64b558e
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

metrics: return histograms for time metrics create local type MetricsMap implement receive_metric function for local types add error management iterate logarithmically (base 2) to produce prometheus buckets optimize the listing of available metrics, with iterators optimize function dump_cluster_metrics

Commit:5deac5d
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

merge cluster metrics across workers The default behaviour is now to take all metrics from the AggregatedMetrics object, merge them by cluster id, and move them to the field AggregatedMetrics::clusters. The behaviour is avoidable with the option "metrics get --workers" Note: the function merge_cluster_metrics does not merge time metrics (percentiles), they are discarded. Prometheus histograms should be mergeable though, if bucket size is consistent.

Commit:6b4b96b
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

merge proxying metrics accross workers

Commit:97c9f30
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

display events in the CLI, document the use

Commit:ee2430f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

make Http[s]ListenerConfig::http_answers optional

Commit:55242ba
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

rename types rename DefaultAnswers to ListenerAnswers rename CustomAnswers to ClusterAnswers

Commit:6023216
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create protobuf type CustomHttpAnswers

Commit:618bed0
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

apply review: cosmetic changes

Commit:8e81a02
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

rename ProtobufAccessLog::error to 'message'

Commit:756b78b
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create type WebSocketContext the point is to use a structure instead of a text, for an easier parsing of the access log of the access logss

Commit:5f55561
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

rename log_access_* variables to access_logs_* apply clippy suggestions

Commit:0885863
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

Logger refactor: better structured logs and colored logs - Refactor the Logger with the new more powerful macro prompt_log - Explicitely take ownership of RequestRecord fields in access log macros, the user can decide the best way to pass them - Add logger specific fields in the RequestRecord - Add basic colors to logs and access logs, configurable in the condig, checked at runtime - Cache the Logger::enabled result at call site Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:dfacdb7
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

protobuf access logs configuration: - create configurable log_access_format: ascii or binary new types: - create protobuf type BinaryAccessLog, with subtypes - replace lib::logs::Endpoint with proto::command::BinaryEndpoint - use fixed32 for ipv4 addresses refactor: - remove log module in sozu_lib - isolate SessionMetrics::register_end_of_session transfer types to sozu_command_lib::logging: - CachedTags - RequestRecord - LogDuration - LogContext avoid allocation: - create unsafe trait DuplicateOwnership to display access logs - intermediate buffer in the logger Rewrite log macros: - remove separate TAG RefCell - move log backends and directives to InnerLogger - allow borrow of Logger::tag and Logger::inner simultaneously - check for Logger::enabled as soon as possible - deduplicate log macros with/without arguments - use scoped macro names instead of the alphabetic list Co-Authored-By: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:6aa45b9
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

fix and rewrite CertificateResolver refactor: - simplify overriding of certificate names and expiration - remove trait ResolveCertificate - rename MutexWrappedCertificateResolver to MutexCertificateResolver - rearrange error types, remove useless functions - change signature of get_cn_and_san_attributes fixes: - fix concurrent certificate insert in CertificateResolver - ensure proper removal of certificate in CertificateResolver - fix removal of certificate with identical fingerprint Co-Authored-By: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:5852c6b
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

pass initial state to workers in protobuf

Commit:6d43eb1
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

SCM sockets transmit listeners in binary format

Commit:4f2d760
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

translate ServerConfig in protobuf

Commit:e382a1c
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

translate WorkerRequest and WorkerResponse to protobuf

Commit:fb11245
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create protobuf type SocketAddress, use everywhere

Commit:f0ecc54
Author:Eloi DEMOLIS
Committer:Emmanuel Bosquet

rewrite CommandServer with MIO The multi-threaded, event-based architecture was too complicated and prevented introducing protobuf channels. The new CommandServer functions on the same principle as the proxy logic of Sōzu: listen to events with Mio in an event loop, dispatch the events accordingly by creating WorkerSessions, ClientSessions. This new CommandServer allows to create Tasks, that can scatter requests to all workers, gather their responses as the event loop goes, and invoke the task finish() when all responses are gathered. A worker whose unix socket is disconnected will be killed, and automatically restarted if configurated to. Conversely, if the main process dies, the orphaned workers will perform a hard stop. Sōzu channels used everywhere for communication with workers and clients. Automatic counting and respawning of workers, at each tick implement soft stop and hard stop improve CLI: - disable logging in CLI when displaying JSON - sort list of workers when displaying status error handling with thiserror remove obsolete documentation on managing workers remove unused dependencies: smol, futures, futures-lite, anyhow Co-Authored-By: Emmanuel BOSQUET <bjokac@gmail.com>

Commit:b7ef38f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

add no-clusters option on metrics query

Commit:0e62ff3
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

refactor cli display by creating Response::display remove bin/cli/display.rs since it is ported add json field to CommandManager add global json option to CLI arguments put certificate loading functions in certificate module

Commit:ef17772
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add h2 flag to frontends and in Router Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:68d8611
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add ALPN field to listener config, change listener builder Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:0c3c129
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

make send_tls13_tickets configurable the TLS 1.3 ticket increase the number of getrandom syscalls, with almost no influence on performance

Commit:74262f0
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add ALPN field to listener config, change listener builder Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:a47e900
Author:Eloi DEMOLIS
Committer:Eloi DEMOLIS

Add h2 flag to frontends and in Router Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>

Commit:9aba530
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

comments on metrics query

Commit:b34b60f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

count request types received in ConfigState documenting comments on ConfigState

Commit:721a951
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

merge request types into RequestType::QueryCertificatesFromWorkers

Commit:e24659d
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

introduce type QueryCertificatesFilters

Commit:9d554a5
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

rename ContentType::Certificates to CertificatesByAddress implement Display for CertificateSummary

Commit:2863c31
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

CLI: query all certificates in the state

Commit:308f22f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

remove type CertificateWithNames

Commit:4776d5f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

merge certificate types in CertificatesWithFingerprints

Commit:a71f485
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

query certificates from the state with fingerprint

Commit:8ea3768
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

CLI: show certificate validity

Commit:91dc12d
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

CertificatesMatchingADomainName contains CertificateAndKey

Commit:ca18682
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

query the state for a certificate, by domain

Commit:cdc8629
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

remove the DumpState command from the protobuf Request

Commit:78a6363
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

document protobuf in the sozu-command-lib README

Commit:d51590c
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write Response in protobuf

Commit:dbab4b4
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ResponseContent in protobuf

Commit:537e0e9
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ListedFrontends in protobuf

Commit:75b5ade
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create types ListOfCertificatesByAddress and CertificatesByAddress

Commit:802c3e9
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create type CertificateWithNames

Commit:f005d9a
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create type ClusterInformations

Commit:30e602d
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ClusterInformation in protobuf

Commit:2e26e76
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create type ClusterHashes

Commit:97fb5da
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write Event and EventKind in protobuf

Commit:7fb08f3
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

make response::Event a struct, create EventKind

Commit:d817d9d
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

create type WorkerInfos

Commit:582d285
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ResponseStatus in protobuf

Commit:66e36d6
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write Request in protobuf

Commit:dbd1fad
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write AvailableMetrics in protobuf

Commit:3e41887
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write AggregatedMetrics in protobuf

Commit:50b1a2e
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write HttpFrontendConfig in protobuf

Commit:a91a576
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write HttpsFrontendConfig in protobuf

Commit:6daea56
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write TcpListenerConfig in protobuf

Commit:bd6d535
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ListenersList in protobuf listeners are stored in BTreeMaps in ConfigState

Commit:7617b34
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ListenerType in protobuf

Commit:7254b98
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write RemoveListener in protobuf

Commit:c2df4b0
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ActivateListener in protobuf

Commit:d12920e
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write DeactivateListener in protobuf

Commit:19d2915
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

put field names to CertificateAndKey remove field names from RelpaceCertificate and AddCertificate

Commit:6716f8a
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write ProxyProtocolConfig in protobuf

Commit:4e1e7d0
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write LoadMetric in protobuf

Commit:25f6018
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write Cluster in protobuf

Commit:82bb6c5
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write RequestTcpFrontend in protobuf

Commit:685bb16
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write RemoveBackend in protobuf

Commit:bdd402f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write AddBackend and LoadBalancingParams in protobuf use ..Default::default() in state.rs

Commit:c3969d2
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write QueryClusterByDomain in protobuf

Commit:a87214f
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write QueryMetricsOptions in protobuf

Commit:ba6928c
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write MetricsConfiguration in protobuf

Commit:be75673
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write RunState in protobuf

Commit:a8c87a1
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write WorkerInfo in protobuf

Commit:c674b64
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write Percentiles in protobuf

Commit:f6a84e1
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write FilteredTimeSerie in protobuf

Commit:03332c7
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write FilteredMetrics in protobuf

Commit:332ed3e
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write BackendMetrics and ClusterMetrics in protobuf

Commit:1edcf68
Author:Emmanuel Bosquet
Committer:Emmanuel Bosquet

write WorkerMetrics in protobuf