<div dir="ltr"><div><div>Hello,<br><br></div><div>I'm trying to retrieve information regarding the number of times a cache file is expired (either forced, due to cache pressure, or not, such as time expiration). I've noticed that the cache manager process logs this info when configured with debug level for the error.log directive. An example is the following line:<br><br>[debug] 5461#5461: http file cache expire: "/data/nginx/cache/c/1b/cc1651d5d24be40ce402c4e583cd01bc"<br><br></div><div>I see, currently, two possible ways of achieving such goal. One is parsing the log file (using a cyclic memory buffer configured to a tmpfs/ramfs, as described in <a href="http://nginx.org/en/docs/debugging_log.html#memory">http://nginx.org/en/docs/debugging_log.html#memory</a>) with an external executable, in order to not increase IO ops or delay the cache processing under high load. <br><br>Another option would be to develop a module that would be called by the cache manager process every time its event loop executes, so it could access to the memory log, parse it and count the amount of times an expiration occurred. Although it is my understanding that current module hooks only allow access to memory (including the log struct) allocated by the worker process, I wonder if there is any other way to hook external code into the cache manager process (maybe by overloading some global static struct that contains any function declaration pertaining to the log or cache managing module?).<br></div><br><div></div><div>Is there any better way of achieving this goal? If not, are any of these two approaches doable/recommended? Any advice would be most welcome.<br><br><div></div>The NGINX version I'm currently using is the 1.8.1, 
and altering its code (such as patching any original source code) is 
something I would like to avoid at all costs.<br></div><div><br clear="all"></div>Thanks in advance.<br></div><div><div><div class="gmail_signature"><div dir="ltr"><div dir="ltr" style="font-size:12.8px"><div style="margin:0.25em 0px;font-family:Arial,Helvetica,sans-serif"><span style="font-family:arial,helvetica,sans-serif">Giovani.</span><div style="font-size:12.8px;margin:1.25em 0px"><table style="font-size:12px;font-family:Arial;max-width:500px" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td></td></tr></tbody></table></div></div></div><span style="font-size:12.8px;font-family:Calibri,sans-serif;color:rgb(0,0,0)"></span></div></div>
</div></div></div>