Changeset 5e653fe60dcc517ff76c1f3bb82cee19b3c51fa5

Show
Ignore:
Timestamp:
06/06/08 18:56:54 (10 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1212778614 +0000
git-parent:

[bee4ff5cd3e246444249d7c48e9bb34fd5e4c831]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1212778614 +0000
Message:

fixes #30

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/noit_check.c

    redf3f13 r5e653fe  
    3737#define UUID_SIZE sizeof(struct uuid_dummy) 
    3838 
    39 static const char * 
    40 __noit_check_available_string(int16_t available) { 
     39const char * 
     40noit_check_available_string(int16_t available) { 
    4141  switch(available) { 
    4242    case NP_AVAILABLE:    return "available"; 
     
    4646  return "???"; 
    4747} 
    48 static const char * 
    49 __noit_check_state_string(int16_t state) { 
     48const char * 
     49noit_check_state_string(int16_t state) { 
    5050  switch(state) { 
    5151    case NP_GOOD:         return "good"; 
     
    698698    noitL(noit_error, "%s`%s -> [%s:%s]\n", 
    699699          check->target, check->name, 
    700           __noit_check_available_string(check->stats.current.available), 
    701           __noit_check_state_string(check->stats.current.state)); 
     700          noit_check_available_string(check->stats.current.available), 
     701          noit_check_state_string(check->stats.current.state)); 
    702702  } 
    703703 
  • src/noit_check.h

    redf3f13 r5e653fe  
    171171  noit_stats_set_metric(stats_t *, const char *, metric_type_t, void *); 
    172172 
     173API_EXPORT(const char *) 
     174  noit_check_available_string(int16_t available); 
     175API_EXPORT(const char *) 
     176  noit_check_state_string(int16_t state); 
     177API_EXPORT(int) 
     178  noit_stats_snprint_metric(char *b, int l, metric_t *m); 
     179 
    173180/* These are from noit_check_log.c */ 
    174181API_EXPORT(void) noit_check_log_check(noit_check_t *check); 
  • src/noit_check_log.c

    rf921b22 r5e653fe  
    117117  } 
    118118} 
     119int 
     120noit_stats_snprint_metric(char *b, int l, metric_t *m) { 
     121  int rv; 
     122  if(!m->metric_value.s) { /* they are all null */ 
     123    rv = snprintf(b, l, "%s[%c] = [[null]]", m->metric_name, m->metric_type); 
     124  } 
     125  else { 
     126    switch(m->metric_type) { 
     127      case METRIC_INT32: 
     128        rv = snprintf(b, l, "%s[%c] = %d", 
     129                      m->metric_name, m->metric_type, *(m->metric_value.i)); 
     130        break; 
     131      case METRIC_UINT32: 
     132        rv = snprintf(b, l, "%s[%c] = %u", 
     133                      m->metric_name, m->metric_type, *(m->metric_value.I)); 
     134        break; 
     135      case METRIC_INT64: 
     136        rv = snprintf(b, l, "%s[%c] = %lld", 
     137                      m->metric_name, m->metric_type, *(m->metric_value.l)); 
     138        break; 
     139      case METRIC_UINT64: 
     140        rv = snprintf(b, l, "%s[%c] = %llu", 
     141                      m->metric_name, m->metric_type, *(m->metric_value.L)); 
     142        break; 
     143      case METRIC_DOUBLE: 
     144        rv = snprintf(b, l, "%s[%c] = %.12e", 
     145                      m->metric_name, m->metric_type, *(m->metric_value.n)); 
     146        break; 
     147      case METRIC_STRING: 
     148        rv = snprintf(b, l, "%s[%c] = %s", 
     149                      m->metric_name, m->metric_type, m->metric_value.s); 
     150        break; 
     151      default: 
     152        rv = snprintf(b, l, "%s has unknown metric type 0%02x", 
     153                      m->metric_name, m->metric_type); 
     154    } 
     155  } 
     156  return rv; 
     157} 
  • src/noit_conf_checks.c

    r9491030 r5e653fe  
    406406      if(!idx) nc_printf(ncct, "idle"); 
    407407      nc_write(ncct, "\n", 1); 
    408       if(check->stats.current.status) 
    409         nc_printf(ncct, " recently: %s\n", check->stats.current.status); 
     408      if(check->stats.current.whence.tv_sec == 0) { 
     409        nc_printf(ncct, " last run: never\n"); 
     410      } 
     411      else { 
     412        stats_t *c = &check->stats.current; 
     413        struct timeval now, diff; 
     414        gettimeofday(&now, NULL); 
     415        sub_timeval(now, c->whence, &diff); 
     416        nc_printf(ncct, " last run: %0.3f seconds ago\n", 
     417                  diff.tv_sec + (diff.tv_usec / 1000000.0)); 
     418        nc_printf(ncct, " availability/state: %s/%s\n", 
     419                  noit_check_available_string(c->available), 
     420                  noit_check_state_string(c->state)); 
     421        nc_printf(ncct, " status: %s\n", c->status ? c->status : "[[null]]"); 
     422        nc_printf(ncct, " metrics:\n"); 
     423        memset(&iter, 0, sizeof(iter)); 
     424        while(noit_hash_next(&c->metrics, &iter, &k, &klen, &data)) { 
     425          char buff[256]; 
     426          noit_stats_snprint_metric(buff, sizeof(buff), (metric_t *)data); 
     427          nc_printf(ncct, "   %s\n", buff); 
     428        } 
     429      } 
    410430    } 
    411431  }