erldns_listeners (erldns v7.0.0-rc2)
View SourceDNS listeners configuration.
In order to configure, add to the application environment:
{erldns, [
{listeners, [
#{name => Name, transport => Protocol, ip => IP, port => Port, parallel_factor => PFactor}
]}
]}
where
Name
is any desired name in the form of an atom,IP
isany
or a valid ip address in tuple or string format. Default isany
.Port
is a valid port. Default is53
.Protocol
is eithertcp
orudp
, orboth
. Default isboth
.PFactor
is a positive integer less than or equal to 512, indicating the parallelism factor. Default is1
.
Telemetry events
Emits the following telemetry events:
[erldns, request, start]
- Measurements:
monotonic_time := integer() request_size := non_neg_integer()
- Metadata:
transport := udp | tcp
[erldns, request, stop]
- Measurements:
monotonic_time := integer() duration := non_neg_integer() response_size := non_neg_integer()
- Metadata:
transport := udp | tcp dnssec := boolean()
[erldns, request, error]
- Measurements:
count := non_neg_integer()
- Metadata:
transport := udp | tcp kind => exit | error | throw reason => term() stacktrace => [term()]
[erldns, request, timeout]
- Measurements:
count := non_neg_integer()
- Metadata:
transport := udp | tcp
Summary
Types
-type config() :: #{name := name(), transport => transport(), ip => inet:ip_address() | string() | any, port => inet:port_number(), parallel_factor => parallel_factor()}.
-type name() :: atom().
-type parallel_factor() :: 1..512.
-type transport() :: tcp | udp | both.
Functions
-spec init(noargs) -> {ok, {supervisor:sup_flags(), [supervisor:child_spec()]}}.
-spec start_link() -> supervisor:startlink_ret().