EMS Server Options

These options apply to server entries in ems.server_groups[].servers[] array of a server group.

ems.server_groups[].servers[].client_id

Client ID string to use as the base for the proxy's client ID for connections to this EMS server.

The actual client ID used by the proxy will be this base string, followed by a colon, followed by the current random http session ID. For example, My-Client-ID:jtsnC3ZLKHLM2_ZlL4oeMw.

Default value: none

Example usage:

Command Line

--ems.server_groups.{group name}.servers.{server role}.client_id My-Client-ID

Config File

ems:
  server_groups:
    - name: example
      servers:
        - role: srv1
          client_id: My-Client-ID

Environment Variable

EMSRESTD_EMS_SERVER_GROUPS_{GROUP NAME}_SERVERS_{SERVER ROLE}_CLIENT_ID='My-Client-ID'

ems.server_groups[].servers[].monitor_url

The EMS server monitor URL, used to determine health status of this server.

This URL must respond to a GET /isLive REST API call with a 200 OK response before the proxy's GET /health API will return 200 OK for this server.

Default value: none

Example usage:

Command Line

--ems.server_groups.{group name}.servers.{server role}.monitor_url http://localhost:7288

Config File

ems:
  server_groups:
    - name: example
      servers:
        - role: srv1
          monitor_url: http://localhost:7288

Environment Variable

EMSRESTD_EMS_SERVER_GROUPS_{GROUP NAME}_SERVERS_{SERVER ROLE}_MONITOR_URL='http://localhost:7288'

ems.server_groups[].servers[].role

Uniquely identifying name for this server. Role names must be unique within a server group, but do not need to be globally unique. Role names are user-defined and can be any string, however it is recommended to follow the Server Group and Server Role Name Guidelines for role names.

For a classic fault-tolerant EMS server pair using file-based stores, the conventional role names are "primary" and "secondary". For a group of three EMS servers using FTL stores, the conventional role names are "primary", "secondary" and "standby_only". Note that using these specific role names is not required.

This field is required for each server.

Default value: none

Example usage:

Command Line

Note: Server role names cannot be specified explicitly on the command-line; instead, like ems.server_groups[].name, they are set automatically when other command-line options reference them. For example, setting the tags server option on the command-line:
--ems.server_groups.foo.servers.srv1.tags tag1,tag2

will implicitly and automatically create a server group named "foo" if it does not already exist, and implicitly and automatically create a server inside server group "foo" with the role "primary" if it does not already exist. Server role names cannot be set by setting the "role" option directly; the following example will not work:

--ems.server_groups.foo.servers.srv1.role=srv2

Config File

ems:
  server_groups:
    - name: example
      servers:
        - role: srv1

Environment Variable

Note: Server role names cannot be specified explicitly via an environment variable; instead, like ems.server_groups[].name, they are set automatically when other environment variable options reference them. For example, setting the tags server option:
EMSRESTD_EMS_SERVER_GROUPS_FOO_SERVERS_SRV1_TAGS='tag1,tag2'

will implicitly and automatically create a server group named "foo" if it does not already exist, and implicitly and automatically create a server inside server group "foo" with the role "primary" if it does not already exist. Server role names cannot be set by setting the "role" option directly; the following example will not work:

EMSRESTD_EMS_SERVER_GROUPS_FOO_SERVERS_SRV1_ROLE=srv2

ems.server_groups[].servers[].tags[]

List of user-defined tags to apply to this server. REST API calls that support a server_tags query parameter to target a list of servers use the tags in this list to generate the list of servers to target.

Note: There are three dynamic server tags that are automatically set or unset on each server in a server group by the proxy based on the server's current state within the group. These tags are:
  • active

  • standby

  • standby_only

These three tags are reserved and cannot be specified in configuration.

Default value: none

Example usage:

Command Line

--ems.server_groups.{group name}.servers.{server role}.tags red,blue

Config File

ems:
  server_groups:
    - name: example
      servers:
        - role: srv1
          tags:
            - red
            - blue

Environment Variable

EMSRESTD_EMS_SERVER_GROUPS_{GROUP NAME}_SERVERS_{SERVER ROLE}_TAGS='red,blue'

ems.server_groups[].servers[].url

The EMS server URL, used to connect to this server.

This option is required.

Default value: none

Example usage:

Command Line

--ems.server_groups.{group name}.servers.{server role}.url tcp://localhost:7222

Config File

ems:
  server_groups:
    - name: example
      servers:
        - role: srv1
          url: tcp://localhost:7222

Environment Variable

EMSRESTD_EMS_SERVER_GROUPS_{GROUP NAME}_SERVERS_{SERVER ROLE}_URL='tcp://localhost:7222'