summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2022-03-21 11:40:20 +0800
committerliuxueli <[email protected]>2022-03-21 11:40:20 +0800
commit8b70dcb7a2c00c36dfc5eb88b8660e1b186212e9 (patch)
tree1aff1b1c00da5d7f28d3a24ab208f6dfa28552a7 /src
parent7ab746369a56e32252a295d9d721b3b12034a8f2 (diff)
TSG-9902: 修复FS2 histogram格式统计输出prometheous时出现重复多次的现象v2.10.8
Diffstat (limited to 'src')
-rw-r--r--src/fs2prometheus.cpp78
1 files changed, 37 insertions, 41 deletions
diff --git a/src/fs2prometheus.cpp b/src/fs2prometheus.cpp
index 206cf89..8550040 100644
--- a/src/fs2prometheus.cpp
+++ b/src/fs2prometheus.cpp
@@ -259,54 +259,50 @@ static void FS_library_promethues_output(struct mg_connection *c, int ev, void *
}
break;
case FS_STYLE_HISTOGRAM:
- for(j=0;j<fs2_handle->display_cnt;j++)
+ if(p->style!=FS_STYLE_HISTOGRAM)
{
- p=fs2_handle->display[j];
- if(p->style!=FS_STYLE_HISTOGRAM)
- {
- continue;
- }
+ continue;
+ }
+
+ if(payload_len-used_len<=STEP_SIZE)
+ {
+ payload_len+=STEP_SIZE;
+ payload=(char *)realloc(payload, payload_len);
+ }
+
+ str_unescape(fs2_handle->app_name, app_name, sizeof(app_name));
- if(payload_len-used_len<=STEP_SIZE)
+ used_len+=histgram_output_summary(p,
+ app_name,
+ fs2_handle->histogram_bins,
+ fs2_handle->histogram_bin_num,
+ payload+used_len,
+ payload_len-used_len
+ );
+
+ if(p->histogram.previous_changed!=NULL)
+ {
+ hdr_iter_recorded_init(&iter, p->histogram.accumulated);
+ while (hdr_iter_next(&iter))
{
- payload_len+=STEP_SIZE;
- payload=(char *)realloc(payload, payload_len);
+ sum+=(long long)iter.value;
}
-
+
+ str_unescape(p->name, line_name, sizeof(line_name));
str_unescape(fs2_handle->app_name, app_name, sizeof(app_name));
+ used_len+=snprintf(payload+used_len,
+ payload_len-used_len,
+ "%s_%s_sum{app_name=\"%s\"} %llu\n",
+ app_name,
+ line_name,
+ app_name,
+ sum
+ );
- used_len+=histgram_output_summary(p,
- app_name,
- fs2_handle->histogram_bins,
- fs2_handle->histogram_bin_num,
- payload+used_len,
- payload_len-used_len
- );
-
- if(p->histogram.previous_changed!=NULL)
+ if(payload_len-used_len<=100)
{
- hdr_iter_recorded_init(&iter, p->histogram.accumulated);
- while (hdr_iter_next(&iter))
- {
- sum+=(long long)iter.value;
- }
-
- str_unescape(p->name, line_name, sizeof(line_name));
- str_unescape(fs2_handle->app_name, app_name, sizeof(app_name));
- used_len+=snprintf(payload+used_len,
- payload_len-used_len,
- "%s_%s_sum{app_name=\"%s\"} %llu\n",
- app_name,
- line_name,
- app_name,
- sum
- );
-
- if(payload_len-used_len<=100)
- {
- payload_len+=STEP_SIZE;
- payload=(char *)realloc(payload, payload_len);
- }
+ payload_len+=STEP_SIZE;
+ payload=(char *)realloc(payload, payload_len);
}
}
break;