Wiki page with default port allocation of prometheus exporters was overwritten

What did you do?

I allocated the port 9641 for my prometheus exporter mqtt2prometheus. This was done in the commit/revision 60c661b7a1d662b18a6da2c11f2de1392306edd0 (Tue Jun 9 16:12:24 2020) of the wiki page.

What did you expect to see?

I expected that this port allocation to be final until I or some maintainer remove this allocation.

What did you see instead? Under which circumstances?

A user of my exporter raised an issue on Nov 20 2020 that the default port my exporter uses (9641) was allocated to another exporter (CoTURN). hikhvar/mqtt2prometheus#28

I had a look at the git history of the wiki page and saw that in commit 568bc94f8d15c122bf1e1642a7ffb850886087b8 many exporter were set (accidentally) to FREE. Including the port 9641. This “free” port was later (8c406f89c5e7a1f5ff4a69e0bc3dd3ca5420db17) allocated to the CoTURN exporter.

My question is: How do we avoid this issue in the future? Is the process of editing the wiki page enough to prevent port collisions?

  • Logs:
    Valid allocation by CoTURN exporter
commit 8c406f89c5e7a1f5ff4a69e0bc3dd3ca5420db17
Author: wolmi <lenyos@gmail.com>
Date:   Wed Jul 29 00:48:28 2020 +0200

    Added allocation port for CoTURN

diff --git a/Default-port-allocations.md b/Default-port-allocations.md
index c9d1ec8..f79078c 100644
--- a/Default-port-allocations.md
+++ b/Default-port-allocations.md
@@ -563,7 +563,7 @@ If you do not have a public repository with working code, please do not allocate
 | 9638 | [A Icinga2 exporter](https://github.com/opsdis/icinga2-exporter) |
 | 9639 | [Scriptable JMX Exporter](https://github.com/eiiches/scriptable-jmx-exporter) |
 | 9640 | [Logstash Output Exporter](https://github.com/SpencerMalone/logstash-output-prometheus) |
-| 9641 | "FREE" |
+| 9641 | [CoTURN exporter](https://github.com/coturn/coturn) |
 | 9642 | [Bugsnag Exporter](https://github.com/ZeitOnline/bugsnag_exporter) |
 | 9643 | "FREE" |
 | 9644 | [Exporter for grouped process](https://github.com/k1LoW/grouped_process_exporter) |

Valid allocation by mqtt2prometheus exporter

Author: Christoph Petrausch <263448+hikhvar@users.noreply.github.com>
Date:   Tue Jun 9 16:12:24 2020 +0200

    Allocate port for mqtt2prometheus as suggested in https://github.com/prometheus/docs/pull/1649

diff --git a/Default-port-allocations.md b/Default-port-allocations.md
index 9d4b273..167f294 100644
--- a/Default-port-allocations.md
+++ b/Default-port-allocations.md
@@ -562,7 +562,7 @@ If you do not have a public repository with working code, please do not allocate
 | 9638 | [A Icinga2 exporter](https://github.com/opsdis/icinga2-exporter) |
 | 9639 | [Tinkerforge Brickd Exporter](https://github.com/vetinari/brickd_exporter) |
 | 9640 | [Logstash Output Exporter](https://github.com/SpencerMalone/logstash-output-prometheus) |
-| 9641 | "FREE" |
+| 9641 | [MQTT2Prometheus](https://github.com/hikhvar/mqtt2prometheus) |
 | 9642 | [Bugsnag Exporter](https://github.com/ZeitOnline/bugsnag_exporter) |
 | 9643 | "FREE" |
 | 9644 | [Exporter for grouped process](https://github.com/k1LoW/grouped_process_exporter) |

Unintentionally? freeing alot of ports:

commit 568bc94f8d15c122bf1e1642a7ffb850886087b8
Author: Sven-Hendrik Haase <svenstaro@gmail.com>
Date:   Wed Jun 24 00:56:20 2020 +0200

    Add site24x7_exporter for monitors on site24x7.com

diff --git a/Default-port-allocations.md b/Default-port-allocations.md
index 145b526..01bb36d 100644
--- a/Default-port-allocations.md
+++ b/Default-port-allocations.md
@@ -2,7 +2,7 @@ See https://prometheus.io/docs/instrumenting/writing_exporters/#port-numbers for
 
 **Please look for open ports on this list (Ctrl+F "FREE") before adding a new port. Thanks!**
 
-If you do not have a public repository with working code or you do not intend to immediately begin work on a project, please do not allocate a port.
+If you do not have a public repository with working code, please do not allocate a port. If a project is work-in-progress/WIP, please wait until you are ready to share it with others.
 
 ## Core components starting at 9090
 
@@ -83,7 +83,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9162 | [apcupsd exporter](https://github.com/mdlayher/apcupsd_exporter) |
 | 9163 | [zgres exporter](https://github.com/jinty/zgres/blob/master/zgres/prometheus.py) |
 | 9164 | [s6_exporter](https://github.com/imgix/s6_exporter) |
-| 9165 | [AWS instance health exporter](https://github.com/bobtfish/aws-instance-health-exporter) |
+| 9165 | "FREE" |
 | 9166 | [Dovecot exporter](https://github.com/kumina/dovecot_exporter) |
 | 9167 | [Unbound exporter](https://github.com/kumina/unbound_exporter) |
 | 9168 | [gitlab-monitor](https://gitlab.com/gitlab-org/gitlab-monitor/) |
@@ -100,7 +100,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9179 | [Shield exporter](https://github.com/bosh-prometheus/shield_exporter) |
 | 9180 | [ScyllaDB exporter](https://github.com/scylladb/scylla) |
 | 9181 | [Openstack Ceilometer exporter](https://github.com/carlpett/openstack-ceilometer_exporter) |
-| 9182 | [Windows exporter](https://github.com/prometheus-community/windows_exporter/) _(Formerly wmi_exporter)_ |
+| 9182 | [WMI exporter](https://github.com/martinlindhe/wmi_exporter/) |
 | 9183 | [Openstack exporter](https://github.com/CanonicalLtd/prometheus-openstack-exporter)  |
 | 9184 | [Twitch exporter](https://github.com/damoun/twitch_exporter) |
 | 9185 | [Kafka topic exporter](https://github.com/ogibayashi/kafka-topic-exporter) |
@@ -207,7 +207,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9285 | [Database exporter](https://github.com/Corundex/database_exporter) (oracle/postgres/mssql/mysql sql queries)x |
 | 9286 | [VDO Compression and deduplication exporter](https://github.com/pcuzner/vdo_exporter)  |
 | 9287 | [Ceph iSCSI Gateway Statistics](https://github.com/ceph/ceph-iscsi) |
-| 9288 | [Elgato Key Light exporter](https://github.com/mdlayher/keylight_exporter) |
+| 9288 | "FREE" |
 | 9289 | [Lovoo's IPMI Exporter](https://github.com/lovoo/ipmi_exporter) (to be run on the IPMI host itself) |
 | 9290 | [SoundCloud's IPMI Exporter](https://github.com/soundcloud/ipmi_exporter) (querying IPMI externally, blackbox-exporter style) |
 | 9291 | [IBM Z HMC Exporter](https://github.com/zhmcclient/zhmc-prometheus-exporter) |
@@ -313,6 +313,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9390 | [Kannel Exporter](https://github.com/apostvav/kannel_exporter) |
 | 9391 | [Concourse Prometheus Metrics](https://concourse.ci/metrics.html) |
 | 9392 | [Generic Command Line Output Exporter](https://github.com/MarioMartReq/generic-exporter) |
+| 9393 | "FREE" |
 | 9393 | [Alertmanager Github Webhook Receiver](https://github.com/m-lab/alertmanager-github-receiver) |
 | 9394 | [Ruby Prometheus Exporter](https://github.com/discourse/prometheus_exporter) |
 | 9395 | [LDAP Exporter](https://github.com/titisan/ldap_exporter) |
@@ -396,8 +397,8 @@ If you do not have a public repository with working code or you do not intend to
 | 9473 | [stellar-core-exporter](https://github.com/stellar/packages/blob/master/stellar-core-prometheus-exporter/stellar-core-prometheus-exporter.py) |
 | 9474 | [libvirtd_exporter](https://github.com/vexxhost/libvirtd_exporter) |
 | 9475 | [wgipamd](https://github.com/mdlayher/wgipam) |
-| 9476 | [immugw exporter](https://github.com/codenotary/immudb)  |
-| 9477 | [immuclient exporter](https://github.com/codenotary/immudb)  |
+| 9476 | "FREE" |
+| 9477 | "FREE" |
 | 9478 | [Sentinel exporter](https://github.com/sportradar/sentinel-exporter) |
 | 9479 | [Elasticbeat exporter](https://github.com/trustpilot/beat-exporter)  (filebeat, metricbeat, packetbeat, etc...)  |
 | 9480 | [Brigade exporter](https://github.com/slok/brigade-exporter) |
@@ -459,7 +460,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9536 | [IPsec exporter](https://github.com/dennisstritzke/ipsec_exporter) |
 | 9537 | [CRI-O](https://github.com/kubernetes-sigs/cri-o) |
 | 9538 | [Bull Queue](https://github.com/UpHabit/bull_exporter) |
-| 9539 | [Dedibox Exporter](https://github.com/FinweVI/dedibox-exporter) |
+| 9539 | "FREE" |
 | 9540 | [EMQ exporter](https://github.com/nuvo/emq_exporter) |
 | 9541 | [smartmon_exporter](https://github.com/tobbez/smartmon_exporter) |
 | 9542 | [SakuraCloud exporter](https://github.com/sacloud/sakuracloud_exporter) |
@@ -533,7 +534,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9609 | [netapp exporter](https://github.com/jenningsloy318/netapp_exporter) |
 | 9610 | [kubernetes_exporter](https://github.com/shalb-docker/kubernetes_exporter) |
 | 9611 | [speedport_exporter](https://gitlab.com/chrko/speedport-exporter) |
-| 9612 | [GitHub Exporter](https://github.com/xrstf/github_exporter) |
+| 9612 | "FREE" |
 | 9613 | [Azure Health Exporter](https://github.com/FXinnovation/azure-health-exporter)  |
 | 9614 | [NUT upsc Exporter](https://github.com/jzck/prometheus-upsc-exporter) |
 | 9615 | [Mellanox mlx5 Exporter](https://github.com/david-macmahon/prometheus-mlx5-exporter) |
@@ -553,16 +554,16 @@ If you do not have a public repository with working code or you do not intend to
 | 9629 | [Prometheus GitLab notifier](https://github.com/FUSAKLA/prometheus-gitlab-notifier) |
 | 9630 | [nftables exporter](https://github.com/Sheridan/nftables_exporter) |
 | 9631 | [A OP5 Monitor exporter](https://github.com/opsdis/monitor-exporter) |
-| 9632 | [Belkin Wemo Insight exporter (WIP)](https://github.com/sbates130272/wemo-exporter) |
+| 9632 | "FREE" |
 | 9633 | [smartctl exporter](https://github.com/Sheridan/smartctl_exporter) |
 | 9634 | [Aerospike ttl exporter](https://github.com/Alb0t/aerospike-ttl-exporter) |
-| 9635 | [PuppetDB Exporter](https://github.com/camptocamp/prometheus-puppetdb-exporter) |
-| 9636 | [Fail2Ban Exporter](https://github.com/lfuelling/fail2ban-exporter) |
+| 9635 | [Fail2Ban Exporter](https://github.com/lfuelling/fail2ban-exporter) |
+| 9636 | "FREE" |
 | 9637 | [KubeVersion Exporter](https://github.com/ricoberger/kubeversion-exporter)
 | 9638 | [A Icinga2 exporter](https://github.com/opsdis/icinga2-exporter) |
-| 9639 | [Tinkerforge Brickd Exporter](https://github.com/vetinari/brickd_exporter) |
+| 9639 | "FREE" |
 | 9640 | [Logstash Output Exporter](https://github.com/SpencerMalone/logstash-output-prometheus) |
-| 9641 | [MQTT2Prometheus](https://github.com/hikhvar/mqtt2prometheus) |
+| 9641 | "FREE" |
 | 9642 | [Bugsnag Exporter](https://github.com/ZeitOnline/bugsnag_exporter) |
 | 9643 | "FREE" |
 | 9644 | [Exporter for grouped process](https://github.com/k1LoW/grouped_process_exporter) |
@@ -575,12 +576,12 @@ If you do not have a public repository with working code or you do not intend to
 | 9651 | [Storj Exporter](https://github.com/anclrii/Storj-Exporter) |
 | 9652 | [Praefect Exporter](https://gitlab.com/gitlab-org/gitaly/tree/master/cmd/praefect) |
 | 9653 | [Jira Issues Exporter](https://github.com/ZeitOnline/jira_exporter) |
-| 9654 | [Kuryr-Kubernetes Controller](https://github.com/openshift/kuryr-kubernetes) |
-| 9655 | [Kuryr-Kubernetes CNI](https://github.com/openshift/kuryr-kubernetes) |
+| 9654 | "FREE" |
+| 9655 | "FREE" |
 | 9656 | [Matrix](https://github.com/matrix-org/synapse/blob/master/docs/metrics-howto.md) |
 | 9657 | [Krill exporter](https://github.com/NLnetLabs/krill) |
 | 9658 | [SAP Hana SQL Exporter](https://github.com/ulranh/hana_sql_exporter) |
-| 9659 | [ECS task metadata exporter](https://github.com/Clever/ecs-task-metadata-exporter) |
+| 9659 | "FREE" |
 | 9660 | [Kaiterra Laser Egg Exporter](https://github.com/mhansen/kaiterra_laser_egg_exporter) |
 | 9661 | [Hashpipe Exporter](https://github.com/david-macmahon/rb-hashpipe) |
 | 9662 | [PMS5003 Particulate Matter Sensor Exporter](https://github.com/mhansen/breathe) |
@@ -630,8 +631,8 @@ If you do not have a public repository with working code or you do not intend to
 | 9706 | [Postfix exporter](https://github.com/vinted/postfix-exporter) |
 | 9707 | [Radarr exporter](https://github.com/onedr0p/radarr-exporter) |
 | 9708 | [Sonarr exporter](https://github.com/onedr0p/sonarr-exporter) |
-| 9709 | [float_exporter](https://github.com/tobiasbp/float_exporter) |
-| 9710 | [Fortigate exporter](https://github.com/bluecmd/fortigate_exporter) |
+| 9709 | "FREE" |
+| 9710 | "FREE" |
 | 9711 | [Cloudflare Flan Scan report exporter](https://github.com/MauveSoftware/flan_exporter) |
 | 9712 | [Siemens S7 PLC exporter](https://github.com/MarcusCalidus/s7-plc-exporter) |
 | 9713 | [GlusterFS Exporter](https://github.com/gluster/gluster-prometheus) |
@@ -644,7 +645,7 @@ If you do not have a public repository with working code or you do not intend to
 | 9720 | [Moodle DB Exporter](https://github.com/debugloop/moodledb_exporter) | 
 | 9721 | "FREE" |
 | 9722 | [Miele Exporter](https://github.com/gebn/miele_exporter)  |
-| 9723 | [FEST](https://github.com/bluecmd/fest) frontend / proxy |
+| 9723 | "FREE" |
 | 9724 | [FreeSWITCH Exporter](https://github.com/znerol/prometheus-freeswitch-exporter) |
 | 9725 | [sunnyboy_exporter](https://github.com/roidelapluie/sunnyboy_exporter) |
 | 9726 | [Python RQ Exporter](https://github.com/mdawar/rq-exporter) |
@@ -663,15 +664,10 @@ If you do not have a public repository with working code or you do not intend to
 | 9739 | [Kafka Consumer Lag Monitoring](https://github.com/omarsmak/kafka-consumer-lag-monitoring) |
 | 9740 | [flightdeck](https://github.com/mdlayher/flightdeck) |
 | 9741 | [IBM Spectrum Exporter](https://github.com/topine/ibm-spectrum-exporter) |
-| 9742 | [Nature Remo E series Exporter](https://github.com/sorah/remo-e-exporter) |
-| 9743 | [GitLab CI Server Exporter](https://gitlab.com/rsrchboy/gitlab_ciserver_exporter) |
-| 9744 | [NSX-T Exporter](https://github.com/jk8s/nsxt_exporter) |
-| 9745 | [Cryptowat Exporter](https://github.com/nbarrientos/cryptowat_exporter) |
-| 9746 | [LDAP_exporter.py](https://github.com/CJosso/ldap_exporter.py) |
-| 9747 | [TED5000 Energy monitor exporter](https://github.com/prg3/ted5000_exporter) | 
+| ... | "FREE" (pick a port in between here please) |
+| 9803 | [site24x7 Exporter](https://github.com/svenstaro/site24x7_exporter) |
 | ... | "FREE" (pick a port in between here please) |
 | 9901 | [Envoy proxy](https://github.com/envoyproxy/envoy), since [v1.7.0](https://www.envoyproxy.io/docs/envoy/v1.7.0/intro/version_history#id1) ([doc](https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--stats?format=prometheus)) |
-| 9911 | [Skipper Exporter](https://opensource.zalando.com/skipper/operation/operation/#prometheus) |
 | 9913 | [Nginx VTS Exporter](https://github.com/hnlq715/nginx-vts-exporter) |
 | 9980 | [Login Exporter](https://github.com/uniwue-rz/login_exporter)|
 | 9943 | [FileStat Exporter](https://github.com/michael-doubez/filestat_exporter) |
@@ -679,12 +675,11 @@ If you do not have a public repository with working code or you do not intend to
 | 9984 | [CouchDB exporter](https://github.com/gesellix/couchdb-exporter) |
 | 9987 | [NetApp Solidfire Exporter](https://github.com/mjavier2k/solidfire-exporter) |
 | 9990 | [Wildfly Exporter](https://docs.wildfly.org/18/Admin_Guide.html#MicroProfile_Metrics_SmallRye) |
-| 9995 | [NUT Exporter (by HON95)](https://github.com/HON95/prometheus-nut-exporter) |
 | 9999 | [Exporter exporter](https://github.com/QubitProducts/exporter_exporter) |
 
 **Please look for open ports on this list (Ctrl+F "FREE") before adding a new port. Thanks!**
 
-If you do not have a public repository with working code or you do not intend to immediately begin work on a project, please do not allocate a port.
+If you do not have a public repository with working code, please do not allocate a port. If a project is work-in-progress/WIP, please wait until you are ready to share it with others.
 
 Add new exporters above. If there's a gap try to fill it, otherwise add 1 to the last entry.
 
@@ -699,11 +694,9 @@ Add new exporters above. If there's a gap try to fill it, otherwise add 1 to the
 | 8088 | [Fawkes](https://www.fawkesrobotics.org) |
 | 8089 | [prom2teams](https://github.com/idealista/prom2teams) |
 | 8292 | [Phabricator webhook for Alertmanager](https://github.com/knyar/phalerts) |
-| 8334 | [Bitcoin exporter](https://github.com/jvstein/bitcoin-prometheus-exporter/) |
 | 8404 | [HA Proxy (v2+)](https://www.haproxy.com/blog/haproxy-exposes-a-prometheus-metrics-endpoint/) |
 | 9042 | [rds_exporter](https://github.com/percona/rds_exporter) |
 | 9087 | [Telegram bot for Alertmanager](https://github.com/inCaller/prometheus_bot) |
-| 9095 | [Layer2_Exporter Network Inventory](https://github.com/RamboRogers/layer2_exporter/) |
 | 9097 | [JIRAlert](https://github.com/alin-sinpalean/jiralert) |
 | 9099 | [SNMP Trapper](https://github.com/chrusty/prometheus_webhook_snmptrapper) |
 | 9100 - 9999 | **_see standard port range above!_** |
@@ -712,5 +705,5 @@ Add new exporters above. If there's a gap try to fill it, otherwise add 1 to the
 | 19999 | [Netdata](https://github.com/firehol/netdata) |
 | 24231 | [Fluent Plugin for Prometheus](https://github.com/kazegusuri/fluent-plugin-prometheus) |
 | 42004 | [ProxySQL exporter](https://github.com/percona/proxysql_exporter) |
-| 44322 | [Performance Co-Pilot exporter](https://man7.org/linux/man-pages/man3/pmwebapi.3.html) |
-| 61091 | [DCOS exporter](https://docs.d2iq.com/mesosphere/dcos/1.13/metrics/) |
+| 44323 | [PCP exporter](https://github.com/performancecopilot/pcp/blob/master/man/man3/pmwebapi.3) |
+| 61091 | [DCOS exporter](https://docs.d2iq.com/mesosphere/dcos/1.13/metrics/) |

1 possible answer(s) on “Wiki page with default port allocation of prometheus exporters was overwritten

  1. I see that the community has already updated the wiki, we have a bunch of exporters with the same port now. It is sad but let’s see if that causes many issues in practice. Let’s hope it will be a one-off.

    Other solutions would involve: traditional repo with manually reviewed pull requests, but people would need to rebase a lot, not that trivial. A google sheets, but to make that self service it would mean that we would need a google form (to avoid spammers).