mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-29 17:28:53 +00:00
client: add 'node.uptime' to the stats we collect
This commit is contained in:
parent
90970f9447
commit
68527b25fc
@ -23,7 +23,7 @@ from allmydata.filenode import FileNode
|
||||
from allmydata.dirnode import NewDirectoryNode
|
||||
from allmydata.mutable import MutableFileNode, MutableWatcher
|
||||
from allmydata.stats import StatsProvider
|
||||
from allmydata.interfaces import IURI, INewDirectoryURI, \
|
||||
from allmydata.interfaces import IURI, INewDirectoryURI, IStatsProducer, \
|
||||
IReadonlyNewDirectoryURI, IFileURI, IMutableFileURI, RIStubClient
|
||||
|
||||
KiB=1024
|
||||
@ -39,6 +39,8 @@ def _make_secret():
|
||||
return base32.b2a(os.urandom(hashutil.CRYPTO_VAL_SIZE)) + "\n"
|
||||
|
||||
class Client(node.Node, testutil.PollMixin):
|
||||
implements(IStatsProducer)
|
||||
|
||||
PORTNUMFILE = "client.port"
|
||||
STOREDIR = 'storage'
|
||||
NODETYPE = "client"
|
||||
@ -60,6 +62,7 @@ class Client(node.Node, testutil.PollMixin):
|
||||
|
||||
def __init__(self, basedir="."):
|
||||
node.Node.__init__(self, basedir)
|
||||
self.started_timestamp = time.time()
|
||||
self.logSource="Client"
|
||||
self.nickname = self.get_config("nickname")
|
||||
if self.nickname is None:
|
||||
@ -107,9 +110,13 @@ class Client(node.Node, testutil.PollMixin):
|
||||
if gatherer_furl:
|
||||
self.stats_provider = StatsProvider(self, gatherer_furl)
|
||||
self.add_service(self.stats_provider)
|
||||
self.stats_provider.register_producer(self)
|
||||
else:
|
||||
self.stats_provider = None
|
||||
|
||||
def get_stats(self):
|
||||
return { 'node.uptime': time.time() - self.started_timestamp }
|
||||
|
||||
def init_lease_secret(self):
|
||||
secret_s = self.get_or_create_private_config("secret", _make_secret)
|
||||
self._lease_secret = base32.a2b(secret_s)
|
||||
|
@ -133,6 +133,10 @@ class Basic(unittest.TestCase):
|
||||
all_versions = allmydata.get_package_versions_string()
|
||||
self.failUnless("allmydata" in all_versions)
|
||||
log.msg("tahoe versions: %s" % all_versions)
|
||||
# also test stats
|
||||
stats = c.get_stats()
|
||||
self.failUnless("node.uptime" in stats)
|
||||
self.failUnless(isinstance(stats["node.uptime"], float))
|
||||
|
||||
def flush_but_dont_ignore(res):
|
||||
d = flushEventualQueue()
|
||||
|
Loading…
Reference in New Issue
Block a user