diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml
index ac38f6d7fc70c4d77e7aa16a5977ba04f0101c59..f44c73be66e9a3897a138e5f151fee0e9d9f8017 100644
--- a/roles/etcd/defaults/main.yml
+++ b/roles/etcd/defaults/main.yml
@@ -36,6 +36,9 @@ etcd_election_timeout: "5000"
 
 etcd_metrics: "basic"
 
+# Uncomment to set a separate port for etcd to expose metrics on
+# etcd_metrics_port: 2381
+
 ## A dictionary of extra environment variables to add to etcd.env, formatted like:
 ##  etcd_extra_vars:
 ##    ETCD_VAR1: "value1"
diff --git a/roles/etcd/templates/etcd.env.j2 b/roles/etcd/templates/etcd.env.j2
index 6cd760405ce0b1af23cc30376a4562c02ec6fc1a..536fd681578b97e51a4ae2d6e1b1b3b161a242c9 100644
--- a/roles/etcd/templates/etcd.env.j2
+++ b/roles/etcd/templates/etcd.env.j2
@@ -5,6 +5,9 @@ ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_peer_url }}
 ETCD_INITIAL_CLUSTER_STATE={% if etcd_cluster_is_healthy.rc != 0 | bool %}new{% else %}existing{% endif %}
 
 ETCD_METRICS={{ etcd_metrics }}
+{% if etcd_metrics_port is defined %}
+ETCD_LISTEN_METRICS_URLS=http://{{ etcd_address }}:{{ etcd_metrics_port }},http://127.0.0.1:{{ etcd_metrics_port }}
+{% endif %}
 ETCD_LISTEN_CLIENT_URLS=https://{{ etcd_address }}:2379,https://127.0.0.1:2379
 ETCD_ELECTION_TIMEOUT={{ etcd_election_timeout }}
 ETCD_HEARTBEAT_INTERVAL={{ etcd_heartbeat_interval }}