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

From Jwiki
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
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 single, cohesive, and maintainable port scheme that prevents conflicts and is easy to understand and extend.


== 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 [36].
* '''One List, One Standard''': This page is the single source of truth. All services that expose a Prometheus metrics endpoint '''must''' be included in this list with a unique port.
* '''Consistency is Key''': When a de facto standard port exists (e.g., `9100` for `node_exporter`), we will use it [39].
* '''Internal Consistency is Priority''': This list overrides external community standards or vendor defaults if they conflict with our internal, sequential scheme.
* '''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, 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 & Core Infrastructure (9100-9119) ==
These exporters monitor the fundamental layers of our stack, from physical hosts and hypervisors to container orchestration.
This block covers the foundational layer of our stack, from the observability agent itself to the hosts and orchestration platforms.


{| class="wikitable"
{| class="wikitable"
Line 17: Line 18:
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
| '''Grafana Alloy'''
| `9100`
| For exposing Alloy's '''own internal metrics''' to be scraped by Prometheus. Its separate management UI runs on port `12345`.
|-
|-
| '''Node Exporter'''
| '''Node Exporter'''
| 9100
| `9101`
| For Linux/Unix host metrics (CPU, RAM, disk, network). Universal and essential.
| Linux/Unix host metrics.
|-
|-
| '''Windows Exporter'''
| '''Windows Exporter'''
| 9109
| `9102`
| The equivalent of the Node Exporter for Windows hosts.
| Windows host metrics.
|-
|-
| '''Proxmox Exporter'''
| '''Blackbox Exporter'''
| 9105
| `9103`
| For Proxmox VE metrics (hypervisor, VM/container status, storage).
| Probing endpoints (ICMP/HTTP/TCP) for availability.
|-
|-
| '''cAdvisor'''
| '''cAdvisor'''
| 9103
| `9104`
| Provides container metrics. Essential on Kubernetes nodes and Docker hosts.
| Container-level resource usage metrics.
|-
|-
| '''kube-state-metrics'''
| '''kube-state-metrics'''
| 9104
| `9105`
| Exposes metrics about Kubernetes API objects (deployments, pods, services).
| Kubernetes API object state metrics.
|-
| '''Proxmox VE Exporter'''
| `9106`
| Proxmox hypervisor, VM, and container metrics.
|-
| '''eBPF Exporters'''
| `9107`
| For advanced Linux kernel telemetry.
|-
|-
| '''SNMP Exporter'''
| '''Process Exporter'''
| 9120
| `9108`
| For network and legacy equipment that exposes data via SNMP (switches, routers, printers).
| For detailed metrics on specific Linux processes.
|}
|}


----
----


== Observability Agent: Grafana Alloy ==
== Databases & Caching (9120-9139) ==
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, message queues, and related proxies.
 
* '''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 67:
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''PostgreSQL Exporter'''
| '''PostgreSQL Exporter'''
| 9107
| `9120`
| For PostgreSQL databases.
| For PostgreSQL databases.
|-
|-
| '''MySQL Exporter'''
| '''MySQL Exporter'''
| 9106
| `9121`
| For MySQL and MariaDB databases.
| For MySQL and MariaDB databases.
|-
|-
| '''Redis Exporter'''
| '''Redis Exporter'''
| 9108
| `9122`
| For Redis in-memory databases.
| For Redis in-memory databases.
|-
|-
| '''MongoDB Exporter'''
| '''MongoDB Exporter'''
| 9110
| `9123`
| For MongoDB databases.
| For MongoDB document databases.
|-
|-
| '''Elasticsearch Exporter'''
| '''Elasticsearch Exporter'''
| 9118
| `9124`
| For Elasticsearch and OpenSearch clusters.
| For Elasticsearch / OpenSearch clusters.
|-
| '''RabbitMQ Exporter'''
| `9125`
| For RabbitMQ message brokers.
|-
| '''Kafka Exporter'''
| `9126`
| For Apache Kafka cluster metrics.
|-
| '''Memcached Exporter'''
| `9127`
| For Memcached key-value stores.
|-
| '''Oracle DB Exporter'''
| `9128`
| For Oracle Database instances.
|-
| '''SQL Exporter'''
| `9129`
| For running generic SQL queries against various databases.
|-
| '''ClickHouse Exporter'''
| `9130`
| For ClickHouse columnar database.
|}
|}


----
----


== Applications & Services ==
== Applications & Web Services (9140-9159) ==
Exporters for common applications, web servers, and other services.
Web servers, application servers, and specific software platforms.


{| class="wikitable"
{| class="wikitable"
|+ Applications & Services
|+ Applications & Web Services
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''Blackbox Exporter'''
| '''JMX Exporter'''
| 9102
| `9140`
| For probing endpoints over HTTP, HTTPS, DNS, TCP, and ICMP to measure uptime.
| For any JVM-based application (e.g., Tomcat, custom Java apps).
|-
|-
| '''JMX Exporter'''
| '''Apache Exporter'''
| 9111
| `9141`
| For any Java application using JMX (e.g., Kafka, Cassandra, ActiveMQ).
| For Apache HTTPD servers.
|-
|-
| '''NGINX Exporter'''
| '''NGINX Exporter'''
| 9113
| `9142`
| For NGINX web and reverse proxy servers.
| For NGINX web servers and reverse proxies.
|-
| '''HAProxy Exporter'''
| `9143`
| For HAProxy load balancers.
|-
| '''PHP-FPM Exporter'''
| `9144`
| For PHP FastCGI Process Manager.
|-
| '''GitLab'''
| `9145`
| For the main GitLab application metrics.
|-
| '''GitLab Runner'''
| `9146`
| For GitLab Runner agents.
|-
|-
| '''RabbitMQ Exporter'''
| '''Consul Exporter'''
| 9116
| `9147`
| For RabbitMQ messaging systems.
| For HashiCorp Consul service mesh.
|-
| '''Nomad Exporter'''
| `9148`
| For HashiCorp Nomad cluster orchestrator.
|}
|}


<!--
----
== CI/CD & Development ==
 
Exporters for development tools and continuous integration pipelines.
== Networking, Security & Miscellaneous (9160-9189) ==
Exporters for network devices, protocols, security tools, and other utilities.


{| class="wikitable"
{| class="wikitable"
|+ CI/CD
|+ Networking, Security & Miscellaneous
|-
|-
! Exporter
! Exporter
! Recommended Port
! Assigned Port
! Notes
! Notes
|-
|-
| '''GitLab Exporter'''
| '''SNMP Exporter'''
| 9114
| `9160`
| For GitLab application metrics.
| For network gear (switches, routers) and other hardware via SNMP.
|-
|-
| '''GitLab Runner Exporter'''
| '''Script Exporter'''
| 9115
| `9161`
| For GitLab Runner agents.
| For wrapping arbitrary shell scripts as a metrics endpoint.
|-
| '''CloudWatch Exporter'''
| `9162`
| For fetching metrics from AWS CloudWatch.
|-
| '''Azure Exporter'''
| `9163`
| For fetching metrics from Azure Monitor.
|-
| '''Stackdriver Exporter'''
| `9164`
| For fetching metrics from Google Cloud Platform.
|-
| '''BIND Exporter'''
| `9165`
| For BIND DNS server metrics.
|-
| '''WireGuard Exporter'''
| `9166`
| For WireGuard VPN tunnel metrics.
|-
| '''OpenVPN Exporter'''
| `9167`
| For OpenVPN server metrics.
|-
| '''DHCPD Leases Exporter'''
| `9168`
| For monitoring DHCP server leases.
|}
|}
<!--
== Reserved for Future Use (9190-9999) ==
This block is reserved for future allocation. Please update this page before using a port from this range.
-->
-->
<!-- Add other categories as needed, such as "Cloud Services", "Networking", etc. -->


[[Category:Prometheus]]
[[Category:Prometheus]]
[[Category:Snippets & Notes]]
[[Category:Snippets & Notes]]
[[Category:Infrastructure Standard]]

Latest revision as of 16:22, 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 single, cohesive, and maintainable port scheme that prevents conflicts and is easy to understand and extend.

Guiding Principles

  • One List, One Standard: This page is the single source of truth. All services that expose a Prometheus metrics endpoint must be included in this list with a unique port.
  • Internal Consistency is Priority: This list overrides external community standards or vendor defaults if they conflict with our internal, sequential scheme.
  • Logical Grouping: Ports are allocated in logical, contiguous blocks, 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 & Core Infrastructure (9100-9119)

This block covers the foundational layer of our stack, from the observability agent itself to the hosts and orchestration platforms.

Core Infrastructure
Exporter Assigned Port Notes
Grafana Alloy `9100` For exposing Alloy's own internal metrics to be scraped by Prometheus. Its separate management UI runs on port `12345`.
Node Exporter `9101` Linux/Unix host metrics.
Windows Exporter `9102` Windows host metrics.
Blackbox Exporter `9103` Probing endpoints (ICMP/HTTP/TCP) for availability.
cAdvisor `9104` Container-level resource usage metrics.
kube-state-metrics `9105` Kubernetes API object state metrics.
Proxmox VE Exporter `9106` Proxmox hypervisor, VM, and container metrics.
eBPF Exporters `9107` For advanced Linux kernel telemetry.
Process Exporter `9108` For detailed metrics on specific Linux processes.

Databases & Caching (9120-9139)

Data stores, caches, message queues, and related proxies.

Databases & Caching
Exporter Assigned Port Notes
PostgreSQL Exporter `9120` For PostgreSQL databases.
MySQL Exporter `9121` For MySQL and MariaDB databases.
Redis Exporter `9122` For Redis in-memory databases.
MongoDB Exporter `9123` For MongoDB document databases.
Elasticsearch Exporter `9124` For Elasticsearch / OpenSearch clusters.
RabbitMQ Exporter `9125` For RabbitMQ message brokers.
Kafka Exporter `9126` For Apache Kafka cluster metrics.
Memcached Exporter `9127` For Memcached key-value stores.
Oracle DB Exporter `9128` For Oracle Database instances.
SQL Exporter `9129` For running generic SQL queries against various databases.
ClickHouse Exporter `9130` For ClickHouse columnar database.

Applications & Web Services (9140-9159)

Web servers, application servers, and specific software platforms.

Applications & Web Services
Exporter Assigned Port Notes
JMX Exporter `9140` For any JVM-based application (e.g., Tomcat, custom Java apps).
Apache Exporter `9141` For Apache HTTPD servers.
NGINX Exporter `9142` For NGINX web servers and reverse proxies.
HAProxy Exporter `9143` For HAProxy load balancers.
PHP-FPM Exporter `9144` For PHP FastCGI Process Manager.
GitLab `9145` For the main GitLab application metrics.
GitLab Runner `9146` For GitLab Runner agents.
Consul Exporter `9147` For HashiCorp Consul service mesh.
Nomad Exporter `9148` For HashiCorp Nomad cluster orchestrator.

Networking, Security & Miscellaneous (9160-9189)

Exporters for network devices, protocols, security tools, and other utilities.

Networking, Security & Miscellaneous
Exporter Assigned Port Notes
SNMP Exporter `9160` For network gear (switches, routers) and other hardware via SNMP.
Script Exporter `9161` For wrapping arbitrary shell scripts as a metrics endpoint.
CloudWatch Exporter `9162` For fetching metrics from AWS CloudWatch.
Azure Exporter `9163` For fetching metrics from Azure Monitor.
Stackdriver Exporter `9164` For fetching metrics from Google Cloud Platform.
BIND Exporter `9165` For BIND DNS server metrics.
WireGuard Exporter `9166` For WireGuard VPN tunnel metrics.
OpenVPN Exporter `9167` For OpenVPN server metrics.
DHCPD Leases Exporter `9168` For monitoring DHCP server leases.