erldns_listeners (erldns v7.0.0-rc2)

View Source

DNS 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 is any or a valid ip address in tuple or string format. Default is any.
  • Port is a valid port. Default is 53.
  • Protocol is either tcp or udp, or both. Default is both.
  • PFactor is a positive integer less than or equal to 512, indicating the parallelism factor. Default is 1.

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

config()

-type config() ::
          #{name := name(),
            transport => transport(),
            ip => inet:ip_address() | string() | any,
            port => inet:port_number(),
            parallel_factor => parallel_factor()}.

name()

-type name() :: atom().

parallel_factor()

-type parallel_factor() :: 1..512.

transport()

-type transport() :: tcp | udp | both.

Functions

init/1

-spec init(noargs) -> {ok, {supervisor:sup_flags(), [supervisor:child_spec()]}}.

start_link()

-spec start_link() -> supervisor:startlink_ret().