Commonly used Prometheus exporters and their recommended ports: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
= | = Prometheus Exporter Port Allocation Standard = | ||
This | This document defines the '''official internal standard''' for Prometheus exporter port assignments within our infrastructure. The primary goal is to create a cohesive, consistent, and maintainable port scheme that prevents conflicts and is easy to understand. | ||
== Guiding Principles == | == Guiding Principles == | ||
* ''' | * '''Internal Consistency is Priority''': This list is our single source of truth. It overrides external community standards if they conflict with our internal scheme. | ||
* ''' | * '''Uniqueness is Mandatory''': Every exporter in this list is assigned a unique port to prevent overlaps. | ||
* ''' | * '''Logical Grouping''': Ports are allocated in logical, contiguous blocks where possible, making the scheme predictable and easy to manage. | ||
* '''Documentation First''': Before deploying a new exporter, it '''must''' be added to this list with an assigned port. | |||
---- | ---- | ||
== Core Infrastructure & Virtualization == | == Observability Agent: Grafana Alloy == | ||
Grafana Alloy is a special case. It is a telemetry '''collector''', not a simple exporter. | |||
* '''Role''': Alloy is configured to scrape other exporters on their assigned ports (e.g., it scrapes Node Exporter on `9100`). It can also receive OpenTelemetry data (typically on port `4317`) and tail log files. | |||
* '''No "Exporter" Port''': Alloy does not have a single data-serving port itself. | |||
* '''Internal Ports''': | |||
** '''`12345`''': The default port for the Alloy management and debugging web UI. | |||
** '''`9090`''': If exposing Alloy's own internal metrics is required, it will be configured to use this port. | |||
---- | |||
== Core Infrastructure & Virtualization (9100-9109) == | |||
The fundamental layer of our stack. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 17: | Line 29: | ||
|- | |- | ||
! Exporter | ! Exporter | ||
! | ! Assigned Port | ||
! Notes | ! Notes | ||
|- | |- | ||
| '''Node Exporter''' | | '''Node Exporter''' | ||
| 9100 | | `9100` | ||
| | | Linux/Unix host metrics. This is the foundational exporter. | ||
|- | |- | ||
| '''Windows Exporter''' | | '''Windows Exporter''' | ||
| | | `9101` | ||
| | | Windows host metrics. Logically follows the Node Exporter. | ||
|- | |- | ||
| '''Proxmox Exporter''' | | '''Proxmox VE Exporter''' | ||
| | | `9102` | ||
| | | Proxmox hypervisor, VM, and container metrics. | ||
|- | |- | ||
| '''cAdvisor''' | | '''cAdvisor''' | ||
| 9103 | | `9103` | ||
| | | Container-level resource usage metrics. | ||
|- | |- | ||
| '''kube-state-metrics''' | | '''kube-state-metrics''' | ||
| 9104 | | `9104` | ||
| | | Kubernetes API object state metrics. | ||
|} | |} | ||
---- | ---- | ||
== | == Databases & Caching (9110-9119) == | ||
Data stores, caches, and queues. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 67: | Line 62: | ||
|- | |- | ||
! Exporter | ! Exporter | ||
! | ! Assigned Port | ||
! Notes | ! Notes | ||
|- | |- | ||
| '''PostgreSQL Exporter''' | | '''PostgreSQL Exporter''' | ||
| | | `9110` | ||
| For PostgreSQL | | For all PostgreSQL instances. | ||
|- | |- | ||
| '''MySQL Exporter''' | | '''MySQL Exporter''' | ||
| | | `9111` | ||
| For MySQL and MariaDB | | For all MySQL and MariaDB instances. | ||
|- | |- | ||
| '''Redis Exporter''' | | '''Redis Exporter''' | ||
| | | `9112` | ||
| For Redis | | For all Redis instances. | ||
|- | |- | ||
| '''MongoDB Exporter''' | | '''MongoDB Exporter''' | ||
| | | `9113` | ||
| For MongoDB | | For all MongoDB instances. | ||
|- | |- | ||
| '''Elasticsearch Exporter''' | | '''Elasticsearch Exporter''' | ||
| | | `9114` | ||
| For Elasticsearch | | For Elasticsearch / OpenSearch clusters. | ||
|- | |||
| '''RabbitMQ Exporter''' | |||
| `9115` | |||
| For RabbitMQ message brokers. | |||
|} | |} | ||
---- | ---- | ||
== Applications & | == Applications, Services & Proxies (9120-9129) == | ||
Web servers, proxies, and other user-facing or middleware applications. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 100: | Line 99: | ||
|- | |- | ||
! Exporter | ! Exporter | ||
! | ! Assigned Port | ||
! Notes | ! Notes | ||
|- | |- | ||
| '''Blackbox Exporter''' | | '''Blackbox Exporter''' | ||
| | | `9120` | ||
| | | Probing endpoints (HTTP, TCP, ICMP) for availability and performance. | ||
|- | |- | ||
| '''NGINX Exporter''' | | '''NGINX Exporter''' | ||
| | | `9121` | ||
| For NGINX web and reverse | | For NGINX web servers and reverse proxies. | ||
|- | |- | ||
| ''' | | '''JMX Exporter''' | ||
| | | `9122` | ||
| For | | For JVM-based applications (Kafka, Cassandra, etc.). | ||
|} | |} | ||
---- | |||
== CI/CD & Development == | |||
== CI/CD & Development (9130-9139) == | |||
Exporters for development tools and continuous integration pipelines. | Exporters for development tools and continuous integration pipelines. | ||
| Line 128: | Line 124: | ||
|- | |- | ||
! Exporter | ! Exporter | ||
! | ! Assigned Port | ||
! Notes | ! Notes | ||
|- | |- | ||
| '''GitLab | | '''GitLab''' | ||
| | | `9130` | ||
| For GitLab application metrics. | | For the main GitLab application metrics. | ||
|- | |- | ||
| '''GitLab Runner | | '''GitLab Runner''' | ||
| | | `9131` | ||
| For GitLab Runner agents. | | For GitLab Runner agents. | ||
|} | |} | ||
---- | |||
== Networking & Hardware (9140-9149) == | |||
Exporters for network devices and other hardware. | |||
{| class="wikitable" | |||
|+ Networking | |||
|- | |||
! Exporter | |||
! Assigned Port | |||
! Notes | |||
|- | |||
| '''SNMP Exporter''' | |||
| `9140` | |||
| For network gear (switches, routers) and other hardware supporting SNMP. | |||
|} | |||
<!-- | |||
== Reserved for Future Use (9150-9999) == | |||
This block is reserved for future allocation. | |||
--> | --> | ||
[[Category:Prometheus]] | [[Category:Prometheus]] | ||
[[Category:Snippets & Notes]] | [[Category:Snippets & Notes]] | ||
[[Category:Infrastructure Standard]] | |||
Revision as of 16:15, 27 August 2025
Prometheus Exporter Port Allocation Standard
This document defines the official internal standard for Prometheus exporter port assignments within our infrastructure. The primary goal is to create a cohesive, consistent, and maintainable port scheme that prevents conflicts and is easy to understand.
Guiding Principles
- Internal Consistency is Priority: This list is our single source of truth. It overrides external community standards if they conflict with our internal scheme.
- Uniqueness is Mandatory: Every exporter in this list is assigned a unique port to prevent overlaps.
- Logical Grouping: Ports are allocated in logical, contiguous blocks where possible, making the scheme predictable and easy to manage.
- Documentation First: Before deploying a new exporter, it must be added to this list with an assigned port.
Observability Agent: Grafana Alloy
Grafana Alloy is a special case. It is a telemetry collector, not a simple exporter.
- Role: Alloy is configured to scrape other exporters on their assigned ports (e.g., it scrapes Node Exporter on `9100`). It can also receive OpenTelemetry data (typically on port `4317`) and tail log files.
- No "Exporter" Port: Alloy does not have a single data-serving port itself.
- Internal Ports:
- `12345`: The default port for the Alloy management and debugging web UI.
- `9090`: If exposing Alloy's own internal metrics is required, it will be configured to use this port.
Core Infrastructure & Virtualization (9100-9109)
The fundamental layer of our stack.
| Exporter | Assigned Port | Notes |
|---|---|---|
| Node Exporter | `9100` | Linux/Unix host metrics. This is the foundational exporter. |
| Windows Exporter | `9101` | Windows host metrics. Logically follows the Node Exporter. |
| Proxmox VE Exporter | `9102` | Proxmox hypervisor, VM, and container metrics. |
| cAdvisor | `9103` | Container-level resource usage metrics. |
| kube-state-metrics | `9104` | Kubernetes API object state metrics. |
Databases & Caching (9110-9119)
Data stores, caches, and queues.
| Exporter | Assigned Port | Notes |
|---|---|---|
| PostgreSQL Exporter | `9110` | For all PostgreSQL instances. |
| MySQL Exporter | `9111` | For all MySQL and MariaDB instances. |
| Redis Exporter | `9112` | For all Redis instances. |
| MongoDB Exporter | `9113` | For all MongoDB instances. |
| Elasticsearch Exporter | `9114` | For Elasticsearch / OpenSearch clusters. |
| RabbitMQ Exporter | `9115` | For RabbitMQ message brokers. |
Applications, Services & Proxies (9120-9129)
Web servers, proxies, and other user-facing or middleware applications.
| Exporter | Assigned Port | Notes |
|---|---|---|
| Blackbox Exporter | `9120` | Probing endpoints (HTTP, TCP, ICMP) for availability and performance. |
| NGINX Exporter | `9121` | For NGINX web servers and reverse proxies. |
| JMX Exporter | `9122` | For JVM-based applications (Kafka, Cassandra, etc.). |
CI/CD & Development (9130-9139)
Exporters for development tools and continuous integration pipelines.
| Exporter | Assigned Port | Notes |
|---|---|---|
| GitLab | `9130` | For the main GitLab application metrics. |
| GitLab Runner | `9131` | For GitLab Runner agents. |
Networking & Hardware (9140-9149)
Exporters for network devices and other hardware.
| Exporter | Assigned Port | Notes |
|---|---|---|
| SNMP Exporter | `9140` | For network gear (switches, routers) and other hardware supporting SNMP. |