This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.2.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.2.x by this push:
new 6ffbdab290 Fixes a problem which can decrement milestone metrics
unintentionally (#10188)
6ffbdab290 is described below
commit 6ffbdab2906e15a1a6bab7288e6afbcac48808aa
Author: Leif Hedstrom <[email protected]>
AuthorDate: Wed Aug 16 16:37:43 2023 -0600
Fixes a problem which can decrement milestone metrics unintentionally
(#10188)
(cherry picked from commit 583318ac22e884830945a3ffcf831dc397685dfc)
---
proxy/Milestones.h | 4 ++--
proxy/http/HttpTransact.cc | 43 +++++++++++++++++++++++--------------------
2 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/proxy/Milestones.h b/proxy/Milestones.h
index c8b3af5cbd..b50d289dcc 100644
--- a/proxy/Milestones.h
+++ b/proxy/Milestones.h
@@ -64,10 +64,10 @@ public:
* @return The difference time in milliseconds
*/
int64_t
- difference_msec(T ms_start, T ms_end) const
+ difference_msec(T ms_start, T ms_end, int64_t missing = -1) const // Return
"missing" when Milestone is not set
{
if (this->_milestones[static_cast<size_t>(ms_end)] == 0) {
- return -1;
+ return missing;
}
return ink_hrtime_to_msec(this->_milestones[static_cast<size_t>(ms_end)] -
this->_milestones[static_cast<size_t>(ms_start)]);
}
diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
index 65f3b1c06a..b1095be30d 100644
--- a/proxy/http/HttpTransact.cc
+++ b/proxy/http/HttpTransact.cc
@@ -8879,37 +8879,40 @@ HttpTransact::update_size_and_time_stats(State *s,
ink_hrtime total_time, ink_hr
}
// update milestones stats
- HTTP_SUM_DYN_STAT(http_ua_begin_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_BEGIN));
- HTTP_SUM_DYN_STAT(http_ua_first_read_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_FIRST_READ));
+ HTTP_SUM_DYN_STAT(http_ua_begin_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_BEGIN, 0));
+ HTTP_SUM_DYN_STAT(http_ua_first_read_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_FIRST_READ,
0));
HTTP_SUM_DYN_STAT(http_ua_read_header_done_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_UA_READ_HEADER_DONE));
- HTTP_SUM_DYN_STAT(http_ua_begin_write_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_BEGIN_WRITE));
- HTTP_SUM_DYN_STAT(http_ua_close_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_CLOSE));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_UA_READ_HEADER_DONE, 0));
+ HTTP_SUM_DYN_STAT(http_ua_begin_write_time_stat,
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_UA_BEGIN_WRITE, 0));
+ HTTP_SUM_DYN_STAT(http_ua_close_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_UA_CLOSE, 0));
HTTP_SUM_DYN_STAT(http_server_first_connect_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_FIRST_CONNECT));
- HTTP_SUM_DYN_STAT(http_server_connect_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SERVER_CONNECT));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_FIRST_CONNECT, 0));
+ HTTP_SUM_DYN_STAT(http_server_connect_time_stat,
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_CONNECT, 0));
HTTP_SUM_DYN_STAT(http_server_connect_end_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_CONNECT_END));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_CONNECT_END, 0));
HTTP_SUM_DYN_STAT(http_server_begin_write_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_BEGIN_WRITE));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_BEGIN_WRITE, 0));
HTTP_SUM_DYN_STAT(http_server_first_read_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_FIRST_READ));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_FIRST_READ, 0));
HTTP_SUM_DYN_STAT(http_server_read_header_done_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_READ_HEADER_DONE));
- HTTP_SUM_DYN_STAT(http_server_close_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SERVER_CLOSE));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_SERVER_READ_HEADER_DONE, 0));
+ HTTP_SUM_DYN_STAT(http_server_close_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SERVER_CLOSE,
0));
HTTP_SUM_DYN_STAT(http_cache_open_read_begin_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_READ_BEGIN));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_READ_BEGIN, 0));
HTTP_SUM_DYN_STAT(http_cache_open_read_end_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_READ_END));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_READ_END, 0));
HTTP_SUM_DYN_STAT(http_cache_open_write_begin_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_WRITE_BEGIN));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_WRITE_BEGIN, 0));
HTTP_SUM_DYN_STAT(http_cache_open_write_end_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_WRITE_END));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_CACHE_OPEN_WRITE_END, 0));
HTTP_SUM_DYN_STAT(http_dns_lookup_begin_time_stat,
- milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_DNS_LOOKUP_BEGIN));
- HTTP_SUM_DYN_STAT(http_dns_lookup_end_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_DNS_LOOKUP_END));
- HTTP_SUM_DYN_STAT(http_sm_start_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SM_START));
- HTTP_SUM_DYN_STAT(http_sm_finish_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SM_FINISH));
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_DNS_LOOKUP_BEGIN, 0));
+ HTTP_SUM_DYN_STAT(http_dns_lookup_end_time_stat,
+ milestones.difference_msec(TS_MILESTONE_SM_START,
TS_MILESTONE_DNS_LOOKUP_END, 0));
+ HTTP_SUM_DYN_STAT(http_sm_start_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SM_START, 0));
+ HTTP_SUM_DYN_STAT(http_sm_finish_time_stat,
milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SM_FINISH, 0));
}
void