summaryrefslogtreecommitdiff
path: root/modules/metadata
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2012-12-09 13:20:13 +0000
committerStefan Fritsch <sf@apache.org>2012-12-09 13:20:13 +0000
commitdcc145f19676b55f6fe1446926964f003f70670b (patch)
tree4abfdbb63b7ce4eec40b5a555ccba3efb4c07ea6 /modules/metadata
parent3730209ca79ffc28d3409d5abf33cbb0d08312fa (diff)
downloadhttpd-dcc145f19676b55f6fe1446926964f003f70670b.tar.gz
Merge r1389565, r1389566, r1389569:
Allow for exposure of loadavg and server load via mod_headers Might as well show 'em all Document new mod_headers params: %l, %i, %b Submitted by: jim Reviewed by: jailletc36, druggeri, minfrin git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1418937 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/metadata')
-rw-r--r--modules/metadata/mod_headers.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/metadata/mod_headers.c b/modules/metadata/mod_headers.c
index d3a155569a..93977390b9 100644
--- a/modules/metadata/mod_headers.c
+++ b/modules/metadata/mod_headers.c
@@ -220,6 +220,28 @@ static const char *header_request_ssl_var(request_rec *r, char *name)
}
}
+static const char *header_request_loadavg(request_rec *r, char *a)
+{
+ ap_loadavg_t t;
+ ap_get_loadavg(&t);
+ return apr_psprintf(r->pool, "l=%.2f/%.2f/%.2f", t.loadavg,
+ t.loadavg5, t.loadavg15);
+}
+
+static const char *header_request_idle(request_rec *r, char *a)
+{
+ ap_sload_t t;
+ ap_get_sload(&t);
+ return apr_psprintf(r->pool, "i=%d", t.idle);
+}
+
+static const char *header_request_busy(request_rec *r, char *a)
+{
+ ap_sload_t t;
+ ap_get_sload(&t);
+ return apr_psprintf(r->pool, "b=%d", t.busy);
+}
+
/*
* Config routines
*/
@@ -905,6 +927,9 @@ static int header_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
register_format_tag_handler("t", header_request_time);
register_format_tag_handler("e", header_request_env_var);
register_format_tag_handler("s", header_request_ssl_var);
+ register_format_tag_handler("l", header_request_loadavg);
+ register_format_tag_handler("i", header_request_idle);
+ register_format_tag_handler("b", header_request_busy);
return OK;
}