X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ffilter_frontend_net.cpp;h=8efda29d20dbd30165d2ea73fc149fce193f1d68;hb=47dbd1de7138760f24a41cbe0e3062b7e41aa409;hp=57fab7a8ae04b93d09e0d68755698590e57d9ca9;hpb=cb4456f564de9bb46f60aef81474f22ef1bd6dca;p=metaproxy-moved-to-github.git diff --git a/src/filter_frontend_net.cpp b/src/filter_frontend_net.cpp index 57fab7a..8efda29 100644 --- a/src/filter_frontend_net.cpp +++ b/src/filter_frontend_net.cpp @@ -61,6 +61,9 @@ namespace metaproxy_1 { ZAssocServer **az; int m_duration_freq[22]; double m_duration_lim[22]; + double m_duration_max; + double m_duration_min; + double m_duration_total; public: Rep(); ~Rep(); @@ -183,7 +186,15 @@ void yf::FrontendNet::ThreadPoolPackage::result(const char *t_info) while (m_p->m_duration_lim[ent] != 0.0 && duration > m_p->m_duration_lim[ent]) ent++; m_p->m_duration_freq[ent]++; - + + m_p->m_duration_total += duration; + + if (m_p->m_duration_max < duration) + m_p->m_duration_max = duration; + + if (m_p->m_duration_min == 0.0 || m_p->m_duration_min > duration) + m_p->m_duration_min = duration; + if (m_p->m_msg_config.length()) { Z_GDU *z_gdu = gdu->get(); @@ -291,24 +302,46 @@ void yf::FrontendNet::ZAssocChild::report(Z_HTTP_Request *hreq) number_total += m_p->m_duration_freq[i]; number_total += m_p->m_duration_freq[i]; - wrbuf_puts(w, "\n"); + wrbuf_puts(w, "\n"); wrbuf_puts(w, "\n"); wrbuf_printf(w, " \n", number_total); for (i = 0; m_p->m_duration_lim[i] != 0.0; i++) { if (m_p->m_duration_freq[i] > 0) wrbuf_printf( - w, " \n", + w, " \n", i > 0 ? m_p->m_duration_lim[i - 1] : 0.0, m_p->m_duration_lim[i], m_p->m_duration_freq[i]); } if (m_p->m_duration_freq[i] > 0) wrbuf_printf( - w, " \n", + w, " \n", m_p->m_duration_lim[i - 1], m_p->m_duration_freq[i]); + + if (m_p->m_duration_max != 0.0) + wrbuf_printf( + w, " \n", + m_p->m_duration_max); + if (m_p->m_duration_min != 0.0) + wrbuf_printf( + w, " \n", + m_p->m_duration_min); + if (m_p->m_duration_total != 0.0) + wrbuf_printf( + w, " \n", + m_p->m_duration_total / number_total); + wrbuf_puts(w, " \n"); + + int thread_busy; + int thread_total; + m_thread_pool_observer->get_thread_info(thread_busy, thread_total); + + wrbuf_printf(w, " \n", + thread_busy, thread_total); + wrbuf_puts(w, "\n"); hres->content_len = w.len(); @@ -482,7 +515,10 @@ yf::FrontendNet::Rep::Rep() m_duration_lim[18] = 15.0; m_duration_lim[19] = 20.0; m_duration_lim[20] = 30.0; - m_duration_lim[21] = 0; + m_duration_lim[21] = 0.0; + m_duration_max = 0.0; + m_duration_min = 0.0; + m_duration_total = 0.0; } yf::FrontendNet::Rep::~Rep()