diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-08-07 20:03:34 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-08-26 20:41:08 +0000 |
commit | 37a5071021601480384c2abe20f2d33ad974579d (patch) | |
tree | b0cc006c9cac9da7002e44adcfba2737bc0ce83f /mgmt.c | |
parent | fe1e1200c1541676e6b8402b7972a16105a76a63 (diff) | |
download | cmogstored-37a5071021601480384c2abe20f2d33ad974579d.tar.gz |
Our "all.stp" tapset now generates awk-friendly output for feeding some sample awk scripts. Using awk (and gawk) was necessary to avoid reimplementing strftime in guru mode for generating CLF (Common Log Format) HTTP access logs. Using awk also gives us several advantages: * floating point number support (for time differences) * a more familiar language to systems administrators (given this is for MogileFS, perhaps Perl would be even more familiar...). * fast edit/run cycle, so the slowness of using stap to rebuild/reload the kernel module for all.stp changes can be avoided when output must be customized.
Diffstat (limited to 'mgmt.c')
-rw-r--r-- | mgmt.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -37,10 +37,10 @@ static void mgmt_digest_step(struct mog_fd *mfd) case MOG_DIGEST_YIELD: return; case MOG_DIGEST_EOF: - mog_mgmt_fn_digest_emit(mgmt); + mog_mgmt_fn_digest_emit(mfd); break; case MOG_DIGEST_ERROR: - mog_mgmt_fn_digest_err(mgmt); + mog_mgmt_fn_digest_err(mfd); } mog_file_close(mgmt->forward); @@ -183,7 +183,7 @@ mgmt_process_client(struct mog_fd *mfd, struct mog_rbuf *rbuf, mog_mgmt_fn_size(mgmt, buf); break; case MOG_MGMT_METHOD_DIG: - mog_mgmt_fn_digest(mgmt, buf); + mog_mgmt_fn_digest(mfd, buf); if (dev && mgmt->forward) assert(mgmt->forward->as.file.ioq @@ -217,6 +217,8 @@ static char * mgmt_rbuf_grow(struct mog_fd *mfd, struct mog_rbuf **rbuf, size_t buf_len) { struct mog_mgmt *mgmt = &mfd->as.mgmt; + + TRACE(CMOGSTORED_MGMT_RBUF_GROW(mfd->fd, buf_len)); (*rbuf)->rsize = buf_len; mgmt->rbuf = *rbuf = mog_rbuf_grow(*rbuf); return *rbuf ? (*rbuf)->rptr : NULL; @@ -228,6 +230,8 @@ mgmt_parse_continue(struct mog_fd *mfd, struct mog_rbuf **rbuf, { struct mog_mgmt *mgmt = &mfd->as.mgmt; + TRACE(CMOGSTORED_MGMT_PARSE_CONTINUE(mfd->fd, buf_len)); + assert(mgmt->wbuf == NULL && "tried to write (and failed) with partial req"); if (mgmt->buf_off >= (*rbuf)->rcapa) { @@ -296,7 +300,7 @@ parse: return mgmt_run(mfd, rbuf, buf, buf_len); } } else if (r == 0) { /* client shut down */ - TRACE(CMOGSTORED_MGMT_RDCLOSE(mfd, buf_len)); + TRACE(CMOGSTORED_MGMT_CLIENT_CLOSE(mfd->fd, buf_len)); return MOG_NEXT_CLOSE; } else { switch (errno) { @@ -311,10 +315,10 @@ parse: case ECONNRESET: case ENOTCONN: /* these errors are too common to log, normally */ - TRACE(CMOGSTORED_MGMT_RDERR(mfd, buf_len, errno)); + TRACE(CMOGSTORED_MGMT_RDERR(mfd->fd, buf_len, errno)); return MOG_NEXT_CLOSE; default: - TRACE(CMOGSTORED_MGMT_RDERR(mfd, buf_len, errno)); + TRACE(CMOGSTORED_MGMT_RDERR(mfd->fd, buf_len, errno)); syslog(LOG_NOTICE, "mgmt client died: %m"); return MOG_NEXT_CLOSE; } |