Changeset f921b22e683e77376b8ad3a675d5a9a20e92e912

Show
Ignore:
Timestamp:
05/22/08 17:45:35 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1211478335 +0000
git-parent:

[fc879b8ebfb9f5de9e38c553a69f55837e32a394]

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

implements filter sets, fixes #24

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/Makefile.in

    ra504323 rf921b22  
    3030        noit_check.o noit_check_log.o noit_check_tools.o \ 
    3131        noit_module.o noit_conf.o noit_conf_checks.o noit_tokenizer.o \ 
    32         noit_jlog_listener.o 
     32        noit_jlog_listener.o noit_filters.o 
    3333 
    3434STRATCON_OBJS=stratcond.o noit_listener.o \ 
  • src/noit.conf

    r497022e rf921b22  
    7373    </listener> 
    7474  </listeners> 
    75   <checks max_initial_stutter="30000"
     75  <checks max_initial_stutter="30000" filterset="default"
    7676    <check uuid="1b4e28ba-2fa1-11d2-883f-b9b761bde3fb" module="ping_icmp" target="10.80.116.4" period="15000" timeout="14000"/> 
    7777    <dc1 timeout="5000" period="60000"> 
     
    122122    <check uuid="002d58ff-20ff-4db0-9420-782fc1748dc4" module="ssh2" target="10.80.117.2" period="60000" timeout="4000"/> 
    123123  </checks> 
     124  <filtersets> 
     125    <filterset name="default"> 
     126      <rule type="deny" module="^ping_icmp$" metric="^(?:minimum|maximum|count)$" /> 
     127    </filterset> 
     128  </filtersets> 
    124129  <config_templates> 
    125130    <config id="SwitchPort"> 
  • src/noit_check.c

    r01dbb0d rf921b22  
    100100    char module[256]; 
    101101    char name[256]; 
     102    char filterset[256]; 
    102103    char oncheck[1024] = ""; 
    103104    int no_period = 0; 
     
    131132      busted = noit_true; 
    132133    } 
     134 
     135    if(!INHERIT(stringbuf, filterset, filterset, sizeof(filterset))) 
     136      filterset[0] = '\0'; 
    133137 
    134138    if(!MYATTR(stringbuf, name, name, sizeof(name))) 
     
    176180        existing_check->module = strdup(module); 
    177181      } 
    178       noit_check_update(existing_check, target, name, options, 
     182      noit_check_update(existing_check, target, name, filterset, options, 
    179183                           period, timeout, oncheck[0] ? oncheck : NULL, 
    180184                           flags); 
     
    182186    } 
    183187    else { 
    184       noit_poller_schedule(target, module, name, options, 
     188      noit_poller_schedule(target, module, name, filterset, options, 
    185189                           period, timeout, oncheck[0] ? oncheck : NULL, 
    186190                           flags, uuid, out_uuid); 
     
    326330                  const char *target, 
    327331                  const char *name, 
     332                  const char *filterset, 
    328333                  noit_hash_table *config, 
    329334                  u_int32_t period, 
     
    359364  if(new_check->name) free(new_check->name); 
    360365  new_check->name = name ? strdup(name): NULL; 
     366  if(new_check->filterset) free(new_check->filterset); 
     367  new_check->filterset = filterset ? strdup(filterset): NULL; 
    361368 
    362369  if(config != NULL) { 
     
    396403                     const char *module, 
    397404                     const char *name, 
     405                     const char *filterset, 
    398406                     noit_hash_table *config, 
    399407                     u_int32_t period, 
     
    414422    uuid_copy(new_check->checkid, in); 
    415423 
    416   noit_check_update(new_check, target, name, config, 
     424  noit_check_update(new_check, target, name, filterset, config, 
    417425                    period, timeout, oncheck, flags); 
    418426  assert(noit_hash_store(&polls, 
  • src/noit_check.h

    rf1a1f36 rf921b22  
    9393  char *module; 
    9494  char *name; 
     95  char *filterset; 
    9596  noit_hash_table *config; 
    9697  char *oncheck;               /* target`name of the check that fires us */ 
     
    130131                       const char *module, 
    131132                       const char *name, 
     133                       const char *filterset, 
    132134                       noit_hash_table *config, 
    133135                       u_int32_t period, 
     
    142144                    const char *target, 
    143145                    const char *name, 
     146                    const char *filterset, 
    144147                    noit_hash_table *config, 
    145148                    u_int32_t period, 
  • src/noit_check_log.c

    rb7d1fe9 rf921b22  
    1010 
    1111#include "noit_check.h" 
     12#include "noit_filters.h" 
    1213#include "utils/noit_log.h" 
    1314#include "jlog/jlog.h" 
     
    6970  c = &check->stats.current; 
    7071  while(noit_hash_next(&c->metrics, &iter, &key, &klen, (void **)&m)) { 
     72    /* If we apply the filter set and it returns false, we don't log */ 
     73    if(!noit_apply_filterset(check->filterset, check, m)) continue; 
     74 
    7175    if(!m->metric_value.s) { /* they are all null */ 
    7276      noitL(metrics_log, "M\t%lu.%03lu\t%s\t%s\t%c\t[[null]]\n", 
  • src/noit_conf_checks.c

    rb4b4512 rf921b22  
    1919#include "noit_conf_private.h" 
    2020#include "noit_check.h" 
     21#include "noit_filters.h" 
    2122#include "noit_console.h" 
    2223#include "utils/noit_hash.h" 
     
    4041  { "/checks", "oncheck", "@oncheck", 0 }, 
    4142  { "/checks", "disable", "@disable", 0 }, 
     43  { "/checks", "filterset", "@filterset", 0 }, 
    4244  { "/checks", "module", "@module", 1 }, 
     45  { "/filtersets/filterset", "target", "@target", 1 }, 
     46  { "/filtersets/filterset", "module", "@module", 1 }, 
     47  { "/filtersets/filterset", "name", "@name", 1 }, 
     48  { "/filtersets/filterset", "metric", "@metric", 1 }, 
    4349}; 
    4450 
     
    377383    SHOW_ATTR(timeout); 
    378384    SHOW_ATTR(oncheck); 
     385    SHOW_ATTR(filterset); 
    379386    SHOW_ATTR(disable); 
    380387    /* Print out all the config settings */ 
     
    10721079   * that are descendent-or-self of this node. 
    10731080   */ 
    1074   refresh_subchecks(ncct, info); 
     1081  if(!strncmp(info->path, "/checks", strlen("/checks"))) 
     1082    refresh_subchecks(ncct, info); 
     1083  if(!strncmp(info->path, "/filtersets", strlen("/filtersets"))) 
     1084    noit_refresh_filtersets(ncct, info); 
    10751085  return 0; 
    10761086} 
     
    11041114   * that are descendent-or-self of this node. 
    11051115   */ 
    1106   refresh_subchecks(ncct, info); 
     1116  if(!strncmp(info->path, "/checks", strlen("/checks"))) 
     1117    refresh_subchecks(ncct, info); 
     1118  if(!strncmp(info->path, "/filterset", strlen("/filterest"))) 
     1119    noit_refresh_filtersets(ncct, info); 
    11071120  return 0; 
    11081121} 
  • src/noitd.c

    r06f58e6 rf921b22  
    1717#include "noit_conf.h" 
    1818#include "noit_conf_checks.h" 
     19#include "noit_filters.h" 
    1920 
    2021#define APPNAME "noit" 
     
    105106 
    106107  noit_module_init(); 
     108  noit_filters_init(); 
    107109  noit_poller_init(); 
    108110  noit_listener_init(APPNAME);