Skip to content

Commit 6c093be

Browse files
sirainencmouse
authored andcommitted
Update event exporter settings
1 parent 470a08a commit 6c093be

File tree

4 files changed

+82
-63
lines changed

4 files changed

+82
-63
lines changed

data/settings.js

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5089,52 +5089,79 @@ Creates a new event exporter. The filter name refers to the
50895089
[[setting,event_exporter_name]] setting.`
50905090
},
50915091

5092-
event_exporter_name: {
5092+
event_exporter_driver: {
50935093
tags: [ 'event-export' ],
5094-
values: setting_types.STRING,
5095-
seealso: [ 'metric_exporter' ],
5094+
values: setting_types.ENUM,
5095+
values_enum: [ 'log', 'file', 'unix', 'http-post', 'drop' ],
5096+
default: 'log',
5097+
seealso: [ '[[link,event_export_drivers]]' ],
50965098
text: `
5097-
Name of the event exporter. It is referred by the [[setting,metric_exporter]]
5098-
settings.`
5099+
The event exporter driver to use.`
50995100
},
51005101

5101-
event_exporter_transport: {
5102+
event_exporter_http_post_url: {
51025103
tags: [ 'event-export' ],
51035104
values: setting_types.STRING,
5104-
seealso: [ '[[link,event_export_transports]]' ],
51055105
text: `
5106-
The transport to use.`
5106+
Target URL for [[setting,event_exporter_driver,http-post]].`
51075107
},
51085108

5109-
event_exporter_transport_args: {
5109+
event_exporter_file_path: {
51105110
tags: [ 'event-export' ],
51115111
values: setting_types.STRING,
5112-
seealso: [ '[[link,event_export_transports]]' ],
51135112
text: `
5114-
The transport arguments to use.`
5113+
Path to event log file with [[setting,event_exporter_driver,file]].`
51155114
},
51165115

5117-
event_exporter_transport_timeout: {
5116+
event_exporter_format: {
51185117
tags: [ 'event-export' ],
5119-
values: setting_types.TIME_MSECS,
5118+
values: setting_types.STRING,
5119+
seealso: [ '[[link,event_export_formats]]' ],
51205120
text: `
5121-
Abort the http-post request after this timeout.`
5121+
Format used for serializing the event.`
51225122
},
51235123

5124-
event_exporter_format: {
5124+
event_exporter_name: {
51255125
tags: [ 'event-export' ],
51265126
values: setting_types.STRING,
5127+
seealso: [ 'metric_exporter' ],
5128+
text: `
5129+
Name of the event exporter. It is referred by the [[setting,metric_exporter]]
5130+
settings.`
5131+
},
5132+
5133+
event_exporter_time_format: {
5134+
tags: [ 'event-export', 'event-exporter-format' ],
5135+
values: setting_types.ENUM,
5136+
values_enum: [ 'rfc3339', 'unix' ],
5137+
default: 'rfc3339',
51275138
seealso: [ '[[link,event_export_formats]]' ],
51285139
text: `
5129-
Format used for serializing the event.`
5140+
\`rfc3339\`
5141+
: Serialize timestamps as strings using the [[rfc,3339]] format
5142+
(\`YYYY-MM-DDTHH:MM:SS.uuuuuuZ\`).
5143+
5144+
\`unix\`
5145+
: Serialize timestamps as a floating point number of seconds since the Unix
5146+
epoch.`
51305147
},
51315148

5132-
event_exporter_format_args: {
5149+
event_exporter_unix_connect_timeout: {
5150+
tags: [ 'event-export' ],
5151+
values: setting_types.TIME_MSECS,
5152+
default: '250ms',
5153+
seealso: [ 'event_exporter_unix_path' ],
5154+
text: `
5155+
Timeout when connecting to unix socket with
5156+
[[setting,event_exporter_driver,unix]].`
5157+
},
5158+
5159+
event_exporter_unix_path: {
51335160
tags: [ 'event-export' ],
51345161
values: setting_types.STRING,
5135-
seealso: [ '[[link,event_export_formats]]' ],
5162+
seealso: [ 'event_exporter_unix_connect_timeout' ],
51365163
text: `
5137-
Format-specific arguments used for serializing the event.`
5164+
Path to event unix socket with [[setting,event_exporter_driver,unix]].`
51385165
},
51395166

51405167
execute: {

data/updates.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export const updates = {
2929
doveadm_mailbox_commands_user: '2.4.0',
3030
extra_fields_default: '2.4.0',
3131
extra_fields_empty: '2.4.0',
32-
event_export_transports_file_unix_added: '2.4.0',
32+
event_export_drivers_file_unix_added: '2.4.0',
3333
fs_crypt_require_encryption_keys: '2.4.0',
3434
fts_flatcurve: '2.4.0',
3535
imapc_features_no_acl: '2.4.0',

docs/core/config/events/export.md

Lines changed: 34 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ dovecotlinks:
99
event_export_formats:
1010
hash: formats
1111
text: "Event Export: Formats"
12-
event_export_transports:
13-
hash: transports
14-
text: "Event Export: Transports"
12+
event_export_drivers:
13+
hash: drivers
14+
text: "Event Export: Drivers"
1515
---
1616

1717
# Event Export
@@ -28,34 +28,31 @@ See Also:
2828

2929
The [[setting,event_exporter]] named list filter defines how
3030
[[link,summary_events]] should be exported. The basic definition is split into
31-
two orthogonal parts: the format and the transport.
31+
two orthogonal parts: the format and the driver.
3232

33-
The format and its arguments specify *how* an event is serialized, while the
34-
transport and its arguments specify *where* the serialized event is sent.
33+
The format and its settings specify *how* an event is serialized, while the
34+
driver and its settings specify *where* the serialized event is sent.
3535

3636
In both cases, the behavior is tweaked via the corresponding arguments
3737
setting.
3838

39-
For example, the following block defines an exporter that uses the `foo`
40-
transport and `json` format:
39+
For example, the following block defines an exporter that uses the `http-post`
40+
driver and `json` format:
4141

4242
```[dovecot.conf]
43-
event_exporter ABC {
43+
event_exporter http-localhost {
44+
driver = http-post
45+
http_post_url = http://localhost:1234/
46+
http_client_request_absolute_timeout = 500msec
47+
4448
format = json
45-
format_args = time-rfc3339
46-
transport = foo
47-
transport_args = bar
48-
transport_timeout = 500msec
49+
time_format = rfc3339
4950
}
5051
```
5152

5253
### Formats
5354

54-
The format and its arguments specify *how* an event is serialized.
55-
56-
Since some formats cannot express certain values natively (e.g., JSON does not
57-
have a timestamp data type), the `format_args` setting can be used to
58-
influence the serialization algorithm's output.
55+
The format and its settings specify *how* an event is serialized.
5956

6057
Supported Formats:
6158

@@ -64,13 +61,6 @@ Supported Formats:
6461
| `json` | JSON output |
6562
| `tab-text` | TAB-separated text fields |
6663

67-
Supported Format Arguments:
68-
69-
| Arguments | Description |
70-
| --------- | ----------- |
71-
| `time-rfc3339` | Serialize timestamps as strings using the [[rfc,3339]] format (`YYYY-MM-DDTHH:MM:SS.uuuuuuZ`) |
72-
| `time-unix` | Serialize timestamps as a floating point number of seconds since the Unix epoch |
73-
7464
#### Example: JSON
7565

7666
::: tip NOTE
@@ -109,25 +99,25 @@ whitespace between the various tokens.
10999
event:imap_command_finished hostname:dovecot-dev start_time:2019-06-19T10:38:25.422744Z end_time:2019-06-19T10:38:25.424812Z category:imap field:user=jeffpc field:session=xlBB1KqLz1isGwB+ field:tag=a0005 field:cmd_name=SELECT field:tagged_reply_state=OK field:tagged_reply=OK [READ-WRITE] Select completed field:last_run_time=2019-06-19T10:38:25.422709Z field:running_usecs=1953 field:lock_wait_usecs=60 field:net_in_bytes=7 field:net_out_bytes=311
110100
```
111101

112-
## Transports
102+
## Drivers
113103

114-
The transport and its arguments specify *where* the serialized event is sent.
104+
The driver and its settings specify *where* the serialized event is sent.
115105

116-
Supported Transports:
106+
Supported drivers:
117107

118-
| Transport | Description |
119-
| --------- | ----------- |
108+
| Driver | Description |
109+
| ------ | ----------- |
120110
| `drop` | Ignore the serialized event |
121111
| `log` | Send serialized event to syslog |
122-
| `http-post` | Send the serialized event as a HTTP POST payload to the URL specified in the `transport_arg` setting with a timeout specified by `transport_timeout`. Default is `250 milliseconds`. |
123-
| `file` | Send serialized events to a file specified in the `transport_arg` setting.<br />[[added,event_export_transports_file_unix_added]] |
124-
| `unix` | Send serialised events to a unix socket specified in the `transport_arg` setting. The `transport_timeout` setting is used to specify how long the unix socket connection can take. Default is `250 milliseconds`.<br />[[added,event_export_transports_file_unix_added]] |
112+
| `http-post` | Send the serialized event as a HTTP POST payload to [[setting,event_exporter_http_post_url]]. The driver defaults to [[setting,http_client_request_absolute_timeout,250 milliseconds]]. |
113+
| `file` | Send serialized events to a file specified in [[setting,event_exporter_file_path]]<br />[[added,event_export_drivers_file_unix_added]] |
114+
| `unix` | Send serialised events to a unix socket specified in [[setting,event_exporter_unix_path]]. The [[setting,event_exporter_unix_connect_timeout]] setting is used to specify how long the unix socket connection can take. Default is `250 milliseconds`.<br />[[added,event_export_drivers_file_unix_added]] |
125115

126-
The `drop` transport is useful when one wants to disable the event exporter
116+
The `drop` driver is useful when one wants to disable the event exporter
127117
temporarily. Note that serialization still occurs, but the resulting
128118
payload is simply freed.
129119

130-
The `log` transport is useful for debugging as typically one is already
120+
The `log` driver is useful for debugging as typically one is already
131121
looking at the logs.
132122

133123
::: warning
@@ -136,7 +126,7 @@ memory buffering the POST requests if the timeout for `http-post` is set
136126
very high, a lot of events are being generated, and the HTTP server is slow.
137127
:::
138128

139-
To reopen the files created by `file` transport, see
129+
To reopen the files created by `file` driver, see
140130
[[man,doveadm-stats,reopen]].
141131

142132
## Event Definition
@@ -165,11 +155,12 @@ a datalake having a HTTP API, one could use config such as:
165155

166156
```[dovecot.conf]
167157
event_exporter datalake {
158+
driver = http-post
159+
http_post_url = https://datalake.example.com/api/endpoint/somewhere
160+
http_client_request_absolute_timeout = 1sec
161+
168162
format = json
169-
format_args = time-rfc3339
170-
transport = http-post
171-
transport_args = https://datalake.example.com/api/endpoint/somewhere
172-
transport_timeout = 1sec
163+
time_format = rfc3339
173164
}
174165
175166
metric imap_commands {
@@ -184,9 +175,10 @@ For example, to output all named events from the IMAP service:
184175

185176
```[dovecot.conf]
186177
event_exporter log {
178+
driver = log
179+
187180
format = json
188-
format_args = time-rfc3339
189-
transport = log
181+
time_format = rfc3339
190182
}
191183
192184
metric imap_commands {

docs/installation/upgrade/include/2.3-to-2.4.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ rm -rf /etc/dovecot/acls/
322322
#### Exports
323323
324324
Events can now be exported to a local file or a unix socket. See
325-
[[link,event_export_transports]].
325+
[[link,event_export_drivers]].
326326
327327
### Doveadm HTTP API
328328

0 commit comments

Comments
 (0)