mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 15:35:17 +00:00
[trac719]
- introduced a new spec file stats-schema.spec for definitions of statistics items - removed configuration part from stats.spec, and added it into stats-schema.spec - added changes to some existence scripts according to above changes
This commit is contained in:
@@ -807,6 +807,7 @@ AC_OUTPUT([doc/version.ent
|
|||||||
src/bin/stats/stats.py
|
src/bin/stats/stats.py
|
||||||
src/bin/stats/stats_httpd.py
|
src/bin/stats/stats_httpd.py
|
||||||
src/bin/stats/stats.spec
|
src/bin/stats/stats.spec
|
||||||
|
src/bin/stats/stats-schema.spec
|
||||||
src/bin/stats/stats-httpd.spec
|
src/bin/stats/stats-httpd.spec
|
||||||
src/bin/stats/stats-httpd-xml.tpl
|
src/bin/stats/stats-httpd-xml.tpl
|
||||||
src/bin/stats/stats-httpd-xsd.tpl
|
src/bin/stats/stats-httpd-xsd.tpl
|
||||||
|
@@ -5,7 +5,7 @@ pkglibexecdir = $(libexecdir)/@PACKAGE@
|
|||||||
pkglibexec_SCRIPTS = b10-stats b10-stats-httpd
|
pkglibexec_SCRIPTS = b10-stats b10-stats-httpd
|
||||||
|
|
||||||
b10_statsdir = $(pkgdatadir)
|
b10_statsdir = $(pkgdatadir)
|
||||||
b10_stats_DATA = stats.spec stats-httpd.spec
|
b10_stats_DATA = stats.spec stats-httpd.spec stats-schema.spec
|
||||||
b10_stats_DATA += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
|
b10_stats_DATA += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
|
||||||
|
|
||||||
CLEANFILES = b10-stats stats.pyc
|
CLEANFILES = b10-stats stats.pyc
|
||||||
@@ -13,7 +13,7 @@ CLEANFILES += b10-stats-httpd stats_httpd.pyc
|
|||||||
|
|
||||||
man_MANS = b10-stats.8 b10-stats-httpd.8
|
man_MANS = b10-stats.8 b10-stats-httpd.8
|
||||||
EXTRA_DIST = $(man_MANS) b10-stats.xml b10-stats-httpd.xml
|
EXTRA_DIST = $(man_MANS) b10-stats.xml b10-stats-httpd.xml
|
||||||
EXTRA_DIST += stats.spec stats-httpd.spec
|
EXTRA_DIST += stats.spec stats-httpd.spec stats-schema.spec
|
||||||
EXTRA_DIST += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
|
EXTRA_DIST += stats-httpd-xml.tpl stats-httpd-xsd.tpl stats-httpd-xsl.tpl
|
||||||
|
|
||||||
if ENABLE_MAN
|
if ENABLE_MAN
|
||||||
|
87
src/bin/stats/stats-schema.spec.in
Normal file
87
src/bin/stats/stats-schema.spec.in
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"module_spec": {
|
||||||
|
"module_name": "Stats",
|
||||||
|
"module_description": "Statistics data schema",
|
||||||
|
"config_data": [
|
||||||
|
{
|
||||||
|
"item_name": "report_time",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "1970-01-01T00:00:00Z",
|
||||||
|
"item_title": "Report time",
|
||||||
|
"item_description": "A date time when stats module reports",
|
||||||
|
"item_format": "date-time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "bind10.boot_time",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "1970-01-01T00:00:00Z",
|
||||||
|
"item_title": "bind10.BootTime",
|
||||||
|
"item_description": "A date time when bind10 process starts initially",
|
||||||
|
"item_format": "date-time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "stats.boot_time",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "1970-01-01T00:00:00Z",
|
||||||
|
"item_title": "stats.BootTime",
|
||||||
|
"item_description": "A date time when the stats module starts initially or when the stats module restarts",
|
||||||
|
"item_format": "date-time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "stats.start_time",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "1970-01-01T00:00:00Z",
|
||||||
|
"item_title": "stats.StartTime",
|
||||||
|
"item_description": "A date time when the stats module starts collecting data or resetting values last time",
|
||||||
|
"item_format": "date-time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "stats.last_update_time",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "1970-01-01T00:00:00Z",
|
||||||
|
"item_title": "stats.LastUpdateTime",
|
||||||
|
"item_description": "The latest date time when the stats module receives from other modules like auth server or boss process and so on",
|
||||||
|
"item_format": "date-time"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "stats.timestamp",
|
||||||
|
"item_type": "real",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": 0.0,
|
||||||
|
"item_title": "stats.Timestamp",
|
||||||
|
"item_description": "A current time stamp since epoch time (1970-01-01T00:00:00Z)",
|
||||||
|
"item_format": "second"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "stats.lname",
|
||||||
|
"item_type": "string",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": "",
|
||||||
|
"item_title": "stats.LocalName",
|
||||||
|
"item_description": "A localname of stats module given via CC protocol"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "auth.queries.tcp",
|
||||||
|
"item_type": "integer",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": 0,
|
||||||
|
"item_title": "auth.queries.tcp",
|
||||||
|
"item_description": "A number of total query counts which all auth servers receive over TCP since they started initially"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item_name": "auth.queries.udp",
|
||||||
|
"item_type": "integer",
|
||||||
|
"item_optional": false,
|
||||||
|
"item_default": 0,
|
||||||
|
"item_title": "auth.queries.udp",
|
||||||
|
"item_description": "A number of total query counts which all auth servers receive over UDP since they started initially"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"commands": []
|
||||||
|
}
|
||||||
|
}
|
@@ -39,13 +39,15 @@ isc.util.process.rename()
|
|||||||
# from a directory relative to that, otherwise we use the ones
|
# from a directory relative to that, otherwise we use the ones
|
||||||
# installed on the system
|
# installed on the system
|
||||||
if "B10_FROM_SOURCE" in os.environ:
|
if "B10_FROM_SOURCE" in os.environ:
|
||||||
SPECFILE_LOCATION = os.environ["B10_FROM_SOURCE"] + os.sep + \
|
BASE_LOCATION = os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||||
"src" + os.sep + "bin" + os.sep + "stats" + os.sep + "stats.spec"
|
"src" + os.sep + "bin" + os.sep + "stats"
|
||||||
else:
|
else:
|
||||||
PREFIX = "@prefix@"
|
PREFIX = "@prefix@"
|
||||||
DATAROOTDIR = "@datarootdir@"
|
DATAROOTDIR = "@datarootdir@"
|
||||||
SPECFILE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@" + os.sep + "stats.spec"
|
BASE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@"
|
||||||
SPECFILE_LOCATION = SPECFILE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
BASE_LOCATION = BASE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
||||||
|
SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats.spec"
|
||||||
|
SCHEMA_SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats-schema.spec"
|
||||||
|
|
||||||
class Singleton(type):
|
class Singleton(type):
|
||||||
"""
|
"""
|
||||||
@@ -184,8 +186,7 @@ class CCSessionListener(Listener):
|
|||||||
self.session = self.subject.session = self.cc_session._session
|
self.session = self.subject.session = self.cc_session._session
|
||||||
|
|
||||||
# initialize internal data
|
# initialize internal data
|
||||||
self.config_spec = self.cc_session.get_module_spec().get_config_spec()
|
self.stats_spec = isc.config.module_spec_from_file(SCHEMA_SPECFILE_LOCATION).get_config_spec()
|
||||||
self.stats_spec = self.config_spec
|
|
||||||
self.stats_data = self.initialize_data(self.stats_spec)
|
self.stats_data = self.initialize_data(self.stats_spec)
|
||||||
|
|
||||||
# add event handler invoked via SessionSubject object
|
# add event handler invoked via SessionSubject object
|
||||||
|
@@ -2,86 +2,7 @@
|
|||||||
"module_spec": {
|
"module_spec": {
|
||||||
"module_name": "Stats",
|
"module_name": "Stats",
|
||||||
"module_description": "Stats daemon",
|
"module_description": "Stats daemon",
|
||||||
"config_data": [
|
"config_data": [],
|
||||||
{
|
|
||||||
"item_name": "report_time",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "1970-01-01T00:00:00Z",
|
|
||||||
"item_title": "Report time",
|
|
||||||
"item_description": "A date time when stats module reports",
|
|
||||||
"item_format": "date-time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "bind10.boot_time",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "1970-01-01T00:00:00Z",
|
|
||||||
"item_title": "bind10.BootTime",
|
|
||||||
"item_description": "A date time when bind10 process starts initially",
|
|
||||||
"item_format": "date-time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "stats.boot_time",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "1970-01-01T00:00:00Z",
|
|
||||||
"item_title": "stats.BootTime",
|
|
||||||
"item_description": "A date time when the stats module starts initially or when the stats module restarts",
|
|
||||||
"item_format": "date-time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "stats.start_time",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "1970-01-01T00:00:00Z",
|
|
||||||
"item_title": "stats.StartTime",
|
|
||||||
"item_description": "A date time when the stats module starts collecting data or resetting values last time",
|
|
||||||
"item_format": "date-time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "stats.last_update_time",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "1970-01-01T00:00:00Z",
|
|
||||||
"item_title": "stats.LastUpdateTime",
|
|
||||||
"item_description": "The latest date time when the stats module receives from other modules like auth server or boss process and so on",
|
|
||||||
"item_format": "date-time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "stats.timestamp",
|
|
||||||
"item_type": "real",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": 0.0,
|
|
||||||
"item_title": "stats.Timestamp",
|
|
||||||
"item_description": "A current time stamp since epoch time (1970-01-01T00:00:00Z)",
|
|
||||||
"item_format": "second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "stats.lname",
|
|
||||||
"item_type": "string",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": "",
|
|
||||||
"item_title": "stats.LocalName",
|
|
||||||
"item_description": "A localname of stats module given via CC protocol"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "auth.queries.tcp",
|
|
||||||
"item_type": "integer",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": 0,
|
|
||||||
"item_title": "auth.queries.tcp",
|
|
||||||
"item_description": "A number of total query counts which all auth servers receive over TCP since they started initially"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"item_name": "auth.queries.udp",
|
|
||||||
"item_type": "integer",
|
|
||||||
"item_optional": false,
|
|
||||||
"item_default": 0,
|
|
||||||
"item_title": "auth.queries.udp",
|
|
||||||
"item_description": "A number of total query counts which all auth servers receive over UDP since they started initially"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"commands": [
|
"commands": [
|
||||||
{
|
{
|
||||||
"command_name": "status",
|
"command_name": "status",
|
||||||
|
@@ -46,7 +46,7 @@ else:
|
|||||||
BASE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@"
|
BASE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@"
|
||||||
BASE_LOCATION = BASE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
BASE_LOCATION = BASE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
||||||
SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd.spec"
|
SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd.spec"
|
||||||
STATS_SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats.spec"
|
SCHEMA_SPECFILE_LOCATION = BASE_LOCATION + os.sep + "stats-schema.spec"
|
||||||
XML_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xml.tpl"
|
XML_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xml.tpl"
|
||||||
XSD_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xsd.tpl"
|
XSD_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xsd.tpl"
|
||||||
XSL_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xsl.tpl"
|
XSL_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xsl.tpl"
|
||||||
@@ -175,7 +175,7 @@ class StatsHttpd:
|
|||||||
SPECFILE_LOCATION, self.config_handler, self.command_handler)
|
SPECFILE_LOCATION, self.config_handler, self.command_handler)
|
||||||
self.cc_session = self.mccs._session
|
self.cc_session = self.mccs._session
|
||||||
# read spec file of stats module and subscribe 'Stats'
|
# read spec file of stats module and subscribe 'Stats'
|
||||||
self.stats_module_spec = isc.config.module_spec_from_file(STATS_SPECFILE_LOCATION)
|
self.stats_module_spec = isc.config.module_spec_from_file(SCHEMA_SPECFILE_LOCATION)
|
||||||
self.stats_config_spec = self.stats_module_spec.get_config_spec()
|
self.stats_config_spec = self.stats_module_spec.get_config_spec()
|
||||||
self.stats_module_name = self.stats_module_spec.get_module_name()
|
self.stats_module_name = self.stats_module_spec.get_module_name()
|
||||||
|
|
||||||
|
@@ -540,9 +540,14 @@ class TestStats2(unittest.TestCase):
|
|||||||
os.environ["B10_FROM_SOURCE"] + os.sep + \
|
os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||||
"src" + os.sep + "bin" + os.sep + "stats" + \
|
"src" + os.sep + "bin" + os.sep + "stats" + \
|
||||||
os.sep + "stats.spec")
|
os.sep + "stats.spec")
|
||||||
|
self.assertEqual(stats.SCHEMA_SPECFILE_LOCATION,
|
||||||
|
os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||||
|
"src" + os.sep + "bin" + os.sep + "stats" + \
|
||||||
|
os.sep + "stats-schema.spec")
|
||||||
imp.reload(stats)
|
imp.reload(stats)
|
||||||
# change path of SPECFILE_LOCATION
|
# change path of SPECFILE_LOCATION
|
||||||
stats.SPECFILE_LOCATION = TEST_SPECFILE_LOCATION
|
stats.SPECFILE_LOCATION = TEST_SPECFILE_LOCATION
|
||||||
|
stats.SCHEMA_SPECFILE_LOCATION = TEST_SPECFILE_LOCATION
|
||||||
self.assertEqual(stats.SPECFILE_LOCATION, TEST_SPECFILE_LOCATION)
|
self.assertEqual(stats.SPECFILE_LOCATION, TEST_SPECFILE_LOCATION)
|
||||||
self.subject = stats.SessionSubject(session=self.session, verbose=True)
|
self.subject = stats.SessionSubject(session=self.session, verbose=True)
|
||||||
self.session = self.subject.session
|
self.session = self.subject.session
|
||||||
|
Reference in New Issue
Block a user