diff --git a/components/prometheus.rst b/components/prometheus.rst
new file mode 100644
index 000000000..e49480ac9
--- /dev/null
+++ b/components/prometheus.rst
@@ -0,0 +1,46 @@
+Prometheus Component
+====================
+
+.. seo::
+ :description: Instructions for setting up a prometheus exporter with ESPHome.
+ :image: prometheus.png
+
+The ``prometheus`` component enables an HTTP endpoint for the
+:doc:`web_server` in order to integrate a `Prometheus `__ installation.
+
+This can be used to scrape data directly into your Prometheus-based monitoring and alerting-system,
+without the need of any other software.
+
+The list of available metrics can be found by directly browsing your node under
+``/metrics``, and may be increased in the future.
+
+.. code-block:: yaml
+
+ # Example configuration entry
+ web_server:
+
+ # Activates prometheus /metrics endpoint
+ prometheus:
+
+
+Configuration variables:
+------------------------
+
+- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
+
+.. note::
+
+ Example integration into the configuration of your prometheus:
+
+ .. code-block:: yaml
+
+ scrape_configs:
+ - job_name: esphome
+ static_configs:
+ - targets: []
+
+See Also
+--------
+
+- :apiref:`prometheus/prometheus_handler.h`
+- :ghedit:`Edit`
diff --git a/components/web_server.rst b/components/web_server.rst
index 25d1e53fe..2355b0935 100644
--- a/components/web_server.rst
+++ b/components/web_server.rst
@@ -50,7 +50,6 @@ Configuration variables:
- **username** (**Required**, string): The username to use for authentication.
- **password** (**Required**, string): The password to check for authentication.
-- **prometheus** (*Optional*, boolean): Enable the prometheus-endpoint. See :ref:`prometheus-exporter`.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
.. note::
@@ -65,7 +64,6 @@ Configuration variables:
auth:
username: admin
password: !secret web_server_password
- prometheus: true
Example web_server configuration with CSS and JS included from esphome-docs.
CSS and JS URL's are set to empty value, so no internet access is needed for this device to show it's web interface.
@@ -80,36 +78,9 @@ Configuration variables:
js_include: "../../../esphome-docs/_static/webserver-v1.min.js"
js_url: ""
-
-.. _prometheus-exporter:
-
-Prometheus Exporter:
---------------------
-
-The webserver can provide an `Prometheus `__-Exporter under ``/metrics``.
-
-This can be used to scrape data directly into your Prometheus-based monitoring and alerting-system,
-without the need of any other software.
-
-The prometheus-endpoint is activated by setting ``prometheus: true`` in the ``web_server``-area of
-the configuration.
-
-The list of available metrics can be found by directly browsing your node under
-``/metrics``, and may be increased in the future.
-
-.. note::
-
- Example integration into the configuration of your prometheus:
-
- .. code-block:: yaml
-
- scrape_configs:
- - job_name: esphome
- static_configs:
- - targets: []
-
See Also
--------
- :apiref:`web_server/web_server.h`
+- :doc:`prometheus`
- :ghedit:`Edit`
diff --git a/images/prometheus.svg b/images/prometheus.svg
new file mode 100644
index 000000000..ed33f03a5
--- /dev/null
+++ b/images/prometheus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/index.rst b/index.rst
index 345c67e64..f46f3e51c 100644
--- a/index.rst
+++ b/index.rst
@@ -353,6 +353,7 @@ Misc Components
Tuya MCU, components/tuya, tuya.png
Exposure Notifications, components/exposure_notifications, exposure_notifications.png
RTTTL Buzzer, components/rtttl, buzzer.jpg
+ Prometheus, components/prometheus, prometheus.svg
Additional Custom Components
----------------------------
diff --git a/svg2png/prometheus.png b/svg2png/prometheus.png
new file mode 100644
index 000000000..82cf5b30b
Binary files /dev/null and b/svg2png/prometheus.png differ