| | | server startup. It is |
| | | incremented each time |
| | | an expired lease is |
- | | | reclaimed and is |
- | | | reset when the server |
- | | | is reconfigured. |
+ | | | reclaimed. |
+ | | | This statistic never |
+ | | | decreases. It can be |
+ | | | used as a long-term |
+ | | | indicator of how many |
+ | | | actual leases have been |
+ | | | reclaimed. |
+ | | | This is a global |
+ | | | statistic that covers |
+ | | | all subnets. |
+-------------------------------------------+----------------+------------------------------------+
| subnet[id].reclaimed-leases | integer | Number of expired |
| | | leases associated |
| | | server startup. It is |
| | | incremented each time |
| | | an expired lease is |
- | | | reclaimed and is |
- | | | reset when the server |
- | | | is reconfigured. |
+ | | | reclaimed. |
+ | | | The *id* is the |
+ | | | subnet-id of a |
+ | | | given subnet. This |
+ | | | statistic is exposed |
+ | | | for each subnet |
+ | | | separately. |
+-------------------------------------------+----------------+------------------------------------+
| declined-addresses | integer | Number of IPv4 |
| | | addresses that are |
| | | an expired lease is |
| | | reclaimed (counting |
| | | both NA and PD |
- | | | reclamations) and is |
- | | | reset when the server |
- | | | is reconfigured. |
+ | | | reclamations). |
+ | | | This statistic never |
+ | | | decreases. It can be |
+ | | | used as a long-term |
+ | | | indicator of how many |
+ | | | actual leases have been|
+ | | | reclaimed. |
+ | | | This is a global |
+ | | | statistic that covers |
+ | | | all subnets. |
+-----------------------------------------+-----------------------+------------------------+
| subnet[id].reclaimed-leases | integer | Number of expired |
| | | leases associated |
| | | an expired lease is |
| | | reclaimed (counting |
| | | both NA and PD |
- | | | reclamations) and is |
- | | | reset when the server |
- | | | is reconfigured. |
+ | | | reclamations). |
+ | | | The *id* is the |
+ | | | subnet-id of a |
+ | | | given subnet. This |
+ | | | statistic is exposed |
+ | | | for each subnet |
+ | | | separately. |
+-----------------------------------------+-----------------------+------------------------+
| declined-addresses | integer | Number of IPv6 |
| | | addresses that are |
}
// Zero out the global stats.
+ // Cumulative counters ("reclaimed-declined-addresses", "reclaimed-leases",
+ // "cumulative-assigned-addresses") never gets zeroed.
int64_t zero = 0;
stats_mgr.setValue("declined-addresses", zero);
- stats_mgr.setValue("reclaimed-declined-addresses", zero);
- stats_mgr.setValue("reclaimed-leases", zero);
+
+ // Create if it does not exit reclaimed declined leases global stats.
+ if (!stats_mgr.getObservation("reclaimed-declined-addresses")) {
+ stats_mgr.setValue("reclaimed-declined-addresses", zero);
+ }
+
+ // Create if it does not exit reclaimed leases global stats.
+ if (!stats_mgr.getObservation("reclaimed-leases")) {
+ stats_mgr.setValue("reclaimed-leases", zero);
+ }
// Create if it does not exit cumulative global stats.
if (!stats_mgr.getObservation("cumulative-assigned-addresses")) {
"declined-addresses"),
zero);
- stats_mgr.setValue(StatsMgr::generateName("subnet", subnet_id,
- "reclaimed-declined-addresses"),
- zero);
+ if (!stats_mgr.getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-declined-addresses"))) {
+ stats_mgr.setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-declined-addresses"),
+ zero);
+ }
- stats_mgr.setValue(StatsMgr::generateName("subnet", subnet_id,
- "reclaimed-leases"),
- zero);
+ if (!stats_mgr.getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-leases"))) {
+ stats_mgr.setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-leases"),
+ zero);
+ }
}
// Get counts per state per subnet. Iterate over the result set
stats_mgr.addValue("declined-addresses", row.state_count_);
// Add to subnet level value.
+ // Declined leases also count as assigned.
stats_mgr.addValue(StatsMgr::generateName("subnet", row.subnet_id_,
"assigned-addresses"),
row.state_count_);
return;
}
- // Zero out the global stats. (Ok, so currently there's only one
- // that should be cleared. "reclaimed-declined-addresses" never
- // gets zeroed. @todo discuss with Tomek the rational of not
- // clearing it when we clear the rest.
+ // Zero out the global stats.
+ // Cumulative counters ("reclaimed-declined-addresses", "reclaimed-leases",
+ // "cumulative-assigned-nas", "cumulative-assigned-pds") never gets zeroed.
int64_t zero = 0;
stats_mgr.setValue("declined-addresses", zero);
- stats_mgr.setValue("reclaimed-declined-addresses", zero);
- stats_mgr.setValue("reclaimed-leases", zero);
- // Create if it does not exit cumulative global stats.
+ if (!stats_mgr.getObservation("reclaimed-declined-addresses")) {
+ stats_mgr.setValue("reclaimed-declined-addresses", zero);
+ }
+
+ if (!stats_mgr.getObservation("reclaimed-leases")) {
+ stats_mgr.setValue("reclaimed-leases", zero);
+ }
+
+ // Create if it does not exit cumulative nas global stats.
if (!stats_mgr.getObservation("cumulative-assigned-nas")) {
stats_mgr.setValue("cumulative-assigned-nas", zero);
}
+ // Create if it does not exit cumulative pds global stats.
if (!stats_mgr.getObservation("cumulative-assigned-pds")) {
stats_mgr.setValue("cumulative-assigned-pds", zero);
}
"declined-addresses"),
zero);
- stats_mgr.setValue(StatsMgr::
- generateName("subnet", subnet_id,
- "reclaimed-declined-addresses"),
- zero);
+ if (!stats_mgr.getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-declined-addresses"))) {
+ stats_mgr.setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-declined-addresses"),
+ zero);
+ }
stats_mgr.setValue(StatsMgr::generateName("subnet", subnet_id,
"assigned-pds"),
zero);
- stats_mgr.setValue(StatsMgr::generateName("subnet", subnet_id,
- "reclaimed-leases"),
- zero);
+ if (!stats_mgr.getObservation(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-leases"))) {
+ stats_mgr.setValue(
+ StatsMgr::generateName("subnet", subnet_id,
+ "reclaimed-leases"),
+ zero);
+ }
}
// Get counts per state per subnet. Iterate over the result set
stats_mgr.addValue("declined-addresses", row.state_count_);
// Add subnet level value.
+ // Declined leases also count as assigned.
stats_mgr.addValue(StatsMgr::
generateName("subnet", row.subnet_id_,
"assigned-nas"),