{"id":13684218,"url":"https://github.com/knqyf263/utern","last_synced_at":"2025-04-06T14:13:06.071Z","repository":{"id":45958721,"uuid":"168786680","full_name":"knqyf263/utern","owner":"knqyf263","description":"Multi group and stream log tailing for AWS CloudWatch Logs.","archived":false,"fork":false,"pushed_at":"2022-10-02T06:56:29.000Z","size":437,"stargazers_count":308,"open_issues_count":3,"forks_count":23,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-30T13:08:42.682Z","etag":null,"topics":["amazon","aws","cloudwatch-logs","command-line","debugging","devops","go","golang","logging","standalone","tail"],"latest_commit_sha":null,"homepage":"","language":"Go","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/knqyf263.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-02T02:41:50.000Z","updated_at":"2025-02-10T03:17:55.000Z","dependencies_parsed_at":"2023-01-19T02:01:05.229Z","dependency_job_id":null,"html_url":"https://github.com/knqyf263/utern","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knqyf263%2Futern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knqyf263%2Futern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knqyf263%2Futern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knqyf263%2Futern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knqyf263","download_url":"https://codeload.github.com/knqyf263/utern/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247492566,"owners_count":20947545,"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":["amazon","aws","cloudwatch-logs","command-line","debugging","devops","go","golang","logging","standalone","tail"],"created_at":"2024-08-02T14:00:31.099Z","updated_at":"2025-04-06T14:13:06.045Z","avatar_url":"https://github.com/knqyf263.png","language":"Go","readme":"# utern\n\n\n[![GitHub release](https://img.shields.io/github/release/knqyf263/utern.svg)](https://github.com/knqyf263/utern/releases/latest)\n[![Build Status](https://travis-ci.org/knqyf263/utern.svg?branch=master)](https://travis-ci.org/knqyf263/utern)\n[![Go Report Card](https://goreportcard.com/badge/github.com/knqyf263/utern)](https://goreportcard.com/report/github.com/knqyf263/utern)\n[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/knqyf263/utern/blob/master/LICENSE)\n\n\u003cimg src=\"img/logo.png\" width=\"300\"\u003e\n\nThe “best of best” way to tail AWS CloudWatch Logs from your terminal.\n\n\u003cimg src=\"img/usage.gif\" width=\"700\"\u003e\n\n\n# Abstract\n`Utern` allows you to tail log events from multiple log groups and log streams on AWS CloudWatch Logs. Each result is color coded for quicker debugging. Inspired by [stern](https://github.com/wercker/stern).\n\nThe query is a regular expression so the log group name and stream name can easily be filtered and you don't need to specify the exact name. If a stream is deleted it gets removed from tail and if a new stream is added it automatically gets tailed.\n\nWhen a log group contains multiple log streams, `Utern` can tail all of them too without having to do this manually for each one. Simply specify the filter to limit what log events to show.\n\n```\n$ utern [options] log-group-query\n```\n\nSo Simple!!\n\nThe log-group-query is a regular expression so you could provide \"web-\\w\" to tail web-backend and web-frontend log groups but not web-123.\n\n\n\n# Features\n- **Multi log groups tailing in parallel**\n  - Regular expression\n- **Multi log streams tailing in parallel**\n  - Regular expression\n- **Colorful**\n  - Quicker debugging\n- Flexible date and time parser\n  - Human friendly formats, i.e. 1h20m to indicate 1 hour and 20 minutes ago\n  - A full timestamp 2019-01-02T03:04:05Z (RFC3339)\n- Powerful built-in filter\n  -  https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html\n- Fast\n  - Written in golang\n- Easy installation\n  - Pre-built binaries\n\n# Installation\n## From source\n\n```console\n$ git clone https://github.com/knqyf263/utern.git\n$ cd utern\n$ go install\n```\n\n## Binary (Including Windows)\nGo to [the releases page](https://github.com/knqyf263/utern/releases), find the version you want, and download the zip file. Unpack the zip file, and put the binary to somewhere you want (on UNIX-y systems, /usr/local/bin or the like). Make sure it has execution bits turned on.\n\n## Mac OS X / Homebrew\nYou can use homebrew on OS X.\n```\n$ brew tap knqyf263/utern\n$ brew install knqyf263/utern/utern\n```\n\nIf you receive an error (`Error: knqyf263/utern/utern 64 already installed`) during `brew upgrade`, try the following command\n\n```\n$ brew unlink utern \u0026\u0026 brew uninstall utern\n($ rm -rf /usr/local/Cellar/utern/64)\n$ brew install knqyf263/utern/utern\n```\n\n## RedHat, CentOS\nDownload rpm package from [the releases page](https://github.com/knqyf263/utern/releases)\n```\n$ sudo rpm -ivh https://github.com/knqyf263/utern/releases/download/v0.0.1/utern_0.0.1_Tux_64-bit.rpm\n```\n\n## Debian, Ubuntu\nDownload deb package from [the releases page](https://github.com/knqyf263/utern/releases)\n```\n$ wget https://github.com/knqyf263/utern/releases/download/v0.0.1/utern_0.0.1_Tux_64-bit.deb\n$ sudo dpkg -i utern_0.0.1_Tux_64-bit.deb\n```\n\n# Examples\nSome examples are shown below.\n\n### List all log groups\n\n```console\n$ aws logs describe-log-groups --query \"logGroups[].[logGroupName]\" --output text\n```\n\n### List all log streams\n\n```console\n$ aws logs describe-log-streams --log-group-name log-group-name --query \"logStreams[].[logStreamName]\" --output text\n\n```\n\n### All log streams\n\n```console\n$ utern log-group-query\n```\n\n### Filter log groups with regular expressions\n\n```console\n$ utern \"web-\\w\"\n```\n\n### Filter log streams with regular expressions (--stream, -n)\n\n```console\n$ utern --stream log-stream-query log-group-query\n```\n\n### Filter log streams with a prefix of log stream name (--stream-prefix, -p)\nIf the log group has many log streams, `--stream-prefix` will be faster than `--stream`.\n\n```console\n$ utern --stream-prefix log-stream-prefix log-group-query\n```\n\n### Filter log streams with a prefix and regular expressions\n\n```console\n$ utern -p log-stream-prefix -n log-stream-query log-group-query\n```\n\n### Logs after 1 hour ago (--since, -s)\n\n```console\n$ utern --since 1h log-group-query\n```\n\n### Logs after 2019-01-02 03:04:05 UTC\nRFC3339\n\n```console\n$ utern --since 2019-01-02T03:04:05Z log-group-query\n```\n\n### Logs from 10 minutes ago to 5 minutes ago\n\n```console\n$ utern --since 10m --end 5m log-group-query\n```\n\n# Usage\n\n```console\nNAME:\n   utern - Multi group and stream log tailing for AWS CloudWatch Logs\n\nUSAGE:\n   utern [global options] command [command options] [arguments...]\n\nVERSION:\n   0.1.1\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --stream value, -n value         Log stream name (regular expression).\n                                    Displays all if omitted. If the option\n                                    \"since\" is set to recent time, this option\n                                    usually makes it faster than the option\n                                    \"stream-prefix\"\n   --stream-prefix value, -p value  Log stream name prefix. If a log group\n                                    contains many log streams, this option makes\n                                    it faster.\n   --since value, -s value          Return logs newer than a relative duration\n                                    like 52, 2m, or 3h. (default: \"5m\")\n   --end value, -e value            Return logs older than a relative duration\n                                    like 0, 2m, or 3h.\n   --profile value                  Specify an AWS profile.\n   --code value                     Specify MFA token code directly\n                                    (if applicable), instead of using stdin.\n   --region value, -r value         Specify an AWS region.\n   --filter value                   The filter pattern to use. For more\n                                    information, see https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html.\n   --timestamps                     Print timestamps\n   --event-id                       Print event ID\n   --no-log-group                   Suppress display of log group name\n   --no-log-stream                  Suppress display of log stream name\n   --max-length value               Maximum log message length (default: 0)\n   --color                          Force color output even if not a tty\n   --help, -h                       show help\n   --version, -v                    print the version\n```\n\n# Contribute\n\n1. fork a repository: github.com/knqyf263/utern to github.com/you/repo\n2. get original code: `go get github.com/knqyf263/utern`\n3. work on original code\n4. add remote to your repo: git remote add myfork https://github.com/you/repo.git\n5. push your changes: git push myfork\n6. create a new Pull Request\n\n- see [GitHub and Go: forking, pull requests, and go-getting](http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html)\n\n----\n\n# License\nMIT\n\n# Author\nTeppei Fukuda\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknqyf263%2Futern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknqyf263%2Futern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknqyf263%2Futern/lists"}