Eu acho que você superestima o quanto isso é difícil.
No seu código, basta ter um contador com redis / memcached / mongodb (contador de 1/24 de hora ou contador de hora em hora / diário, dependendo das suas necessidades) e retornar o erro apropriado quando o limite for atingido. Você pode incrementar as contagens ali mesmo ou fazer isso de forma assíncrona ao processar seus registros.
Para mostrar os dados, basta criar uma página da web simples, resumindo as contagens conforme necessário.
Para nosso uso, não precisamos limitar as coisas exatamente, por isso, geralmente apenas registramos nossa infra-estrutura de log e um dos processadores de log (em tempo real, através de escriba) resumirá esse tipo de coisa. A saída é uma página HTML simples com os IPs / clientes ocupados, alguma página que o nagios pode monitorar e algumas URLs que recebem dados para fazer gráficos.