{"id":15463388,"url":"https://github.com/cored/http_log_monitor","last_synced_at":"2026-06-23T13:03:14.283Z","repository":{"id":66523344,"uuid":"156231919","full_name":"cored/http_log_monitor","owner":"cored","description":null,"archived":false,"fork":false,"pushed_at":"2018-11-20T14:44:17.000Z","size":86,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-21T12:35:12.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cored.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-05T14:35:34.000Z","updated_at":"2018-11-20T14:44:19.000Z","dependencies_parsed_at":"2023-02-28T01:15:36.299Z","dependency_job_id":null,"html_url":"https://github.com/cored/http_log_monitor","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"3fde43a4a8187e7703ed28d2537d1d668732f8b7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cored/http_log_monitor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cored%2Fhttp_log_monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cored%2Fhttp_log_monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cored%2Fhttp_log_monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cored%2Fhttp_log_monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cored","download_url":"https://codeload.github.com/cored/http_log_monitor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cored%2Fhttp_log_monitor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34690775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T00:20:46.097Z","updated_at":"2026-06-23T13:03:14.239Z","avatar_url":"https://github.com/cored.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HttpLogMonitor\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/619b0bf79440ca90106d/maintainability)](https://codeclimate.com/github/cored/http_log_monitor/maintainability)\n\nMonitor [common access](https://httpd.apache.org/docs/1.3/logs.html) logs to display useful statistics and report alerts.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'http_log_monitor'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install http_log_monitor\n\n## Usage\n\n```\nUsages: bin/monitor ACCESS_LOG_PATH [options]\n\nSpecific options:\n    -a, --alerts-threshold \u003cAMOUNT\u003e  Hit alert threshold\n    -t, --threshold \u003cSECONDS\u003e        Log retention threshold\n    -r, --refresh \u003cSECONDS\u003e          Time to refresh the monitor\n    -h, --help                       Display help\n```\n\n## Report Stats\n\n```\nMonitor Info\n--------------------------------------------------\nThreshold: 120\nAlert Threshold: 10\nRefresh Time: 10\n--------------------------------------------------\nLog Stats\n--------------------------------------------------\nFilename: test_access.log\nTotal lines processed: 5\nTotal bytes: 526.00 B\nAvg bytes: 100.00 B\n---------------------------------------------------\nSections Stats\n---------------------------------------------------\nMost hits: [\"/user\", 3]\nLess hits: [\"/report\", 2]\n---------------------------------------------------\nHTTP Codes Stats\n----------------------------------------------------\nCode - Hits\n200 - 4\n503 - 1\n----------------------------------------------------\nAlerts\n-----------------------------------------------------\nNo Alerts - Recover at 09:40:03 AM\n```\n\n## Configuration Settings\n\n```\n$ export MONITOR_REFRESH_TIME=10 # 10 by default\n$ export MONITOR_ALERTS_THRESHOLD=500 # 500 by default\n$ export MONITOR_THRESHOLD=120 # 120 by default\n```\n\n*Any of the environment variables will be overwritten by the options passed\nthrough the command line*\n\n## Features\n\n- [x] Monitor a common log file and process statistics\n- [x] Maintain the process running until manual user intervention\n- [x] Display information for the section with the highest amount of hits\n- [x] Check for past processed logs to triggered alerts base on the total amount of\nhits\n\n## Known Bugs \u0026 Improvements\n\n- [ ] The amount of hits per seconds is not quantifying future hits after\n      processing for an alert\n- [ ] Since the monitoring happens to fast the implementation is not using\n    a clock wall to calculate the amount of hits past 2 minutes, instead what\n    is doing is just to gather the total amount of hits across all seconds\n    prior to the point in time in which the calculation happen\n\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/cored/http_log_monitor. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the HttpLogMonitor project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cored/http_log_monitor/blob/master/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcored%2Fhttp_log_monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcored%2Fhttp_log_monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcored%2Fhttp_log_monitor/lists"}