apps: fix uptime for groups with 0 processes (#16538)
Ilya Mashchenko committed
Dec 5, 2023 at 13:42 UTC
d2f4ef9674f481cbcc0c3f2c9cbe11e4e2b51106
1 file changed
+23
-9
collectors/apps.plugin/apps_plugin.c
+23
-9
@@ -3750,7 +3750,7 @@ static void send_collected_data_to_netdata(struct target *root, const char *type
3750
struct target *w;
3751
3752
for (w = root; w ; w = w->next) {
3753
- if (unlikely(!w->exposed && !w->is_other))
3753
+ if (unlikely(!w->exposed))
3754
continue;
3755
3756
send_BEGIN(type, w->clean_name, "processes", dt);
@@ -3806,16 +3806,30 @@ static void send_collected_data_to_netdata(struct target *root, const char *type
3806
#endif
3807
3808
#ifndef __FreeBSD__
3809
- send_BEGIN(type, w->clean_name, "uptime", dt);
3810
- send_SET("uptime", (global_uptime > w->starttime) ? (global_uptime - w->starttime) : 0);
3811
- send_END();
3809
+ if (w->processes == 0) {
3810
+ send_BEGIN(type, w->clean_name, "uptime", dt);
3811
+ send_SET("uptime", 0);
3812
+ send_END();
3813
3813
- if (enable_detailed_uptime_charts) {
3814
- send_BEGIN(type, w->clean_name, "uptime_summary", dt);
3815
- send_SET("min", w->uptime_min);
3816
- send_SET("avg", w->processes > 0 ? w->uptime_sum / w->processes : 0);
3817
- send_SET("max", w->uptime_max);
3814
+ if (enable_detailed_uptime_charts) {
3815
+ send_BEGIN(type, w->clean_name, "uptime_summary", dt);
3816
+ send_SET("min", 0);
3817
+ send_SET("avg", 0);
3818
+ send_SET("max", 0);
3819
+ send_END();
3820
+ }
3821
+ } else {
3822
+ send_BEGIN(type, w->clean_name, "uptime", dt);
3823
+ send_SET("uptime", (global_uptime > w->starttime) ? (global_uptime - w->starttime) : 0);
3824
send_END();
3825
+
3826
+ if (enable_detailed_uptime_charts) {
3827
+ send_BEGIN(type, w->clean_name, "uptime_summary", dt);
3828
+ send_SET("min", w->uptime_min);
3829
+ send_SET("avg", w->processes > 0 ? w->uptime_sum / w->processes : 0);
3830
+ send_SET("max", w->uptime_max);
3831
+ send_END();
3832
+ }
3833
}
3834
#endif
3835