{"id":26328684,"url":"https://github.com/forward3d/resque_to_cloudwatch","last_synced_at":"2025-03-15T21:18:16.276Z","repository":{"id":52417973,"uuid":"14303880","full_name":"forward3d/resque_to_cloudwatch","owner":"forward3d","description":"Gem for submitting Resque queue lengths to Cloudwatch","archived":false,"fork":false,"pushed_at":"2021-04-29T19:58:07.000Z","size":24,"stargazers_count":4,"open_issues_count":7,"forks_count":7,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-04-25T20:02:39.572Z","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/forward3d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-11T15:01:15.000Z","updated_at":"2016-03-08T22:49:36.000Z","dependencies_parsed_at":"2022-08-21T01:20:12.270Z","dependency_job_id":null,"html_url":"https://github.com/forward3d/resque_to_cloudwatch","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forward3d%2Fresque_to_cloudwatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forward3d%2Fresque_to_cloudwatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forward3d%2Fresque_to_cloudwatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forward3d%2Fresque_to_cloudwatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forward3d","download_url":"https://codeload.github.com/forward3d/resque_to_cloudwatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719398,"owners_count":20336607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2025-03-15T21:18:15.770Z","updated_at":"2025-03-15T21:18:16.260Z","avatar_url":"https://github.com/forward3d.png","language":"Ruby","readme":"# resque_to_cloudwatch\n\nThis is a gem containing a daemon for submitting Resque metrics to\nAWS Cloudwatch. In addition, it can (optionally) submit these metrics to Graphite.\n\nIt collects and pushes the following metrics:\n* number of jobs in all Resque queues (`resque_queues`)\n* number of workers currently working (`resque_workers_working`)\n* number of workers currently alive (`resque_workers_alive`)\n* work remaining, which is workers working + queue length (`resque_work_remaining`)\n\n## Usage\n\nThe daemon lives at `bin/resque_to_cloudwatch`, and takes only a single parameter:\n\n    bin/resque_to_cloudwatch --config /path/to/config.yaml\n\nIf you don't supply this parameter, the daemon will look for a config file in the \ncurrent directory.\n\n## Configuration\n\nThe config file has the following format (in YAML):\n\n    access_key_id: asdfasfasd\n    secret_access_key: asdfasdfasf\n    region: \n     - us-west-2\n    project: testing\n    hostname: laptop\n    redis_host: some.redis.host\n    redis_port: 6379\n    period: 60\n    namespace: F3D\n\n#### `access_key_id`, `secret_access_key`\n\nYour AWS access key/secret key pair.\n\n#### `region`\n\nRegion(s) of Cloudwatch the metrics should be submitted to. This can either be a string, or\na list of regions to send the metric to.\n\n#### `project`, `namespace`, `hostname`\n\nThese can actually contain any text - they are submitted as \"dimensions\" along\nwith the metric value. A single metric in Cloudwatch is uniquely identified by \nits name (hardcoded to `resque_queues`, `resque_workers_working` and `resque_workers_alive`\nin this gem), and any dimensions it has. At Forward3D, we have a number of autoscaling \"projects\" \n(codebases), so we use the project dimension to represent that. Namespace is more \nimportant, as that determines how the metric is categorised in the Cloudwatch interface. \nHostname can be anything, or blank - we set it to the hostname of the submitting machine.\n\n#### `redis_host`, `redis_port`\n\nRedis host and port.\n\n#### `enable_graphite`, `graphite_host`, `graphite_port`\n\nThis gem can also send the metric it collects to Graphite - set `enable_graphite`\nto `true`, and set the Graphite host and port if you want to the daemon to do this.\n\n#### `period`\n\nThe period of the EventMachine loop - how often stats are collected and sent.\n\n## Graphite metric\n\nThe Graphite metric name will look like this:\n\n    resque_to_cloudwatch.namespace.metric_name.hostname.project\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforward3d%2Fresque_to_cloudwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforward3d%2Fresque_to_cloudwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforward3d%2Fresque_to_cloudwatch/lists"}