@@ -858,23 +858,50 @@ configuration.
858858``countme ``
859859 :ref: `boolean <boolean-label >`
860860
861- Determines whether a special flag should be added to a single, randomly
862- chosen metalink/mirrorlist query each week.
863- This allows the repository owner to estimate the number of systems
864- consuming it, by counting such queries over a week's time, which is much
865- more accurate than just counting unique IP addresses (which is subject to
866- both overcounting and undercounting due to short DHCP leases and NAT,
867- respectively).
868-
869- The flag is a simple "countme=N" parameter appended to the metalink and
870- mirrorlist URL, where N is an integer representing the "longevity" bucket
871- this system belongs to.
872- The following 4 buckets are defined, based on how many full weeks have
873- passed since the beginning of the week when this system was installed: 1 =
874- first week, 2 = first month (2-4 weeks), 3 = six months (5-24 weeks) and 4
875- = more than six months (> 24 weeks).
876- This information is meant to help distinguish short-lived installs from
877- long-term ones, and to gather other statistics about system lifecycle.
861+ When enabled, one (and only one) HTTP GET request for the metalink file
862+ will be selected at random every week to carry a special URL flag.
863+
864+ This flag allows the repository provider to estimate the number of systems
865+ consuming the repository, by counting such requests over a week's time.
866+ This method is more accurate than just counting unique IP addresses (which
867+ is subject to both overcounting and undercounting due to short DHCP leases
868+ and NAT, respectively).
869+
870+ This is *not * an out-of-band HTTP request made for this purpose alone.
871+ Only requests initiated by DNF during normal operation, such as to check
872+ for metadata updates, can get this flag.
873+
874+ The flag is a simple "countme=N" parameter appended to the metalink URL
875+ where N is an integer representing the age "bucket" this system belongs to.
876+ Four buckets are defined, based on how many full weeks have passed since
877+ the installation of a system:
878+
879+ ====== ===============================
880+ bucket system age
881+ ====== ===============================
882+ 1 first week
883+ 2 first month (2 - 4 weeks)
884+ 3 first 6 months (5 - 24 weeks)
885+ 4 more than 6 months (> 24 weeks)
886+ ====== ===============================
887+
888+ This number is meant to help distinguish short-lived (throwaway) machines
889+ from long-term installs and get a better picture of how systems are used
890+ over time.
891+
892+ To determine a system's installation time ("epoch"), the ``machine-id(5) ``
893+ file's modification time is used as the single source of truth. This file
894+ is semantically tied to the system's lifetime as it's typically populated
895+ at installation time or during the first boot by an installer tool or init
896+ system (such as ``systemd(1) ``), respectively, and remains unchanged.
897+
898+ If the file is empty or missing (such as in containers), the time of the
899+ very first request made using the expanded metalink URL (i.e. with any
900+ repository variables such as ``$releasever `` substituted) that carried the
901+ flag is declared as the epoch.
902+
903+ If no metalink URL is defined for this repository but a mirrorlist URL is,
904+ the latter is used for this purpose instead.
878905
879906 Default is False.
880907
0 commit comments