CNDP  22.08.0
metrics.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2020-2022 Intel Corporation
3  */
4 
11 #ifndef _METRICS_H_
12 #define _METRICS_H_
13 
14 #include <stdint.h>
15 
16 #include <cne_common.h> // for CNDP_API
17 #include <cne_lport.h>
18 #include <uds.h> // for uds_client_t, uds_info_t
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 typedef uds_info_t metrics_info_t;
25 typedef uds_client_t metrics_client_t;
26 
27 /* callback returns json data in buffer, up to buf_len long.
28  * returns length of buffer used on success, negative on error.
29  */
30 typedef int (*metrics_cb)(metrics_client_t *client, const char *cmd, const char *params);
31 
42 CNDP_API int metrics_register(const char *cmd, metrics_cb fn);
43 
52 CNDP_API int metrics_init(void *priv_);
53 
60 CNDP_API int metrics_destroy(void);
61 
74 #define metrics_append(c, fmt, ...) \
75  do { \
76  uds_append((uds_client_t *)c, (const char *)fmt, ##__VA_ARGS__); \
77  } while (0)
78 
87 CNDP_API const char *metrics_cmd(metrics_client_t *client);
88 
97 CNDP_API const char *metrics_params(metrics_client_t *client);
98 
111 CNDP_API int metrics_port_stats(metrics_client_t *c, char *name, lport_stats_t *s);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif /* _METRICS_H_ */
CNDP_API int metrics_port_stats(metrics_client_t *c, char *name, lport_stats_t *s)
CNDP_API int metrics_init(void *priv_)
CNDP_API int metrics_register(const char *cmd, metrics_cb fn)
CNDP_API int metrics_destroy(void)
CNDP_API const char * metrics_params(metrics_client_t *client)
CNDP_API const char * metrics_cmd(metrics_client_t *client)