Prometheus Component
====================
.. seo::
:description: Instructions for setting up a prometheus exporter with ESPHome.
:image: prometheus.svg
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.
- **include_internal** (*Optional*, boolean): Whether ``internal`` entities should be displayed on the
web interface. Defaults to ``false``.
- **relabel** (*Optional*): Override metric labels. See :ref:`prometheus-relabel`
.. note::
Example integration into the configuration of your prometheus:
.. code-block:: yaml
scrape_configs:
- job_name: esphome
static_configs:
- targets: []
Metric Relabeling
-----------------
ESPHome allows you to do some basic relabeling of Prometheus metrics.
This is useful if you want to have different metric names or IDs than those shown in Home Assistant or the web interface.
You can relabel metric name or ID labels by adding a ``relabel`` block in the ``prometheus`` configuration,
and then adding a block with ``id`` and/or ``name`` fields for each sensor whose labels your want to override.
.. _prometheus-relabel:
``relabel``
***********
Set the ``id`` and ``name`` label values of the Prometheus metric for the sensor with the specified ID.
.. code-block:: yaml
# Example configuration entry
prometheus:
relabel:
my_voltage_sensor:
id: angry_pixies
name: "Angry Pixies"
See Also
--------
- :doc:`/components/web_server`
- :ref:`api-rest`
- :doc:`/components/http_request`
- :apiref:`prometheus/prometheus_handler.h`
- `Prometheus `__
- :ghedit:`Edit`