diff options
| author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-04-01 18:58:58 +0200 |
|---|---|---|
| committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-04-01 18:58:58 +0200 |
| commit | 5351538b0aaa3db199b1116c33b38542e81edb41 (patch) | |
| tree | 111538f384e798b5b2f6b8838c3fa5624b1a5778 /runtime | |
| parent | 74df1b744f9482a315d88dbc7465557afa96897d (diff) | |
| download | rsyslog-5351538b0aaa3db199b1116c33b38542e81edb41.tar.gz rsyslog-5351538b0aaa3db199b1116c33b38542e81edb41.tar.xz rsyslog-5351538b0aaa3db199b1116c33b38542e81edb41.zip | |
impstats: added $PStatsJSON directive
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/statsobj.c | 11 | ||||
| -rw-r--r-- | runtime/statsobj.h | 14 |
2 files changed, 21 insertions, 4 deletions
diff --git a/runtime/statsobj.c b/runtime/statsobj.c index 9169d7db..a21614f6 100644 --- a/runtime/statsobj.c +++ b/runtime/statsobj.c @@ -262,14 +262,21 @@ finalize_it: * line. If the callback reports an error, processing is stopped. */ static rsRetVal -getAllStatsLines(rsRetVal(*cb)(void*, cstr_t*), void *usrptr) +getAllStatsLines(rsRetVal(*cb)(void*, cstr_t*), void *usrptr, statsFmtType_t fmt) { statsobj_t *o; cstr_t *cstr; DEFiRet; for(o = objRoot ; o != NULL ; o = o->next) { - CHKiRet(getStatsLine(o, &cstr)); + switch(fmt) { + case statsFmt_Legacy: + CHKiRet(getStatsLine(o, &cstr)); + break; + case statsFmt_JSON: + CHKiRet(getStatsLineCEE(o, &cstr)); + break; + } CHKiRet(cb(usrptr, cstr)); rsCStrDestruct(&cstr); } diff --git a/runtime/statsobj.h b/runtime/statsobj.h index 90279883..f7de68ee 100644 --- a/runtime/statsobj.h +++ b/runtime/statsobj.h @@ -43,6 +43,12 @@ typedef enum statsCtrType_e { ctrType_Int } statsCtrType_t; +/* stats line format types */ +typedef enum statsFmtType_e { + statsFmt_Legacy, + statsFmt_JSON +} statsFmtType_t; + /* helper entity, the counter */ typedef struct ctr_s { @@ -76,11 +82,15 @@ BEGINinterface(statsobj) /* name must also be changed in ENDinterface macro! */ rsRetVal (*Destruct)(statsobj_t **ppThis); rsRetVal (*SetName)(statsobj_t *pThis, uchar *name); rsRetVal (*GetStatsLine)(statsobj_t *pThis, cstr_t **ppcstr); - rsRetVal (*GetAllStatsLines)(rsRetVal(*cb)(void*, cstr_t*), void *usrptr); + rsRetVal (*GetAllStatsLines)(rsRetVal(*cb)(void*, cstr_t*), void *usrptr, statsFmtType_t fmt); rsRetVal (*AddCounter)(statsobj_t *pThis, uchar *ctrName, statsCtrType_t ctrType, void *pCtr); rsRetVal (*EnableStats)(void); ENDinterface(statsobj) -#define statsobjCURR_IF_VERSION 1 /* increment whenever you change the interface structure! */ +#define statsobjCURR_IF_VERSION 10 /* increment whenever you change the interface structure! */ +/* Changes + * v2-v9 rserved for future use in "older" version branches + * v10, 2012-04-01: GetAllStatsLines got fmt parameter + */ /* prototypes */ |
