Title: proxy logging code

Hello, I apologize if this issue has come up before, but I thought I would run it by the list before proceeding with modifying the mod_proxy C code:

My organization uses the Apache proxy functionality pretty extensively, both reverse and forward. There doesn't seem to be any way to log proxy transfer information associated with a request to the access logs. We have some Netscape proxies we want to retire and quite a bit of cache and throughput performance monitoring based on the transfer logs that I can't seem to duplicate with Apache. In particular, I need to log the following additional request items:

    . . . s2 c2 b1 b2 h1 h2 h3 h4 dnstm route

 

    s2    - remote server status response
    c2    - bytes served from remote host
    b1    - client request body size
    b2    - proxy request body size
    h1    - client request header size
    h2    - proxy response to client header size
    h3    - proxy request to remote header size
    h4    - remote response header size
    dnstm - remote host DNS resolve time (ms), or "-" for ProxyRemote forwards
    route - "remoteproxy:port" or "-"

I believe the standard response to this issue is "why don't you just use Squid?", and my response to that is that I don't want to unless I have to. We are doing a lot of reverse-proxy virtual hosting along with caching, and we like Apache just fine. The Apache performance is acceptable, etc. We also use quite a bit of mod_perl. In the case of our old existing Netscape proxies, I have quite a bit of NSAPI C code (access control system) I need to rewrite, and I would prefer to code it using the Apache API. (And no, Squid's out-of-the-tarball access control doesn't come anywhere near handling our needs, interfacing with our systems, etc).

If the answer is "you'll have to code it yourself", that's fine, but I wanted to check first. We're still using the Apache 1.3.x source base and do not plan on tackling the 2.0 stuff for a while (until the proxy and cache functionality is more solid, etc). My coding strategy for adding the additional proxy log items will probably make use of the mod_log_config facility to log "notes" (e.g. "%{proxy-s2}n) from other modules, mod_proxy in this case, using the ap_table_set(r->notes,"proxy-s2","...") API call.

Is the r->notes approach the best strategy? Should I contribute the code back to the Apache group, or is logging proxy cache information too esoteric to be of general use?

Any help, info, insights are welcome.

Reply via email to