Commit Graph

196 Commits

Author SHA1 Message Date
Mike Hillyer 164f109326 Traffic Shaping Refactor First Pass 2026-06-09 13:23:56 -04:00
Wez Furlong b5fb4bd1f9 docs: replace manual http docs with generated docs
we now just have one section containing docs for the HTTP API,
which makes things a bit easier to reason about.
2026-02-02 08:17:20 +00:00
Mike Hillyer 9c16e45a92 Working on clarifying the scopes used in Kumo's shaping.lua. 2025-08-28 11:46:12 -04:00
Daniel Schaaff 3a42354289 fix prettier removing indentation on note section
Signed-off-by: Daniel Schaaff <daniel@danielschaaff.com>
2025-08-28 10:21:44 -04:00
Daniel Schaaff 1bcb2c31ac fix minor typo in logging doc 2025-08-28 10:21:44 -04:00
Pankaj Rathi eae61a90fe Add support for custom key names in HashiCorp Vault secrets (#399)
* Add support for custom key names in HashiCorp Vault secrets

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2025-07-25 06:02:21 +01:00
Mike Hillyer 58e9770206 We miss you Mister Rogers. 2025-07-18 12:11:14 -04:00
Mike Hillyer 34ceef78dd Update User Guide references to log_arf and log_oob to use the new LogThenRelay and LogThenDrop directives. 2025-07-09 15:11:42 -04:00
Bjarn Bronsveld 440fe285b2 Update user guide to replace 'log_fbl' with 'log_arf' in example 2025-06-29 09:24:09 +01:00
Mike Hillyer 9dba9c5b5f Update traffic shaping defaults to require TLS for Google as per conversation with Gmail admins. 2025-06-10 09:26:07 -04:00
Wez Furlong b8310da8be docs: add warning about logging headers
TL;DR: you can easily halve your system performance by logging headers
vs. logging meta.

This is one of those things that is easy to overlook or forget,
but: whenever you need to operate on the message data, rather
than its metadata, the aggregate cost is high.

In this case, we were recently troubleshooting a system where
the CPU was bogged down and we traced it to the logging configuration: a
number of message headers were being logged in a configuration that
made heavy use of throttles and limits in its traffic shaping, and
thus had a large number of Delayed and TransientFailure events being
written to the logs.

When logging headers, each one of those events requires loading
the message from the spool and parsing out the headers.  When the
average message size is ~100KB this imposes a notable overhead
on the CPU and IO utilization of the system.

What we recommend instead of logging headers directly is capturing
the information that you want to log into the message metadata
at the time that the message is received.

The message meta is usually already loaded, but is also typically
much smaller and easier to decode than the full message content
in the cases where it is not loaded.

As a result, it is much cheaper to log meta than to log headers.

This commit adds some warnings and cross links to help folks
be aware of this, and to generally navigate related meta and logging
topics more easily via tags.
2025-04-25 05:52:44 -07:00
Wez Furlong d21b98ab45 docs: format logging.md 2025-03-21 16:56:12 -07:00
Ryan Bonnell 0d7a0b4bd6 Clarify example of log format template usage for customization 2025-03-20 08:26:31 -07:00
Ryan Bonnell 04e52757a3 Re-wrap line breaks in comments for readability 2025-02-28 08:40:36 -08:00
Wez Furlong f210a95e37 dkim helper: fixup vault usage
Appending `.key` to the implicit vault path doesn't make a lot
of sense.

Removing extraneous slash from example in the docs.
2025-02-13 14:42:16 -07:00
Ryan Bonnell 9a19328f32 Fix mispelling in comment 2025-02-11 19:32:01 -07:00
Wez Furlong 01c52eef03 docs: update for 2025.01.23-7273d2bc release 2025-01-23 13:49:35 -07:00
Wez Furlong 44eacf1807 providers: add HostName to enable exactly matching MX hostnames 2024-12-16 14:09:01 -07:00
Wez Furlong cf911c4067 docs: update dev -> 2024.11.08-d383b033 2024-11-12 12:25:53 -07:00
Wez Furlong d383b033cf docs: add a refman section for template syntax 2024-11-08 10:37:08 -07:00
Mike Hillyer 77429c9e32 Add queue throttling to the queues page. 2024-11-05 17:21:35 -05:00
Laurent Marchaud 6142808730 fix a few typos in the docs
Signed-off-by: Laurent Marchaud <laurent@marchaud.com>
2024-10-24 12:10:53 -04:00
Mike Hillyer 4b26431879 Add a note on how provider and non provider throttles interact. 2024-09-16 15:08:57 -04:00
Mike Hillyer a643c07aaf Initial updates to quickstart tutorial, fix for shaping.toml regex strings and added a note about suffixes to the traffic shaping documentation. 2024-09-16 11:18:21 -04:00
Mike Hillyer 203a279076 Remove orphaned TODO block. 2024-09-12 14:49:15 -04:00
Mike Hillyer 6e32440e2e Cleanup, add link to reference manual. 2024-09-11 17:37:41 -04:00
Mike Hillyer cbddca008d Add a SuspendTenant example. 2024-09-11 17:32:21 -04:00
Mike Hillyer 94680db046 Update base shaping file as well as shaping documentation to show a setconfig example. 2024-09-11 17:25:08 -04:00
Mike Hillyer c610777312 Quick fix of backticks for console example. 2024-09-10 12:05:26 -04:00
Wez Furlong 84cb629c91 docs: fix doc build after tsa page was removed 2024-09-09 06:46:59 -07:00
Mike Hillyer 88fa36cbe0 Remove TSA page 2024-09-07 18:32:08 -04:00
Mike Hillyer c247db63d8 Quick update and format. 2024-09-07 18:30:22 -04:00
Mike Hillyer a0c4f17bef Inital Publish of Updated Traffic Shaping Section. 2024-09-07 18:25:40 -04:00
Wez Furlong 541b8f28e4 shaping: add provider concept to shaping helper
This enables shaping based on MX hostname and domain name matching
rules.

At a lower level, this is supported via two new options:
additional_connection_limits and additional_message_rate_throttles that
allow specifying arbitrarily scoped named limits and throttles, which
in addition to allowing provider-based rules in the shaping helper,
allow things like global or other more esoteric scoping of constraints.

closes: https://github.com/KumoCorp/kumomta/pull/260
2024-09-02 10:42:15 -07:00
Wez Furlong a42871cb11 docs: update since dev -> 2024.09.02-c5476b89 2024-09-02 07:27:50 -07:00
Wez Furlong 7961bff955 docs: split configure_local_logs into multiple pages 2024-08-18 22:28:41 -07:00
Wez Furlong 75e8a32b59 docs: split start_http_listener into multiple pages 2024-08-18 22:18:59 -07:00
Wez Furlong 1b32aa1b4b docs: split start_esmtp_listener into multiple pages 2024-08-18 20:02:35 -07:00
Wez Furlong dbdd69a8c7 docs: split make_egress_source into separate files 2024-08-18 19:47:35 -07:00
Wez Furlong 632357ac70 docs: split make_egress_pool into separate pages 2024-08-18 19:40:47 -07:00
Wez Furlong b775816885 docs: split make_egress_path into separate pages 2024-08-18 19:33:31 -07:00
Wez Furlong 1bd2b00b4e docs: move make_listener_domain options to their own pages 2024-08-18 19:19:30 -07:00
Wez Furlong 4af9c7035f docs: move make_queue_config fields to their own pages
This makes them easier to search for, and find.
2024-08-18 19:14:34 -07:00
Wez Furlong d014237eb7 docs: more tweaks to sources
try to nudge folks away from adopting copypasta of the advanced
section; we've seen more than few people using this when they
should just use the sources policy helper.

Add the note about the weighted robin implementation to make_egress_pool
as well.
2024-07-27 07:08:31 -07:00
Wez Furlong 70cb58a36f docs: add note on round robin to user guide section on IPs 2024-07-27 06:49:59 -07:00
Wez Furlong 4369bd8355 docs: document rollup module
closes: https://github.com/KumoCorp/kumomta/issues/213
2024-07-10 10:35:00 -07:00
Wez Furlong 9ea02c3968 docs: cover --validate mode
closes: #211
2024-07-10 08:16:31 -07:00
Wez Furlong f7604a3f7f docs: cut over toml examples to toml_data data macro
refs: https://github.com/KumoCorp/kumomta/issues/212
2024-07-03 16:09:52 -07:00
Wez Furlong e683fed556 docs: move Log Record to its own reference page
This makes it a bit easier to find and link to.
2024-06-27 08:28:45 -07:00
Wez Furlong cbcf5746f5 docs: fix broken doc build 2024-05-17 07:50:03 -07:00