[PATCH]add maat_state_free count&bytes statistics

This commit is contained in:
liuwentan
2023-06-09 17:30:20 +08:00
parent 48397f754e
commit afd6102734
6 changed files with 47 additions and 7 deletions

View File

@@ -98,7 +98,8 @@ long long group2compile_runtime_update_err_count(void *g2c_runtime);
struct maat_compile_state;
struct maat_compile_state *maat_compile_state_new(void);
void maat_compile_state_reset(struct maat_compile_state *compile_state);
void maat_compile_state_free(struct maat_compile_state *compile_state);
void maat_compile_state_free(struct maat_compile_state *compile_state,
struct maat *maat_instance, int thread_id);
void maat_compile_state_update(int vtable_id, struct maat_item *hit_items,
size_t n_hit_item, struct maat_state *state);

View File

@@ -156,6 +156,8 @@ struct maat_stat {
long long *not_grp_hit_cnt;
long long *maat_state_cnt;
long long *maat_compile_state_cnt;
long long *maat_state_free_cnt;
long long *maat_state_free_bytes;
long long scan_err_cnt;
long long zombie_rs_stream;

View File

@@ -1727,10 +1727,10 @@ void maat_state_free(struct maat_state *state)
long long thread_id = state->thread_id;
if (state->compile_state != NULL) {
maat_compile_state_free(state->compile_state);
maat_compile_state_free(state->compile_state, maat_instance, thread_id);
state->compile_state = NULL;
alignment_int64_array_add(maat_instance->stat->maat_compile_state_cnt,
state->thread_id, -1);
thread_id, -1);
}
state->maat_instance = NULL;
@@ -1738,6 +1738,10 @@ void maat_state_free(struct maat_state *state)
alignment_int64_array_add(maat_instance->stat->maat_state_cnt,
thread_id, -1);
alignment_int64_array_add(maat_instance->stat->maat_state_free_cnt,
thread_id, 1);
alignment_int64_array_add(maat_instance->stat->maat_state_free_bytes,
thread_id, sizeof(struct maat_state));
}
int maat_state_set_scan_district(struct maat_state *state, int vtable_id,

View File

@@ -167,7 +167,6 @@ struct maat_compile_state {
UT_array *internal_hit_paths;
UT_array *all_hit_clauses;
UT_array *this_scan_hit_clauses;
// UT_array *all_hit_groups;
};
UT_icd ut_literal_id_icd = {sizeof(struct maat_literal_id), NULL, NULL, NULL};
@@ -1478,28 +1477,36 @@ void maat_compile_state_reset(struct maat_compile_state *compile_state)
utarray_clear(compile_state->this_scan_hit_clauses);
}
void maat_compile_state_free(struct maat_compile_state *compile_state)
void maat_compile_state_free(struct maat_compile_state *compile_state,
struct maat *maat_instance, int thread_id)
{
if (NULL == compile_state) {
return;
}
long long free_bytes = 0;
if (compile_state->internal_hit_paths != NULL) {
free_bytes += utarray_len(compile_state->internal_hit_paths) * sizeof(struct maat_internal_hit_path);
utarray_free(compile_state->internal_hit_paths);
compile_state->internal_hit_paths = NULL;
}
if (compile_state->all_hit_clauses != NULL) {
free_bytes += utarray_len(compile_state->all_hit_clauses) * sizeof(long long);
utarray_free(compile_state->all_hit_clauses);
compile_state->all_hit_clauses = NULL;
}
if (compile_state->this_scan_hit_clauses != NULL) {
free_bytes += utarray_len(compile_state->this_scan_hit_clauses) * sizeof(long long);
utarray_free(compile_state->this_scan_hit_clauses);
compile_state->this_scan_hit_clauses = NULL;
}
FREE(compile_state);
free_bytes += sizeof(struct maat_compile_state);
alignment_int64_array_add(maat_instance->stat->maat_state_free_bytes, thread_id, free_bytes);
}
static int maat_compile_hit_path_add(UT_array *hit_paths, long long item_id,

View File

@@ -27,7 +27,7 @@
struct cm_table_info_t
{
char table_name[NAME_MAX];
char table_name[MAX_NAME_STR_LEN];
char cfg_path[NAME_MAX];
int cfg_num;
char encrypt_algo[NAME_MAX];

View File

@@ -33,6 +33,8 @@ enum MAAT_FS_STATUS {
STATUS_GROUP_REF_EXCL_NUM, //group reference exclude group num
STATUS_COMPILE_RULE_NUM,
STATUS_MAAT_STATE_NUM,
STATUS_MAAT_STATE_FREE_NUM,
STATUS_MAAT_STATE_FREE_BYTES,
STATUS_COMPILE_STATE_NUM,
STATUS_GARBAGE_QSIZE,
STATUS_TOTAL_SCAN_BYTES,
@@ -99,6 +101,10 @@ void maat_fieldstat_register(struct maat_stat *stat)
"garbage_num", NULL, 0);
stat->fs_status_id[STATUS_MAAT_STATE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"maat_state", NULL, 0);
stat->fs_status_id[STATUS_MAAT_STATE_FREE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"maat_state_free_cnt", NULL, 0);
stat->fs_status_id[STATUS_MAAT_STATE_FREE_BYTES] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"maat_state_free_bytes", NULL, 0);
stat->fs_status_id[STATUS_COMPILE_STATE_NUM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
"maat_compile_state", NULL, 0);
stat->fs_status_id[STATUS_ZOMBIE_RS_STREAM] = fieldstat_register(stat->fs_handle, FIELD_TYPE_GAUGE,
@@ -215,6 +221,8 @@ struct maat_stat *maat_stat_new(const char *stat_file, size_t max_thread_num,
stat->not_grp_hit_cnt = alignment_int64_array_alloc(max_thread_num);
stat->maat_state_cnt = alignment_int64_array_alloc(max_thread_num);
stat->maat_compile_state_cnt = alignment_int64_array_alloc(max_thread_num);
stat->maat_state_free_cnt = alignment_int64_array_alloc(max_thread_num);
stat->maat_state_free_bytes = alignment_int64_array_alloc(max_thread_num);
return stat;
}
@@ -250,6 +258,16 @@ void maat_stat_free(struct maat_stat *stat)
stat->maat_compile_state_cnt = NULL;
}
if (stat->maat_state_free_cnt != NULL) {
alignment_int64_array_free(stat->maat_state_free_cnt);
stat->maat_state_free_cnt = NULL;
}
if (stat->maat_state_free_bytes != NULL) {
alignment_int64_array_free(stat->maat_state_free_bytes);
stat->maat_state_free_bytes = NULL;
}
if (stat->fs_handle != NULL) {
fieldstat_instance_free(stat->fs_handle);
stat->fs_handle = NULL;
@@ -451,6 +469,10 @@ void maat_stat_output(struct maat_stat *stat, long long maat_version, int perf_o
stat->nr_worker_thread);
long long maat_state_cnt = alignment_int64_array_sum(stat->maat_state_cnt,
stat->nr_worker_thread);
long long maat_state_free_cnt = alignment_int64_array_sum(stat->maat_state_free_cnt,
stat->nr_worker_thread);
long long maat_state_free_bytes = alignment_int64_array_sum(stat->maat_state_free_bytes,
stat->nr_worker_thread);
long long maat_compile_state_cnt = alignment_int64_array_sum(stat->maat_compile_state_cnt,
stat->nr_worker_thread);
long long not_grp_hit_cnt = alignment_int64_array_sum(stat->not_grp_hit_cnt,
@@ -466,6 +488,10 @@ void maat_stat_output(struct maat_stat *stat, long long maat_version, int perf_o
table_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_NUM],
maat_state_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_FREE_NUM],
maat_state_free_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_MAAT_STATE_FREE_BYTES],
maat_state_free_bytes);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_COMPILE_STATE_NUM],
maat_compile_state_cnt);
fieldstat_value_set(stat->fs_handle, stat->fs_status_id[STATUS_NOT_GROUP_HIT],