mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +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_httpd.py
|
||||
src/bin/stats/stats.spec
|
||||
src/bin/stats/stats-schema.spec
|
||||
src/bin/stats/stats-httpd.spec
|
||||
src/bin/stats/stats-httpd-xml.tpl
|
||||
src/bin/stats/stats-httpd-xsd.tpl
|
||||
|
@@ -5,7 +5,7 @@ pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
pkglibexec_SCRIPTS = b10-stats b10-stats-httpd
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
# installed on the system
|
||||
if "B10_FROM_SOURCE" in os.environ:
|
||||
SPECFILE_LOCATION = os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||
"src" + os.sep + "bin" + os.sep + "stats" + os.sep + "stats.spec"
|
||||
BASE_LOCATION = os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||
"src" + os.sep + "bin" + os.sep + "stats"
|
||||
else:
|
||||
PREFIX = "@prefix@"
|
||||
DATAROOTDIR = "@datarootdir@"
|
||||
SPECFILE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@" + os.sep + "stats.spec"
|
||||
SPECFILE_LOCATION = SPECFILE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
||||
BASE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@"
|
||||
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):
|
||||
"""
|
||||
@@ -184,8 +186,7 @@ class CCSessionListener(Listener):
|
||||
self.session = self.subject.session = self.cc_session._session
|
||||
|
||||
# initialize internal data
|
||||
self.config_spec = self.cc_session.get_module_spec().get_config_spec()
|
||||
self.stats_spec = self.config_spec
|
||||
self.stats_spec = isc.config.module_spec_from_file(SCHEMA_SPECFILE_LOCATION).get_config_spec()
|
||||
self.stats_data = self.initialize_data(self.stats_spec)
|
||||
|
||||
# add event handler invoked via SessionSubject object
|
||||
|
@@ -2,86 +2,7 @@
|
||||
"module_spec": {
|
||||
"module_name": "Stats",
|
||||
"module_description": "Stats daemon",
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"config_data": [],
|
||||
"commands": [
|
||||
{
|
||||
"command_name": "status",
|
||||
|
@@ -46,7 +46,7 @@ else:
|
||||
BASE_LOCATION = "@datadir@" + os.sep + "@PACKAGE@"
|
||||
BASE_LOCATION = BASE_LOCATION.replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
|
||||
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"
|
||||
XSD_TEMPLATE_LOCATION = BASE_LOCATION + os.sep + "stats-httpd-xsd.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)
|
||||
self.cc_session = self.mccs._session
|
||||
# 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_module_name = self.stats_module_spec.get_module_name()
|
||||
|
||||
|
@@ -540,9 +540,14 @@ class TestStats2(unittest.TestCase):
|
||||
os.environ["B10_FROM_SOURCE"] + os.sep + \
|
||||
"src" + os.sep + "bin" + os.sep + "stats" + \
|
||||
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)
|
||||
# change path of SPECFILE_LOCATION
|
||||
stats.SPECFILE_LOCATION = TEST_SPECFILE_LOCATION
|
||||
stats.SCHEMA_SPECFILE_LOCATION = TEST_SPECFILE_LOCATION
|
||||
self.assertEqual(stats.SPECFILE_LOCATION, TEST_SPECFILE_LOCATION)
|
||||
self.subject = stats.SessionSubject(session=self.session, verbose=True)
|
||||
self.session = self.subject.session
|
||||
|
Reference in New Issue
Block a user