diff options
| author | Gluster Ant <bugzilla-bot@gluster.org> | 2018-09-12 17:52:45 +0530 | 
|---|---|---|
| committer | Nigel Babu <nigelb@redhat.com> | 2018-09-12 17:52:45 +0530 | 
| commit | e16868dede6455cab644805af6fe1ac312775e13 (patch) | |
| tree | 15aebdb4fff2d87cf8a72f836816b3aa634da58d /libglusterfs/src/monitoring.c | |
| parent | 45a71c0548b6fd2c757aa2e7b7671a1411948894 (diff) | |
Land part 2 of clang-format changes
Change-Id: Ia84cc24c8924e6d22d02ac15f611c10e26db99b4
Signed-off-by: Nigel Babu <nigelb@redhat.com>
Diffstat (limited to 'libglusterfs/src/monitoring.c')
| -rw-r--r-- | libglusterfs/src/monitoring.c | 420 | 
1 files changed, 211 insertions, 209 deletions
diff --git a/libglusterfs/src/monitoring.c b/libglusterfs/src/monitoring.c index 10b0a817e40..041b70acf7a 100644 --- a/libglusterfs/src/monitoring.c +++ b/libglusterfs/src/monitoring.c @@ -17,254 +17,256 @@  static void  dump_mem_acct_details(xlator_t *xl, int fd)  { -        struct mem_acct_rec *mem_rec; -        int i = 0; - -        if (!xl || !xl->mem_acct || (xl->ctx->active != xl->graph)) -                return; - -        dprintf (fd, "# %s.%s.total.num_types %d\n", xl->type, xl->name, -                 xl->mem_acct->num_types); - -        dprintf (fd, "# type, in-use-size, in-use-units, max-size, " -                 "max-units, total-allocs\n"); - -        for (i = 0; i < xl->mem_acct->num_types; i++) { -                mem_rec = &xl->mem_acct->rec[i]; -                if (mem_rec->num_allocs == 0) -                        continue; -                dprintf (fd, "# %s, %"GF_PRI_SIZET", %u, %"GF_PRI_SIZET", %u," -                         " %u\n", mem_rec->typestr, mem_rec->size, -                         mem_rec->num_allocs, mem_rec->max_size, -                         mem_rec->max_num_allocs, mem_rec->total_allocs); -        } +    struct mem_acct_rec *mem_rec; +    int i = 0; + +    if (!xl || !xl->mem_acct || (xl->ctx->active != xl->graph)) +        return; + +    dprintf(fd, "# %s.%s.total.num_types %d\n", xl->type, xl->name, +            xl->mem_acct->num_types); + +    dprintf(fd, +            "# type, in-use-size, in-use-units, max-size, " +            "max-units, total-allocs\n"); + +    for (i = 0; i < xl->mem_acct->num_types; i++) { +        mem_rec = &xl->mem_acct->rec[i]; +        if (mem_rec->num_allocs == 0) +            continue; +        dprintf(fd, +                "# %s, %" GF_PRI_SIZET ", %u, %" GF_PRI_SIZET +                ", %u," +                " %u\n", +                mem_rec->typestr, mem_rec->size, mem_rec->num_allocs, +                mem_rec->max_size, mem_rec->max_num_allocs, +                mem_rec->total_allocs); +    }  }  static void -dump_global_memory_accounting (int fd) +dump_global_memory_accounting(int fd)  {  #if MEMORY_ACCOUNTING_STATS -        int      i        = 0; -        uint64_t count    = 0; - -        uint64_t tcalloc = GF_ATOMIC_GET (gf_memory_stat_counts.total_calloc); -        uint64_t tmalloc = GF_ATOMIC_GET (gf_memory_stat_counts.total_malloc); -        uint64_t tfree   = GF_ATOMIC_GET (gf_memory_stat_counts.total_free); - -        dprintf (fd, "memory.total.calloc %lu\n", tcalloc); -        dprintf (fd, "memory.total.malloc %lu\n", tmalloc); -        dprintf (fd, "memory.total.realloc %lu\n", -                 GF_ATOMIC_GET (gf_memory_stat_counts.total_realloc)); -        dprintf (fd, "memory.total.free %lu\n", tfree); -        dprintf (fd, "memory.total.in-use %lu\n", ((tcalloc + tmalloc) - tfree)); - -        for (i = 0; i < GF_BLK_MAX_VALUE; i++) { -                count = GF_ATOMIC_GET (gf_memory_stat_counts.blk_size[i]); -                dprintf (fd, "memory.total.blk_size.%s %lu\n", -                         gf_mem_stats_blk[i].blk_size_str, count); -        } - -        dprintf (fd, "#----\n"); +    int i = 0; +    uint64_t count = 0; + +    uint64_t tcalloc = GF_ATOMIC_GET(gf_memory_stat_counts.total_calloc); +    uint64_t tmalloc = GF_ATOMIC_GET(gf_memory_stat_counts.total_malloc); +    uint64_t tfree = GF_ATOMIC_GET(gf_memory_stat_counts.total_free); + +    dprintf(fd, "memory.total.calloc %lu\n", tcalloc); +    dprintf(fd, "memory.total.malloc %lu\n", tmalloc); +    dprintf(fd, "memory.total.realloc %lu\n", +            GF_ATOMIC_GET(gf_memory_stat_counts.total_realloc)); +    dprintf(fd, "memory.total.free %lu\n", tfree); +    dprintf(fd, "memory.total.in-use %lu\n", ((tcalloc + tmalloc) - tfree)); + +    for (i = 0; i < GF_BLK_MAX_VALUE; i++) { +        count = GF_ATOMIC_GET(gf_memory_stat_counts.blk_size[i]); +        dprintf(fd, "memory.total.blk_size.%s %lu\n", +                gf_mem_stats_blk[i].blk_size_str, count); +    } + +    dprintf(fd, "#----\n");  #endif -        /* This is not a metric to be watched in admin guide, -           but keeping it here till we resolve all leak-issues -           would be great */ +    /* This is not a metric to be watched in admin guide, +       but keeping it here till we resolve all leak-issues +       would be great */  } -  static void -dump_latency_and_count (xlator_t *xl, int fd) +dump_latency_and_count(xlator_t *xl, int fd)  { -        int32_t  index = 0; -        uint64_t fop; -        uint64_t cbk; -        uint64_t count; - -        if (xl->winds) -                dprintf (fd, "%s.total.pending-winds.count %lu\n", xl->name, xl->winds); - -        /* Need 'fuse' data, and don't need all the old graph info */ -        if ((xl != xl->ctx->master) && (xl->ctx->active != xl->graph)) -                return; - -        count = GF_ATOMIC_GET (xl->stats.total.count); -        dprintf (fd, "%s.total.fop-count %lu\n", xl->name, count); - -        count = GF_ATOMIC_GET (xl->stats.interval.count); -        dprintf (fd, "%s.interval.fop-count %lu\n", xl->name, count); -        GF_ATOMIC_INIT (xl->stats.interval.count, 0); - -        for (index = 0; index < GF_FOP_MAXVALUE; index++) { -                fop = GF_ATOMIC_GET (xl->stats.total.metrics[index].fop); -                if (fop) { -                        dprintf (fd, "%s.total.%s.count %lu\n", -                                 xl->name, gf_fop_list[index], fop); -                } -                fop = GF_ATOMIC_GET (xl->stats.interval.metrics[index].fop); -                if (fop) { -                        dprintf (fd, "%s.interval.%s.count %lu\n", -                                 xl->name, gf_fop_list[index], fop); -                } -                cbk = GF_ATOMIC_GET (xl->stats.interval.metrics[index].cbk); -                if (cbk) { -                        dprintf (fd, "%s.interval.%s.fail_count %lu\n", -                                 xl->name, gf_fop_list[index], cbk); -                } -                if (xl->stats.interval.latencies[index].count != 0.0) { -                        dprintf (fd, "%s.interval.%s.latency %lf\n", -                                 xl->name, gf_fop_list[index], -                                 (xl->stats.interval.latencies[index].total / -                                  xl->stats.interval.latencies[index].count)); -                        dprintf (fd, "%s.interval.%s.max %lf\n", -                                 xl->name, gf_fop_list[index], -                                 xl->stats.interval.latencies[index].max); -                        dprintf (fd, "%s.interval.%s.min %lf\n", -                                 xl->name, gf_fop_list[index], -                                 xl->stats.interval.latencies[index].min); -                } -                GF_ATOMIC_INIT (xl->stats.interval.metrics[index].cbk, 0); -                GF_ATOMIC_INIT (xl->stats.interval.metrics[index].fop, 0); +    int32_t index = 0; +    uint64_t fop; +    uint64_t cbk; +    uint64_t count; + +    if (xl->winds) +        dprintf(fd, "%s.total.pending-winds.count %lu\n", xl->name, xl->winds); + +    /* Need 'fuse' data, and don't need all the old graph info */ +    if ((xl != xl->ctx->master) && (xl->ctx->active != xl->graph)) +        return; + +    count = GF_ATOMIC_GET(xl->stats.total.count); +    dprintf(fd, "%s.total.fop-count %lu\n", xl->name, count); + +    count = GF_ATOMIC_GET(xl->stats.interval.count); +    dprintf(fd, "%s.interval.fop-count %lu\n", xl->name, count); +    GF_ATOMIC_INIT(xl->stats.interval.count, 0); + +    for (index = 0; index < GF_FOP_MAXVALUE; index++) { +        fop = GF_ATOMIC_GET(xl->stats.total.metrics[index].fop); +        if (fop) { +            dprintf(fd, "%s.total.%s.count %lu\n", xl->name, gf_fop_list[index], +                    fop);          } -        memset (xl->stats.interval.latencies, 0, -                sizeof (xl->stats.interval.latencies)); +        fop = GF_ATOMIC_GET(xl->stats.interval.metrics[index].fop); +        if (fop) { +            dprintf(fd, "%s.interval.%s.count %lu\n", xl->name, +                    gf_fop_list[index], fop); +        } +        cbk = GF_ATOMIC_GET(xl->stats.interval.metrics[index].cbk); +        if (cbk) { +            dprintf(fd, "%s.interval.%s.fail_count %lu\n", xl->name, +                    gf_fop_list[index], cbk); +        } +        if (xl->stats.interval.latencies[index].count != 0.0) { +            dprintf(fd, "%s.interval.%s.latency %lf\n", xl->name, +                    gf_fop_list[index], +                    (xl->stats.interval.latencies[index].total / +                     xl->stats.interval.latencies[index].count)); +            dprintf(fd, "%s.interval.%s.max %lf\n", xl->name, +                    gf_fop_list[index], +                    xl->stats.interval.latencies[index].max); +            dprintf(fd, "%s.interval.%s.min %lf\n", xl->name, +                    gf_fop_list[index], +                    xl->stats.interval.latencies[index].min); +        } +        GF_ATOMIC_INIT(xl->stats.interval.metrics[index].cbk, 0); +        GF_ATOMIC_INIT(xl->stats.interval.metrics[index].fop, 0); +    } +    memset(xl->stats.interval.latencies, 0, +           sizeof(xl->stats.interval.latencies));  }  static inline void -dump_call_stack_details (glusterfs_ctx_t *ctx, int fd) +dump_call_stack_details(glusterfs_ctx_t *ctx, int fd)  { -        dprintf (fd, "total.stack.count %lu\n", -                 GF_ATOMIC_GET (ctx->pool->total_count)); -        dprintf (fd, "total.stack.in-flight %lu\n", -                 ctx->pool->cnt); +    dprintf(fd, "total.stack.count %lu\n", +            GF_ATOMIC_GET(ctx->pool->total_count)); +    dprintf(fd, "total.stack.in-flight %lu\n", ctx->pool->cnt);  }  static inline void -dump_dict_details (glusterfs_ctx_t *ctx, int fd) +dump_dict_details(glusterfs_ctx_t *ctx, int fd)  { -        uint64_t total_dicts = 0; -        uint64_t total_pairs = 0; - -        total_dicts = GF_ATOMIC_GET (ctx->stats.total_dicts_used); -        total_pairs = GF_ATOMIC_GET (ctx->stats.total_pairs_used); - -        dprintf (fd, "total.dict.max-pairs-per %lu\n", -                 GF_ATOMIC_GET (ctx->stats.max_dict_pairs)); -        dprintf (fd, "total.dict.pairs-used %lu\n", total_pairs); -        dprintf (fd, "total.dict.used %lu\n", total_dicts); -        dprintf (fd, "total.dict.average-pairs %lu\n", -                            (total_pairs / total_dicts)); +    uint64_t total_dicts = 0; +    uint64_t total_pairs = 0; + +    total_dicts = GF_ATOMIC_GET(ctx->stats.total_dicts_used); +    total_pairs = GF_ATOMIC_GET(ctx->stats.total_pairs_used); + +    dprintf(fd, "total.dict.max-pairs-per %lu\n", +            GF_ATOMIC_GET(ctx->stats.max_dict_pairs)); +    dprintf(fd, "total.dict.pairs-used %lu\n", total_pairs); +    dprintf(fd, "total.dict.used %lu\n", total_dicts); +    dprintf(fd, "total.dict.average-pairs %lu\n", (total_pairs / total_dicts));  }  static void -dump_inode_stats (glusterfs_ctx_t *ctx, int fd) +dump_inode_stats(glusterfs_ctx_t *ctx, int fd)  {  }  static void -dump_global_metrics (glusterfs_ctx_t *ctx, int fd) +dump_global_metrics(glusterfs_ctx_t *ctx, int fd)  { -        struct timeval tv; -        time_t nowtime; -        struct tm *nowtm; -        char tmbuf[64] = {0,}; - -        gettimeofday(&tv, NULL); -        nowtime = tv.tv_sec; -        nowtm = localtime(&nowtime); -        strftime(tmbuf, sizeof tmbuf, "%Y-%m-%d %H:%M:%S", nowtm); - -        /* Let every file have information on which process dumped info */ -        dprintf (fd, "## %s\n", ctx->cmdlinestr); -        dprintf (fd, "### %s\n", tmbuf); -        dprintf (fd, "### BrickName: %s\n", ctx->cmd_args.brick_name); -        dprintf (fd, "### MountName: %s\n", ctx->cmd_args.mount_point); -        dprintf (fd, "### VolumeName: %s\n", ctx->cmd_args.volume_name); - -        /* Dump memory accounting */ -        dump_global_memory_accounting (fd); -        dprintf (fd, "# -----\n"); - -        dump_call_stack_details (ctx, fd); -        dump_dict_details (ctx, fd); -        dprintf (fd, "# -----\n"); - -        dump_inode_stats (ctx, fd); -        dprintf (fd, "# -----\n"); +    struct timeval tv; +    time_t nowtime; +    struct tm *nowtm; +    char tmbuf[64] = { +        0, +    }; + +    gettimeofday(&tv, NULL); +    nowtime = tv.tv_sec; +    nowtm = localtime(&nowtime); +    strftime(tmbuf, sizeof tmbuf, "%Y-%m-%d %H:%M:%S", nowtm); + +    /* Let every file have information on which process dumped info */ +    dprintf(fd, "## %s\n", ctx->cmdlinestr); +    dprintf(fd, "### %s\n", tmbuf); +    dprintf(fd, "### BrickName: %s\n", ctx->cmd_args.brick_name); +    dprintf(fd, "### MountName: %s\n", ctx->cmd_args.mount_point); +    dprintf(fd, "### VolumeName: %s\n", ctx->cmd_args.volume_name); + +    /* Dump memory accounting */ +    dump_global_memory_accounting(fd); +    dprintf(fd, "# -----\n"); + +    dump_call_stack_details(ctx, fd); +    dump_dict_details(ctx, fd); +    dprintf(fd, "# -----\n"); + +    dump_inode_stats(ctx, fd); +    dprintf(fd, "# -----\n");  }  static void -dump_xl_metrics (glusterfs_ctx_t *ctx, int fd) +dump_xl_metrics(glusterfs_ctx_t *ctx, int fd)  { -        xlator_t *xl; +    xlator_t *xl; -        xl = ctx->active->top; +    xl = ctx->active->top; -        while (xl) { -                dump_latency_and_count (xl, fd); -                dump_mem_acct_details (xl, fd); -                if (xl->dump_metrics) -                        xl->dump_metrics (xl, fd); -                xl = xl->next; -        } +    while (xl) { +        dump_latency_and_count(xl, fd); +        dump_mem_acct_details(xl, fd); +        if (xl->dump_metrics) +            xl->dump_metrics(xl, fd); +        xl = xl->next; +    } -        if (ctx->master) { -                xl = ctx->master; +    if (ctx->master) { +        xl = ctx->master; -                dump_latency_and_count (xl, fd); -                dump_mem_acct_details (xl, fd); -                if (xl->dump_metrics) -                        xl->dump_metrics (xl, fd); -        } +        dump_latency_and_count(xl, fd); +        dump_mem_acct_details(xl, fd); +        if (xl->dump_metrics) +            xl->dump_metrics(xl, fd); +    } -        return; +    return;  }  char * -gf_monitor_metrics (glusterfs_ctx_t *ctx) +gf_monitor_metrics(glusterfs_ctx_t *ctx)  { -        int ret = -1; -        int fd = 0; -        char *filepath, *dumppath; - -        dumppath = ctx->config.metrics_dumppath; -        if (dumppath == NULL) { -                dumppath = GLUSTER_METRICS_DIR; -        } - -        ret = gf_asprintf(&filepath, "%s/gmetrics.XXXXXX", dumppath); -        if (ret < 0) { -                return NULL; -        } - -        /* coverity[secure_temp] mkstemp uses 0600 as the mode and is safe */ -        fd = mkstemp (filepath); -        if (fd < 0) { -                gf_msg ("monitoring", GF_LOG_ERROR, 0, LG_MSG_STRDUP_ERROR, -                        "failed to open tmp file %s (%s)", -                        filepath, strerror (errno)); -                GF_FREE (filepath); -                return NULL; -        } - -        dump_global_metrics (ctx, fd); - -        dump_xl_metrics (ctx, fd); - -        /* This below line is used just to capture any errors with dprintf() */ -        ret = dprintf (fd, "\n# End of metrics\n"); -        if (ret < 0) { -                gf_msg ("monitoring", GF_LOG_WARNING, 0, LG_MSG_STRDUP_ERROR, -                        "dprintf() failed: %s", strerror (errno)); -        } - -        ret = sys_fsync (fd); -        if (ret < 0) { -                gf_msg ("monitoring", GF_LOG_WARNING, 0, LG_MSG_STRDUP_ERROR, -                        "fsync() failed: %s", strerror (errno)); -        } -        sys_close (fd); - -        /* Figure this out, not happy with returning this string */ -        return filepath; +    int ret = -1; +    int fd = 0; +    char *filepath, *dumppath; + +    dumppath = ctx->config.metrics_dumppath; +    if (dumppath == NULL) { +        dumppath = GLUSTER_METRICS_DIR; +    } + +    ret = gf_asprintf(&filepath, "%s/gmetrics.XXXXXX", dumppath); +    if (ret < 0) { +        return NULL; +    } + +    /* coverity[secure_temp] mkstemp uses 0600 as the mode and is safe */ +    fd = mkstemp(filepath); +    if (fd < 0) { +        gf_msg("monitoring", GF_LOG_ERROR, 0, LG_MSG_STRDUP_ERROR, +               "failed to open tmp file %s (%s)", filepath, strerror(errno)); +        GF_FREE(filepath); +        return NULL; +    } + +    dump_global_metrics(ctx, fd); + +    dump_xl_metrics(ctx, fd); + +    /* This below line is used just to capture any errors with dprintf() */ +    ret = dprintf(fd, "\n# End of metrics\n"); +    if (ret < 0) { +        gf_msg("monitoring", GF_LOG_WARNING, 0, LG_MSG_STRDUP_ERROR, +               "dprintf() failed: %s", strerror(errno)); +    } + +    ret = sys_fsync(fd); +    if (ret < 0) { +        gf_msg("monitoring", GF_LOG_WARNING, 0, LG_MSG_STRDUP_ERROR, +               "fsync() failed: %s", strerror(errno)); +    } +    sys_close(fd); + +    /* Figure this out, not happy with returning this string */ +    return filepath;  }  | 
