summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2023-05-10 17:51:57 +0800
committerfengweihao <[email protected]>2023-05-10 17:51:57 +0800
commit2a55a2be7504a39dd19b4ea2ff2f73c4a0be35f2 (patch)
treeaabf3c11720cb382f576c0e9dc983d1b15773b21 /common
parent542f4cbdfa6f58dd8a07e35663116a08f54170bd (diff)
bugfix:修复管控策略Policy Hits Metrics误发送pinning_status,根据route_dir发送字节数
Diffstat (limited to 'common')
-rw-r--r--common/include/tfe_fieldstat.h4
-rw-r--r--common/src/tfe_fieldstat.cpp10
2 files changed, 7 insertions, 7 deletions
diff --git a/common/include/tfe_fieldstat.h b/common/include/tfe_fieldstat.h
index de472f3..1126feb 100644
--- a/common/include/tfe_fieldstat.h
+++ b/common/include/tfe_fieldstat.h
@@ -23,9 +23,9 @@ enum metric_tags_index
{
TAG_VSYS_ID = 0,
TAG_RULE_ID,
- TAG_PINNING_STATUS,
TAG_ACTION,
TAG_SUB_ACTION,
+ TAG_PINNING_STATUS,
TAG_MAX
};
@@ -39,7 +39,7 @@ struct tfe_fieldstat_metric_t
};
void tfe_set_intercept_metric(struct tfe_stream *stream, int hit_count, int downstream_rx_pkts, int downstream_rx_bytes, int upstream_rx_pkts, int upstream_rx_bytes);
-int tfe_fieldstat_metric_incrby(struct tfe_fieldstat_metric_t *fieldstat, unsigned int column_id, long long value, const struct fieldstat_tag tags[], int thread_id);
+int tfe_fieldstat_metric_incrby(struct tfe_fieldstat_metric_t *fieldstat, unsigned int column_id, long long value, const struct fieldstat_tag tags[], int n_tags, int thread_id);
struct tfe_fieldstat_metric_t *tfe_fieldstat_metric_create(char *telegraf_ip, int telegraf_port, char *app_name, int cycle, int max_thread, void *local_logger);
void tfe_fieldstat_metric_destroy(struct tfe_fieldstat_metric_t *fieldstat);
diff --git a/common/src/tfe_fieldstat.cpp b/common/src/tfe_fieldstat.cpp
index b6e815c..6e37d58 100644
--- a/common/src/tfe_fieldstat.cpp
+++ b/common/src/tfe_fieldstat.cpp
@@ -150,16 +150,16 @@ void tfe_set_intercept_metric(struct tfe_stream *stream, int hit_count, int down
}
}
-int tfe_fieldstat_metric_incrby(struct tfe_fieldstat_metric_t *fieldstat, unsigned int column_id, long long value, const struct fieldstat_tag tags[], int thread_id)
+int tfe_fieldstat_metric_incrby(struct tfe_fieldstat_metric_t *fieldstat, unsigned int column_id, long long value, const struct fieldstat_tag tags[], int n_tags, int thread_id)
{
- return fieldstat_dynamic_table_metric_value_incrby(fieldstat->instance, fieldstat->table_id, column_id, "proxy_rule_hits", value, tags, (size_t)TAG_MAX, thread_id);
+ return fieldstat_dynamic_table_metric_value_incrby(fieldstat->instance, fieldstat->table_id, column_id, "proxy_rule_hits", value, tags, (size_t)n_tags, thread_id);
}
struct tfe_fieldstat_metric_t *tfe_fieldstat_metric_create(char *telegraf_ip, int telegraf_port, char *app_name, int cycle, int max_thread, void *local_logger)
{
int i=0;
- struct fieldstat_tag metric_tags[TAG_MAX] = {{"vsys_id", 0, -1}, {"rule_id", 0, -1}, {"pinning_status", 0, -1 }, {"action", 0, -1}, {"sub_action", 2, -1} };
+ struct fieldstat_tag metric_tags[TAG_MAX - 1] = {{"vsys_id", 0, -1}, {"rule_id", 0, -1}, {"action", 0, -1}, {"sub_action", 2, -1}};
const char *column_field[COLUMN_MAX] = {"hit_count", "in_bytes", "out_bytes", "in_pkts", "out_pkts"};
enum field_type column_type[COLUMN_MAX] = {FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER};
@@ -187,8 +187,8 @@ struct tfe_fieldstat_metric_t *tfe_fieldstat_metric_create(char *telegraf_ip, in
fieldstat->tags = ALLOC(struct fieldstat_tag*, max_thread);
for (i = 0; i < max_thread; i++)
{
- fieldstat->tags[i] = ALLOC(struct fieldstat_tag, TAG_MAX);
- memcpy(fieldstat->tags[i], metric_tags, sizeof(struct fieldstat_tag) * (size_t)TAG_MAX);
+ fieldstat->tags[i] = ALLOC(struct fieldstat_tag, TAG_MAX-1);
+ memcpy(fieldstat->tags[i], metric_tags, sizeof(struct fieldstat_tag) * (size_t)(TAG_MAX-1));
}
fieldstat_dynamic_instance_start(fieldstat->instance);