Commit Graph

75 Commits

Author SHA1 Message Date
Mike Hillyer 46a1462371 Fix indentation on troubleshooting page. 2024-10-16 12:20:30 -04:00
Wez Furlong 5e1ae20497 Add batching support for log hooks
This really is adding batching support to custom lua delivery
protocol handlers, but the main use case for these today is
to implement log hooks.

The way that it works is that you can specify a `batch_size`
as part of setting up the lua protocol handler.

Then, when it is time to send messages, if the batch_size is
the default of 1, the lua delivery logic will invoke the `send` method
on the connection object returned from the constructor.  This
is the same as the behavior from before this commit.

However, if the batch_size is greater than 1, then the lua delivery
logic will instead attempt to collect up to batch_size messages
that are immediately available from the ready queue, and then pass
those to a new `send_batch` method.

The send_batch method accepts an array of messages; that array will
always have at least one message, and up to batch_size messages,
depending on the throughput and queue size.

If the send_batch method's return value applies equally to all
messages in the batch, so if it indicates that something failed,
that disposition will apply to all messages.

One of the reasons that I'd avoided implementing batching thus far
was that it makes it awkward to resolve persistent/recurring issues
that are due to a single message in that batch.  If the batch is
always retried together then there is a good chance that it will
always fail together.

There's no explicit mitigation for that issue here, but it may
be probablistically mitigated by the jitter that is applied to
messages that transiently fail.  If a batch transiently fails,
each message in that batch will be subject to its own random
jitter which should cause an offending message to be retried
with a different subset of messages next time around.

The integration test included here demonstrates the batching
working with an http log hook implementation.
2024-09-16 18:14:25 -07:00
Wez Furlong 84cb629c91 docs: fix doc build after tsa page was removed 2024-09-09 06:46:59 -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 b775816885 docs: split make_egress_path into separate pages 2024-08-18 19:33:31 -07:00
Wez Furlong c1565d2478 docs: forgot to format 2024-07-10 10:34:21 -07:00
Wez Furlong af103457a7 docs: remove low-level webhook example
There are subtle edge cases that are handled by the helper,
so I want everyone to use the helper in order to reduce potential
headaches for everyone.
2024-07-10 08:27:55 -07:00
Wez Furlong f898e53502 docs: show how to setup up grafana dashboard
closes: https://github.com/KumoCorp/kumomta/issues/215
2024-07-10 07:10:05 -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
Mike Hillyer 77f9830513 Fix warning in the webhooks page 2024-06-19 16:55:52 -04:00
giuliano-mendez 2c307d4e41 Fix typo 2024-06-19 08:39:23 -07:00
Wez Furlong cbcf5746f5 docs: fix broken doc build 2024-05-17 07:50:03 -07:00
Tom Mairs 413590e22b add notes for starting and enabling tsa daemon 2024-04-30 23:45:10 +00:00
Mike Hillyer 080b38d9ad Add a warning to the webhooks helper about proper positioning of the log hooks and queue helper calls. 2024-04-16 14:57:09 -04:00
Mike Hillyer c3cf0d4666 Update shaping based on Comcast documents, add stack trace information to the documentation. 2024-04-03 10:08:43 -04:00
Wez Furlong cb94ad00b0 docs: fix link 2024-03-17 09:36:16 -07:00
Tom Mairs d961be87bf Update KumoProxy install instructions 2024-03-15 16:51:35 -06:00
Mike Hillyer dbb27a6037 Fixing relative URLs. 2024-03-15 16:39:54 -04:00
Mike Hillyer 37efa0e500 Correct link paths and spelling. 2024-03-15 16:32:20 -04:00
Tom Mairs 18b0520ca8 typo correction 2024-03-15 13:15:46 -06:00
Tom Mairs 7a7919a9f5 fix URLS 2024-03-15 12:54:02 -06:00
Tom Mairs 5e15003493 spelling corrections 2024-03-15 12:50:56 -06:00
Tom Mairs c48f7f6183 Add sbin utilities 2024-03-15 12:42:59 -06:00
Mike Hillyer 5359ec11a9 Adding a link to the page on How to read logs on the troubleshooting page. 2024-03-14 09:49:51 -04:00
Mike Hillyer 35c368b72e Add references to the validate-shaping utility to the userguide. 2024-03-11 15:41:16 -04:00
Mike Hillyer d58a888864 Typo fix for Usage of removed call in Docs #140 2024-02-23 18:01:01 -05:00
Mike Hillyer 72f2c04d47 Add queue-status command to kcli page of userguide. 2024-02-23 13:12:09 -05:00
Wez Furlong 5d206834ce docs: fixup outdated source + pool information
Some sections didn't get updated to match changes
around how pools and sources are retrieved from the
configuration.

Thanks to @farhadhf for raising this

closes: https://github.com/KumoCorp/kumomta/pull/107
2023-12-14 17:17:06 -07:00
Mike Hillyer 95c3e3b444 Build out new page on inbound SMTP AUTH, update related documents and TOC, rename smtpauth page outbound_auth to differentiate from inbound_auth.md. Update smtp listener page to point to it, update refman auth plain page to reflect latest fields. 2023-12-07 17:00:58 -05:00
Mike Hillyer 3c7aa802c8 update troubleshooting and get help pages 2023-11-26 09:22:07 -05:00
Tom Mairs 5808ed4f46 reword trace-smtp-server title 2023-11-15 20:04:11 +00:00
Tom Mairs d4258cd0a2 reword trace-smtp-server title 2023-11-15 17:01:25 +00:00
Tom Mairs 16051af60f add trace-smtp-server to kcls functions 2023-11-15 16:53:25 +00:00
Mike Hillyer b4a149a5f3 Add samples for webhooks to the example config, update webhooks docs page with helper info. 2023-11-14 18:18:47 -05:00
Mike Hillyer d9dd7ddea7 Change console example to match lua example. 2023-10-20 10:00:59 -04:00
Mike Hillyer 72d93f212d Update troubleshooting page based on Wez's feedback. 2023-10-20 09:34:42 -04:00
Mike Hillyer c8dd0e3f93 Fix path of link to troubleshooting page. 2023-10-19 22:45:47 -04:00
Mike Hillyer a8ae27fffb Add crossreference to troubleshooting page to the starting KumoMTA page. 2023-10-19 22:36:55 -04:00
Mike Hillyer d433bea3f1 Add troubleshooting page, add cross-reference from Tutorial, remove orphaned integration pages from Tutorial directory. 2023-10-19 22:22:33 -04:00
Wez Furlong 39a046e07c docs: add missing routing_domain param to get_queue_config event examples 2023-10-18 06:56:01 -07:00
Tom Mairs 748752ae18 Add Ongage sample 2023-10-17 17:59:34 +00:00
Mike Hillyer 97d8f24dc1 Remove source_address mentions from Proxy page. 2023-10-06 14:53:44 -04:00
Mike Hillyer 03b0d12b56 Finish initial edits of tutorial, move hasicorp content to user guide policy section, merge performance content into performance page in userguide operations section, pull lua page and add to userguide general section. Pull how it works, redundant to config concepts in user guide. 2023-09-28 16:56:23 -04:00
Wez Furlong 24909f4cde docs: update for 2023.08.22-4d895015 release 2023-08-25 08:38:09 -07:00
Wez Furlong dc78142c35 docs: operation: tidy up formatting, show more kcli usage 2023-08-11 10:36:32 -07:00
Tom Mairs 9a0855f11b update for name field in log_hook 2023-07-13 18:06:20 +00:00
Mike Hillyer dfd1e14497 Add documentation for kcli to user guide. 2023-07-11 17:12:30 -04:00