projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
{GPL, other}: Relicense to MIT license.
[collectd.git]
/
src
/
utils_tail_match.c
diff --git
a/src/utils_tail_match.c
b/src/utils_tail_match.c
index
26e9531
..
f683ade
100644
(file)
--- a/
src/utils_tail_match.c
+++ b/
src/utils_tail_match.c
@@
-18,7
+18,7
@@
*
* Author:
* Luke Heberling <lukeh at c-ware.com>
*
* Author:
* Luke Heberling <lukeh at c-ware.com>
- * Florian Forster <octo at
verplant
.org>
+ * Florian Forster <octo at
collectd
.org>
*
* Description:
* Encapsulates useful code to plugins which must parse a log file.
*
* Description:
* Encapsulates useful code to plugins which must parse a log file.
@@
-37,6
+37,7
@@
struct cu_tail_match_simple_s
char plugin_instance[DATA_MAX_NAME_LEN];
char type[DATA_MAX_NAME_LEN];
char type_instance[DATA_MAX_NAME_LEN];
char plugin_instance[DATA_MAX_NAME_LEN];
char type[DATA_MAX_NAME_LEN];
char type_instance[DATA_MAX_NAME_LEN];
+ cdtime_t interval;
};
typedef struct cu_tail_match_simple_s cu_tail_match_simple_t;
};
typedef struct cu_tail_match_simple_s cu_tail_match_simple_t;
@@
-54,6
+55,7
@@
struct cu_tail_match_s
int flags;
cu_tail_t *tail;
int flags;
cu_tail_t *tail;
+ cdtime_t interval;
cu_tail_match_match_t *matches;
size_t matches_num;
};
cu_tail_match_match_t *matches;
size_t matches_num;
};
@@
-88,6
+90,7
@@
static int simple_submit_match (cu_match_t *match, void *user_data)
sstrncpy (vl.type_instance, data->type_instance,
sizeof (vl.type_instance));
sstrncpy (vl.type_instance, data->type_instance,
sizeof (vl.type_instance));
+ vl.interval = data->interval;
plugin_dispatch_values (&vl);
if (match_value->ds_type & UTILS_MATCH_DS_TYPE_GAUGE)
plugin_dispatch_values (&vl);
if (match_value->ds_type & UTILS_MATCH_DS_TYPE_GAUGE)
@@
-99,10
+102,11
@@
static int simple_submit_match (cu_match_t *match, void *user_data)
return (0);
} /* int simple_submit_match */
return (0);
} /* int simple_submit_match */
-static int tail_callback (void *data, char *buf, int buflen)
+static int tail_callback (void *data, char *buf,
+ int __attribute__((unused)) buflen)
{
cu_tail_match_t *obj = (cu_tail_match_t *) data;
{
cu_tail_match_t *obj = (cu_tail_match_t *) data;
-
in
t i;
+
size_
t i;
for (i = 0; i < obj->matches_num; i++)
match_apply (obj->matches[i].match, buf);
for (i = 0; i < obj->matches_num; i++)
match_apply (obj->matches[i].match, buf);
@@
-134,7
+138,7
@@
cu_tail_match_t *tail_match_create (const char *filename)
void tail_match_destroy (cu_tail_match_t *obj)
{
void tail_match_destroy (cu_tail_match_t *obj)
{
-
in
t i;
+
size_
t i;
if (obj == NULL)
return;
if (obj == NULL)
return;
@@
-179,6
+183,7
@@
int tail_match_add_match (cu_tail_match_t *obj, cu_match_t *match,
obj->matches = temp;
obj->matches_num++;
obj->matches = temp;
obj->matches_num++;
+ DEBUG ("tail_match_add_match interval %lf", CDTIME_T_TO_DOUBLE(((cu_tail_match_simple_t *)user_data)->interval));
temp = obj->matches + (obj->matches_num - 1);
temp->match = match;
temp = obj->matches + (obj->matches_num - 1);
temp->match = match;
@@
-190,15
+195,15
@@
int tail_match_add_match (cu_tail_match_t *obj, cu_match_t *match,
} /* int tail_match_add_match */
int tail_match_add_match_simple (cu_tail_match_t *obj,
} /* int tail_match_add_match */
int tail_match_add_match_simple (cu_tail_match_t *obj,
- const char *regex, int ds_type,
+ const char *regex,
const char *excluderegex,
int ds_type,
const char *plugin, const char *plugin_instance,
const char *plugin, const char *plugin_instance,
- const char *type, const char *type_instance)
+ const char *type, const char *type_instance
, const cdtime_t interval
)
{
cu_match_t *match;
cu_tail_match_simple_t *user_data;
int status;
{
cu_match_t *match;
cu_tail_match_simple_t *user_data;
int status;
- match = match_create_simple (regex, ds_type);
+ match = match_create_simple (regex,
excluderegex,
ds_type);
if (match == NULL)
return (-1);
if (match == NULL)
return (-1);
@@
-220,6
+225,8
@@
int tail_match_add_match_simple (cu_tail_match_t *obj,
sstrncpy (user_data->type_instance, type_instance,
sizeof (user_data->type_instance));
sstrncpy (user_data->type_instance, type_instance,
sizeof (user_data->type_instance));
+ user_data->interval = interval;
+
status = tail_match_add_match (obj, match, simple_submit_match,
user_data, free);
status = tail_match_add_match (obj, match, simple_submit_match,
user_data, free);
@@
-236,7
+243,7
@@
int tail_match_read (cu_tail_match_t *obj)
{
char buffer[4096];
int status;
{
char buffer[4096];
int status;
-
in
t i;
+
size_
t i;
status = cu_tail_read (obj->tail, buffer, sizeof (buffer), tail_callback,
(void *) obj);
status = cu_tail_read (obj->tail, buffer, sizeof (buffer), tail_callback,
(void *) obj);