{"id":16903232,"url":"https://github.com/dpup/esu","last_synced_at":"2026-05-07T05:31:29.613Z","repository":{"id":57511105,"uuid":"66427936","full_name":"dpup/esu","owner":"dpup","description":"ECS Service Utility","archived":false,"fork":false,"pushed_at":"2020-06-16T03:59:25.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-15T05:43:43.505Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dpup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-24T03:58:10.000Z","updated_at":"2020-06-16T03:59:25.000Z","dependencies_parsed_at":"2022-09-26T17:51:03.631Z","dependency_job_id":null,"html_url":"https://github.com/dpup/esu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dpup/esu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpup%2Fesu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpup%2Fesu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpup%2Fesu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpup%2Fesu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpup","download_url":"https://codeload.github.com/dpup/esu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpup%2Fesu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32724449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-13T18:11:59.908Z","updated_at":"2026-05-07T05:31:29.587Z","avatar_url":"https://github.com/dpup.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESU (ECS Service Utility)\n\n_From the department of nested acronyms, comes a set of utilities for locating\nand monitoring ECS services._\n\n**Status: Experimental**\n\nThis repository contains a Go library that wraps the AWS SDK and offers\nutilities for querying and monitoring ECS tasks. The original purpose was to\nfacilitate service discovery in lieu of an ELB in front of each service, but\nthere are many other purposes.\n\nTo list or locate tasks one off, use `TaskFinder`:\n\n```go\ntf := esu.NewTaskFinder(sess, *cluster)\ntasks, err := tf.Tasks(\"website\")\n```\n\nTo monitor the status of a service, use `TaskMonitor`:\n\n```go\ntm := esu.NewTaskMonitor(sess, \"sites\", \"website\")\ntm.OnTaskChange = func(tasks []esu.TaskInfo) { ... }\ntm.OnError = func(err error) { ... }\ntm.Monitor()\n```\n\nThe data return about a Task, aggregated from several API calls is represented\nby the `TaskInfo` struct:\n\n```go\ntype TaskInfo struct {\n  TaskDefinition   string\n  DesiredStatus    ECSTaskStatus  // RUNNING, PENDING, STOPPED\n  LastStatus       ECSTaskStatus\n  StartedAt        time.Time\n  Port             int\n  PublicDNSName    string\n  PublicIPAddress  string\n  PrivateDNSName   string\n  PrivateIPAddress string\n}\n```\n\nFull API docs can be found here: https://godoc.org/github.com/dpup/esu\n\n## Tools\n\n_[List Tasks](./cmd/listtasks/listtasks.go)_ - Show all services and tasks\nrunning on an ECS cluster\n\n    go run cmd/listtasks/listtasks.go --cluster=sites\n\n_[Monitor Service](./cmd/monitor/monitor.go)_ - Monitors status of a service,\nprinting out status changes to runing tasks.\n\n    go run cmd/monitor/monitor.go --cluster=sites --service=website\n\n_[Update Task](./cmd/updatetask/updatetask.go)_ - Updates the container image of\na service and waits for the tasks to be updated.\n\n    go run cmd/updatetask/updatetask.go --world=prod --service=website --tag=build-38\n\n(This task assumes the cluster is named `prod-cluster` and the task definition\nfor the servies is `prod-website`.)\n\n(Make sure credentials are available in the environment)\n\n## Contributing\n\nQuestions, comments, bug reports, and pull requests are all welcome. Submit them\n[on the project issue tracker](https://github.com/dpup/gohubbub/esu/new).\n\n## License\n\nCopyright 2016 [Daniel Pupius](http://pupius.co.uk). Licensed under the\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpup%2Fesu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpup%2Fesu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpup%2Fesu/lists"}