14-Mar-2016 07:10 - last edited on 21-Nov-2022 22:27 by JimmyPackets
I'm working on an iRule that logs traffic to an ElasticSearch cluster. One of the items that I want to log, is the HTTP status code. When requests are served by a backend server, I can access the status in the HTTP_RESPONSE_RELEASE phase via the [HTTP::status] variable.
However, if the object is served from the F5 cache, this doesn't work:
Mar 14 11:53:24 slot1/_______ err tmm: 01220001:3: TCL error: /Common/____ - Illegal argument. Invalid client side API (line 4) invoked from within "HTTP::status"
I already figured out that I can access most HTTP headers in the CACHE_RESPONSE phase via [CACHE::headers], but this does not include the HTTP status. Also, in this phase, [HTTP::status] does not work:
01070151:3: Rule [/Common/___] error: /Common/___:67: error: [command is not valid in current event context (CACHE_RESPONSE)][HTTP::status]
How can I log the status code from the cached response?
unfortunately this is not yet possible. I had the same issue when reporting HTTP requests using HSL.
I have raised a case with F5 and F5 Product Development has filed a Feature Request ID537539 to include status code when content is being served out of RamCache.
This is supposed to be implemented in some upcoming release.
Find myself needing the same thing now in 2023 - don't suppose there's been a workaround added for this in the last decade(ish)?