+XXX. [func] sar
+ Per IPv6 subnet statistics (subnet[id].assigned-nas,
+ subnet[id].total-nas, subnet[id].assigned-pds, and subnet[id].total-pds)
+ has been implemented.
+ (Trac #3799, git TBD)
+
957. [func] tomek
Per IPv4 subnet statistics (subnet[id].assigned-addresses and
subnet[id].total-addresses) has been implemented.
<tbody>
<row>
- <entry>subnet[id].total-NAs</entry>
+ <entry>subnet[id].total-nas</entry>
<entry>integer</entry>
<entry>
This statistic shows the total number of NA addresses available for
</row>
<row>
- <entry>subnet[id].assigned-NAs</entry>
+ <entry>subnet[id].assigned-nas</entry>
<entry>integer</entry>
<entry>
This statistic shows the number of NA addresses in a given subnet that
</row>
<row>
- <entry>subnet[id].total-PDs</entry>
+ <entry>subnet[id].total-pds</entry>
<entry>integer</entry>
<entry>
This statistic shows the total number of PD prefixes available for
</row>
<row>
- <entry>subnet[id].assigned-PDs</entry>
+ <entry>subnet[id].assigned-pds</entry>
<entry>integer</entry>
<entry>
This statistic shows the number of PD prefixes in a given subnet that
// Need to decrease statistic for assigned addresses.
StatsMgr::instance().addValue(
- StatsMgr::generateName("subnet", lease->subnet_id_, "assigned-NAs"),
+ StatsMgr::generateName("subnet", lease->subnet_id_, "assigned-nas"),
static_cast<int64_t>(-1));
// Check if a lease has flags indicating that the FQDN update has
// Need to decrease statistic for assigned prefixes.
StatsMgr::instance().addValue(
- StatsMgr::generateName("subnet", lease->subnet_id_, "assigned-PDs"),
+ StatsMgr::generateName("subnet", lease->subnet_id_, "assigned-pds"),
static_cast<int64_t>(-1));
}
// - returned REPLY message has server-id
// - returned REPLY message has IA_NA that does not include an IAADDR
// - lease is actually removed from LeaseMgr
-// - assigned-NAs stats counter is properly decremented
+// - assigned-nas stats counter is properly decremented
TEST_F(Dhcpv6SrvTest, ReleaseBasic) {
testReleaseBasic(Lease::TYPE_NA, IOAddress("2001:db8:1:1::cafe:babe"),
IOAddress("2001:db8:1:1::cafe:babe"));
// - returned REPLY message has server-id
// - returned REPLY message has IA_PD that does not include an IAPREFIX
// - lease is actually removed from LeaseMgr
-// - assigned-PDs stats counter is properly decremented
+// - assigned-pds stats counter is properly decremented
TEST_F(Dhcpv6SrvTest, pdReleaseBasic) {
testReleaseBasic(Lease::TYPE_PD, IOAddress("2001:db8:1:2::"),
IOAddress("2001:db8:1:2::"));
// - returned REPLY message has server-id
// - returned REPLY message has IA_NA that includes STATUS-CODE
// - No lease in LeaseMgr
-// - assigned-NAs stats counter is properly not decremented
+// - assigned-nas stats counter is properly not decremented
TEST_F(Dhcpv6SrvTest, ReleaseReject) {
testReleaseReject(Lease::TYPE_NA, IOAddress("2001:db8:1:1::dead"));
}
// - returned REPLY message has server-id
// - returned REPLY message has IA_PD that includes STATUS-CODE
// - No lease in LeaseMgr
-// - assigned-PDs stats counter is properly not decremented
+// - assigned-pds stats counter is properly not decremented
TEST_F(Dhcpv6SrvTest, pdReleaseReject) {
testReleaseReject(Lease::TYPE_PD, IOAddress("2001:db8:1:2::"));
}
// And prepopulate the stats counter
std::string name = StatsMgr::generateName("subnet", subnet_->getID(),
- type == Lease::TYPE_NA ? "assigned-NAs" :
- "assigned-PDs");
+ type == Lease::TYPE_NA ? "assigned-nas" :
+ "assigned-pds");
StatsMgr::instance().setValue(name, static_cast<int64_t>(1));
// Let's create a RELEASE
// Pretend we have allocated 1 lease
std::string name = StatsMgr::generateName("subnet", subnet_->getID(),
- type == Lease::TYPE_NA ? "assigned-NAs" :
- "assigned-PDs");
+ type == Lease::TYPE_NA ? "assigned-nas" :
+ "assigned-pds");
StatsMgr::instance().setValue(name, static_cast<int64_t>(1));
// Check that the lease is NOT in the database
// Need to decrease statistic for assigned addresses.
StatsMgr::instance().addValue(
StatsMgr::generateName("subnet", ctx.subnet_->getID(),
- ctx.type_ == Lease::TYPE_NA ? "assigned-NAs" :
- "assigned-PDs"),
+ ctx.type_ == Lease::TYPE_NA ? "assigned-nas" :
+ "assigned-pds"),
static_cast<int64_t>(-1));
// In principle, we could trigger a hook here, but we will do this
// Need to decrease statistic for assigned addresses.
StatsMgr::instance().addValue(
StatsMgr::generateName("subnet", ctx.subnet_->getID(),
- ctx.type_ == Lease::TYPE_NA ? "assigned-NAs" :
- "assigned-PDs"),
+ ctx.type_ == Lease::TYPE_NA ? "assigned-nas" :
+ "assigned-pds"),
static_cast<int64_t>(-1));
/// @todo: Probably trigger a hook here
if (ctx.subnet_->inPool(ctx.type_, addr)) {
StatsMgr::instance().addValue(
StatsMgr::generateName("subnet", ctx.subnet_->getID(),
- ctx.type_ == Lease::TYPE_NA ? "assigned-NAs" :
- "assigned-PDs"),
+ ctx.type_ == Lease::TYPE_NA ? "assigned-nas" :
+ "assigned-pds"),
static_cast<int64_t>(1));
}
// Need to decrease statistic for assigned addresses.
StatsMgr::instance().addValue(
- StatsMgr::generateName("subnet", ctx.subnet_->getID(), "assigned-NAs"),
+ StatsMgr::generateName("subnet", ctx.subnet_->getID(), "assigned-nas"),
static_cast<int64_t>(-1));
// Add it to the removed leases list.
CfgSubnets6::removeStatistics() {
using namespace isc::stats;
- // For each v6 subnet currently configured, remove the statistic.
- /// @todo: May move this to CfgSubnets6 class if there will be more
- /// statistics here.
+ // For each v6 subnet currently configured, remove the statistics.
for (Subnet6Collection::const_iterator subnet6 = subnets_.begin();
subnet6 != subnets_.end(); ++subnet6) {
StatsMgr::instance().del(StatsMgr::generateName("subnet",
(*subnet6)->getID(),
- "total-NAs"));
+ "total-nas"));
StatsMgr::instance().del(StatsMgr::generateName("subnet",
(*subnet6)->getID(),
- "assigned-NAs"));
+ "assigned-nas"));
StatsMgr::instance().del(StatsMgr::generateName("subnet",
(*subnet6)->getID(),
- "total-PDs"));
+ "total-pds"));
StatsMgr::instance().del(StatsMgr::generateName("subnet",
(*subnet6)->getID(),
- "assigned-PDs"));
+ "assigned-pds"));
}
}
CfgSubnets6::updateStatistics() {
using namespace isc::stats;
- /// @todo: May move this to CfgSubnets6 class if there will be more
- /// statistics here.
for (Subnet6Collection::const_iterator subnet = subnets_.begin();
subnet != subnets_.end(); ++subnet) {
StatsMgr::instance().setValue(
- StatsMgr::generateName("subnet", (*subnet)->getID(), "total-NAs"),
+ StatsMgr::generateName("subnet", (*subnet)->getID(), "total-nas"),
static_cast<int64_t>((*subnet)->getPoolCapacity(Lease::TYPE_NA)));
StatsMgr::instance().setValue(
- StatsMgr::generateName("subnet", (*subnet)->getID(), "total-PDs"),
+ StatsMgr::generateName("subnet", (*subnet)->getID(), "total-pds"),
static_cast<int64_t>((*subnet)->getPoolCapacity(Lease::TYPE_PD)));
}
}
simpleAlloc6Test(pool_, IOAddress("::"), false);
// We should have bumped the address counter by 1
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(101, stat->getInteger().first);
simpleAlloc6Test(pd_pool_, IOAddress("::"), false);
// We should have bumped the address counter by 1
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-PDs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-pds");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(101, stat->getInteger().first);
simpleAlloc6Test(pool_, IOAddress("::"), true);
// We should not have bumped the address counter
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(100, stat->getInteger().first);
simpleAlloc6Test(pd_pool_, IOAddress("::"), true);
// We should not have bumped the address counter
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-PDs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-pds");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(100, stat->getInteger().first);
ASSERT_TRUE(LeaseMgrFactory::instance().addLease(lease));
// By default we pretend our subnet has 100 addresses
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
StatsMgr::instance().setValue(name, static_cast<int64_t>(100));
// A client comes along, asking specifically for this address
AllocEngine engine(AllocEngine::ALLOC_ITERATIVE, 100, false);
// By default we pretend our subnet has 100 addresses
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
StatsMgr::instance().setValue(name, static_cast<int64_t>(100));
Lease6Ptr lease = simpleAlloc6Test(pool_, IOAddress("::"), false);
AllocEngine engine(AllocEngine::ALLOC_ITERATIVE, 100, false);
// By default we pretend our subnet has 100 addresses
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
StatsMgr::instance().setValue(name, static_cast<int64_t>(100));
Lease6Ptr lease = simpleAlloc6Test(pool_, IOAddress("::"), false, false);
ASSERT_TRUE(lease1);
// We should have bumped the address counter
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(101, stat->getInteger().first);
ASSERT_TRUE(lease1);
// We should have bumped the address counter
- string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs");
+ string name = StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas");
ObservationPtr stat = StatsMgr::instance().getObservation(name);
ASSERT_TRUE(stat);
EXPECT_EQ(101, stat->getInteger().first);
// By default we pretend our subnet has 100 addresses and prefixes allocated.
StatsMgr::instance().setValue(
- StatsMgr::generateName("subnet", subnet_->getID(), "assigned-NAs"),
+ StatsMgr::generateName("subnet", subnet_->getID(), "assigned-nas"),
static_cast<int64_t>(100));
StatsMgr::instance().setValue(
- StatsMgr::generateName("subnet", subnet_->getID(), "assigned-PDs"),
+ StatsMgr::generateName("subnet", subnet_->getID(), "assigned-pds"),
static_cast<int64_t>(100));
}
CfgSubnets6Ptr subnets = cfg_mgr.getStagingCfg()->getCfgSubnets6();
subnets->add(subnet1);
cfg_mgr.commit();
- stats_mgr.addValue("subnet[123].total-NAs", static_cast<int64_t>(256));
- stats_mgr.setValue("subnet[123].assigned-NAs", static_cast<int64_t>(150));
+ stats_mgr.addValue("subnet[123].total-nas", static_cast<int64_t>(256));
+ stats_mgr.setValue("subnet[123].assigned-nas", static_cast<int64_t>(150));
- stats_mgr.addValue("subnet[123].total-PDs", static_cast<int64_t>(256));
- stats_mgr.setValue("subnet[123].assigned-PDs", static_cast<int64_t>(150));
+ stats_mgr.addValue("subnet[123].total-pds", static_cast<int64_t>(256));
+ stats_mgr.setValue("subnet[123].assigned-pds", static_cast<int64_t>(150));
// Now, let's change the configuration to something new.
// Let's commit it
cfg_mgr.commit();
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-NAs"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-NAs"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-nas"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-nas"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-PDs"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-PDs"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-pds"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-pds"));
ObservationPtr total_addrs;
- EXPECT_NO_THROW(total_addrs = stats_mgr.getObservation("subnet[42].total-NAs"));
+ EXPECT_NO_THROW(total_addrs = stats_mgr.getObservation("subnet[42].total-nas"));
ASSERT_TRUE(total_addrs);
EXPECT_EQ(128, total_addrs->getInteger().first);
- EXPECT_NO_THROW(total_addrs = stats_mgr.getObservation("subnet[42].total-PDs"));
+ EXPECT_NO_THROW(total_addrs = stats_mgr.getObservation("subnet[42].total-pds"));
ASSERT_TRUE(total_addrs);
EXPECT_EQ(65536, total_addrs->getInteger().first);
}
CfgSubnets6Ptr subnets = cfg_mgr.getStagingCfg()->getCfgSubnets6();
subnets->add(subnet1);
cfg_mgr.commit();
- stats_mgr.addValue("subnet[123].total-NAs", static_cast<int64_t>(256));
- stats_mgr.setValue("subnet[123].assigned-NAs", static_cast<int64_t>(150));
+ stats_mgr.addValue("subnet[123].total-nas", static_cast<int64_t>(256));
+ stats_mgr.setValue("subnet[123].assigned-nas", static_cast<int64_t>(150));
- stats_mgr.addValue("subnet[123].total-PDs", static_cast<int64_t>(256));
- stats_mgr.setValue("subnet[123].assigned-PDs", static_cast<int64_t>(150));
+ stats_mgr.addValue("subnet[123].total-pds", static_cast<int64_t>(256));
+ stats_mgr.setValue("subnet[123].assigned-pds", static_cast<int64_t>(150));
// The stats should be there.
- EXPECT_TRUE(stats_mgr.getObservation("subnet[123].total-NAs"));
- EXPECT_TRUE(stats_mgr.getObservation("subnet[123].assigned-NAs"));
+ EXPECT_TRUE(stats_mgr.getObservation("subnet[123].total-nas"));
+ EXPECT_TRUE(stats_mgr.getObservation("subnet[123].assigned-nas"));
- EXPECT_TRUE(stats_mgr.getObservation("subnet[123].total-PDs"));
- EXPECT_TRUE(stats_mgr.getObservation("subnet[123].assigned-PDs"));
+ EXPECT_TRUE(stats_mgr.getObservation("subnet[123].total-pds"));
+ EXPECT_TRUE(stats_mgr.getObservation("subnet[123].assigned-pds"));
// Let's remove all configurations
cfg_mgr.clear();
// The stats should not be there anymore.
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-NAs"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-NAs"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-nas"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-nas"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-PDs"));
- EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-PDs"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].total-pds"));
+ EXPECT_FALSE(stats_mgr.getObservation("subnet[123].assigned-pds"));
}
/// @todo Add unit-tests for testing: