Commonly used Prometheus exporters and their recommended ports: Difference between revisions

From Jwiki
No edit summary
No edit summary
Line 1: Line 1:
= Commonly used Prometheus exporters and their recommended ports =
= Prometheus Exporter Port Allocation Standard =


This page serves as a centralized reference for the default and recommended TCP ports used by various Prometheus exporters. The goal is to maintain consistency and avoid port conflicts across our monitoring infrastructure.
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 ==
* '''IANA Unofficial Ports''': The port range `9100-9999` is the community-accepted range for monitoring exporters. We will adhere to this where possible.
* '''Internal Consistency is Priority''': This list is our single source of truth. It overrides external community standards if they conflict with our internal scheme.
* '''Consistency is Key''': When a de facto standard port exists (e.g., `9100` for `node_exporter`), we will use it.
* '''Uniqueness is Mandatory''': Every exporter in this list is assigned a unique port to prevent overlaps.
* '''Clarity Over Brevity''': For complex tools, a brief explanation is better than a single, potentially misleading port number.
* '''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 ==
These exporters monitor the fundamental layers of our stack, from physical hosts and hypervisors to container orchestration.
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
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''Node Exporter'''
| '''Node Exporter'''
| 9100
| `9100`
| For Linux/Unix host metrics (CPU, RAM, disk, network). Universal and essential.
| Linux/Unix host metrics. This is the foundational exporter.
|-
|-
| '''Windows Exporter'''
| '''Windows Exporter'''
| 9109
| `9101`
| The equivalent of the Node Exporter for Windows hosts.
| Windows host metrics. Logically follows the Node Exporter.
|-
|-
| '''Proxmox Exporter'''
| '''Proxmox VE Exporter'''
| 9105
| `9102`
| For Proxmox VE metrics (hypervisor, VM/container status, storage).
| Proxmox hypervisor, VM, and container metrics.
|-
|-
| '''cAdvisor'''
| '''cAdvisor'''
| 9103
| `9103`
| Provides container metrics. Essential on Kubernetes nodes and Docker hosts.
| Container-level resource usage metrics.
|-
|-
| '''kube-state-metrics'''
| '''kube-state-metrics'''
| 9104
| `9104`
| Exposes metrics about Kubernetes API objects (deployments, pods, services).
| Kubernetes API object state metrics.
|-
| '''SNMP Exporter'''
| 9120
| For network and legacy equipment that exposes data via SNMP (switches, routers, printers).
|}
|}


----
----


== Observability Agent: Grafana Alloy ==
== Databases & Caching (9110-9119) ==
Grafana Alloy is not a simple exporter but a powerful, vendor-neutral telemetry collector. It is designed to replace the need for multiple agents by handling metrics, logs, and traces in a single, configurable application.
Data stores, caches, and queues.
 
* '''Role''': Alloy acts as a central pipeline. You configure it to scrape other exporters (like `node_exporter`), receive OpenTelemetry data, and tail log files. It can then process and forward this data to Prometheus, Loki, Tempo, or any OTLP-compatible backend.
* '''No Single "Exporter" Port''': Because Alloy connects to other targets, it doesn't have one single port it "serves" metrics on.
* '''Management UI''': Alloy runs a web interface for debugging and inspecting its components on port '''`12345`''' by default.
* '''Internal Metrics''': You can configure Alloy to expose its own internal performance metrics on a Prometheus endpoint. If you do this, assigning it a dedicated port like '''`9101`''' from your list is a good practice.
 
; When to use Alloy
: Consider using Alloy when you need to collect multiple types of telemetry (metrics, logs, traces), perform advanced filtering or relabeling, or standardize your data collection across different teams and environments. It simplifies your deployment by reducing the number of running agents.
 
----
 
== Databases & Caching ==
Exporters for common databases, caches, and data stores.


{| class="wikitable"
{| class="wikitable"
Line 67: Line 62:
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''PostgreSQL Exporter'''
| '''PostgreSQL Exporter'''
| 9107
| `9110`
| For PostgreSQL databases.
| For all PostgreSQL instances.
|-
|-
| '''MySQL Exporter'''
| '''MySQL Exporter'''
| 9106
| `9111`
| For MySQL and MariaDB databases.
| For all MySQL and MariaDB instances.
|-
|-
| '''Redis Exporter'''
| '''Redis Exporter'''
| 9108
| `9112`
| For Redis in-memory databases.
| For all Redis instances.
|-
|-
| '''MongoDB Exporter'''
| '''MongoDB Exporter'''
| 9110
| `9113`
| For MongoDB databases.
| For all MongoDB instances.
|-
|-
| '''Elasticsearch Exporter'''
| '''Elasticsearch Exporter'''
| 9118
| `9114`
| For Elasticsearch and OpenSearch clusters.
| For Elasticsearch / OpenSearch clusters.
|-
| '''RabbitMQ Exporter'''
| `9115`
| For RabbitMQ message brokers.
|}
|}


----
----


== Applications & Services ==
== Applications, Services & Proxies (9120-9129) ==
Exporters for common applications, web servers, and other services.
Web servers, proxies, and other user-facing or middleware applications.


{| class="wikitable"
{| class="wikitable"
Line 100: Line 99:
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''Blackbox Exporter'''
| '''Blackbox Exporter'''
| 9102
| `9120`
| For probing endpoints over HTTP, HTTPS, DNS, TCP, and ICMP to measure uptime.
| Probing endpoints (HTTP, TCP, ICMP) for availability and performance.
|-
| '''JMX Exporter'''
| 9111
| For any Java application using JMX (e.g., Kafka, Cassandra, ActiveMQ).
|-
|-
| '''NGINX Exporter'''
| '''NGINX Exporter'''
| 9113
| `9121`
| For NGINX web and reverse proxy servers.
| For NGINX web servers and reverse proxies.
|-
|-
| '''RabbitMQ Exporter'''
| '''JMX Exporter'''
| 9116
| `9122`
| For RabbitMQ messaging systems.
| 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
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''GitLab Exporter'''
| '''GitLab'''
| 9114
| `9130`
| For GitLab application metrics.
| For the main GitLab application metrics.
|-
|-
| '''GitLab Runner Exporter'''
| '''GitLab Runner'''
| 9115
| `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.

Core Infrastructure
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.

Databases & Caching
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.

Applications & Services
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.

CI/CD
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.

Networking
Exporter Assigned Port Notes
SNMP Exporter `9140` For network gear (switches, routers) and other hardware supporting SNMP.