From e043938e2895e4072a3c60b4a0063ef66d34f7b3 Mon Sep 17 00:00:00 2001 From: Poornima G Date: Tue, 13 Mar 2018 17:51:29 +0530 Subject: nl-cache: Provide statistics to the monitor Updates: #429 Change-Id: Ic2e64422055f1838d5d453643c739ef1e9319cfe Signed-off-by: Poornima G --- xlators/performance/nl-cache/src/nl-cache.c | 70 +++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 9 deletions(-) (limited to 'xlators/performance/nl-cache/src/nl-cache.c') diff --git a/xlators/performance/nl-cache/src/nl-cache.c b/xlators/performance/nl-cache/src/nl-cache.c index 689950c3b8a..7dd8467b54d 100644 --- a/xlators/performance/nl-cache/src/nl-cache.c +++ b/xlators/performance/nl-cache/src/nl-cache.c @@ -541,7 +541,7 @@ out: int -notify (xlator_t *this, int event, void *data, ...) +nlc_notify (xlator_t *this, int event, void *data, ...) { int ret = 0; time_t now = 0; @@ -646,8 +646,45 @@ nlc_priv_dump (xlator_t *this) } +static int32_t +nlc_dump_metrics (xlator_t *this, int fd) +{ + nlc_conf_t *conf = NULL; + + conf = this->private; + + dprintf (fd, "%s.negative_lookup_hit_count %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->nlc_counter.nlc_hit)); + dprintf (fd, "%s.negative_lookup_miss_count %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->nlc_counter.nlc_miss)); + dprintf (fd, "%s.get_real_filename_hit_count %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->nlc_counter.getrealfilename_hit)); + dprintf (fd, "%s.get_real_filename_miss_count %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->nlc_counter.getrealfilename_miss)); + dprintf (fd, "%s.nameless_lookup_count %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->nlc_counter.nameless_lookup)); + dprintf (fd, "%s.inodes_with_positive_dentry_cache %"PRId64"\n", + this->name, + GF_ATOMIC_GET(conf->nlc_counter.pe_inode_cnt)); + dprintf (fd, "%s.inodes_with_negative_dentry_cache %"PRId64"\n", + this->name, GF_ATOMIC_GET(conf->nlc_counter.ne_inode_cnt)); + dprintf (fd, "%s.dentry_invalidations_recieved %"PRId64"\n", + this->name, GF_ATOMIC_GET(conf->nlc_counter.nlc_invals)); + dprintf (fd, "%s.cache_limit %"PRIu64"\n", this->name, + conf->cache_size); + dprintf (fd, "%s.consumed_cache_size %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->current_cache_size)); + dprintf (fd, "%s.inode_limit %"PRIu64"\n", this->name, + conf->inode_limit); + dprintf (fd, "%s.consumed_inodes %"PRId64"\n", this->name, + GF_ATOMIC_GET(conf->refd_inodes)); + + return 0; +} + + void -fini (xlator_t *this) +nlc_fini (xlator_t *this) { nlc_conf_t *conf = NULL; @@ -661,7 +698,7 @@ fini (xlator_t *this) int32_t -mem_acct_init (xlator_t *this) +nlc_mem_acct_init (xlator_t *this) { int ret = -1; @@ -671,7 +708,7 @@ mem_acct_init (xlator_t *this) int32_t -reconfigure (xlator_t *this, dict_t *options) +nlc_reconfigure (xlator_t *this, dict_t *options) { nlc_conf_t *conf = NULL; @@ -690,7 +727,7 @@ out: int32_t -init (xlator_t *this) +nlc_init (xlator_t *this) { nlc_conf_t *conf = NULL; int ret = -1; @@ -749,7 +786,7 @@ out: } -struct xlator_fops fops = { +struct xlator_fops nlc_fops = { .rename = nlc_rename, .mknod = nlc_mknod, .create = nlc_create, @@ -768,17 +805,17 @@ struct xlator_fops fops = { }; -struct xlator_cbks cbks = { +struct xlator_cbks nlc_cbks = { .forget = nlc_forget, }; -struct xlator_dumpops dumpops = { +struct xlator_dumpops nlc_dumpops = { .inodectx = nlc_inodectx, .priv = nlc_priv_dump, }; -struct volume_options options[] = { +struct volume_options nlc_options[] = { { .key = {"nl-cache-positive-entry"}, .type = GF_OPTION_TYPE_BOOL, .default_value = "false", @@ -806,3 +843,18 @@ struct volume_options options[] = { }, { .key = {NULL} }, }; + +xlator_api_t xlator_api = { + .init = nlc_init, + .fini = nlc_fini, + .notify = nlc_notify, + .reconfigure = nlc_reconfigure, + .mem_acct_init = nlc_mem_acct_init, + .dump_metrics = nlc_dump_metrics, + .op_version = {1}, /* Present from the initial version */ + .dumpops = &nlc_dumpops, + .fops = &nlc_fops, + .cbks = &nlc_cbks, + .options = nlc_options, + .identifier = "nl-cache", +}; -- cgit