https://github.com/pierozi/awatchlog
AWS Cloudwatch Log Agent in Rust-Lang
https://github.com/pierozi/awatchlog
agent aws logging rust
Last synced: 2 months ago
JSON representation
AWS Cloudwatch Log Agent in Rust-Lang
- Host: GitHub
- URL: https://github.com/pierozi/awatchlog
- Owner: Pierozi
- License: bsd-3-clause
- Created: 2018-01-13T18:23:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-30T08:56:41.000Z (over 7 years ago)
- Last Synced: 2025-06-08T14:43:21.423Z (about 1 year ago)
- Topics: agent, aws, logging, rust
- Language: Rust
- Homepage:
- Size: 63.5 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AWatchLog
AWatchLog is an AWS Cloudwatch log agent.
It is a small daemon use to stream your common file system logfile to AWS Cloudwatch log service.
## Why This Agent?
The official agent provides by AWS is a python program who suffer from high memory usage (> 200MB) and rarely hang up process during the streaming event to Amazon.
The memory leak can be huge, depending on the numbers of files you process at same time.
This agent has on purpose to consume less than 20MB memory and still be able to stream log under high usage.
## Roadmap
The project is still under active development, there are not yet `release candidate` available.
Look at the first milestone to know the progress.
https://github.com/Pierozi/awatchlog/milestone/1
## Test Rust Agent
```
make build
make run
```
## Test Python Agent
The python agent have been warp in `Docker` container.
Go on directroy `tests/python` to build `Dockerfile` to be able to test the
official python agent.
```
// Move into python directory
$ cd tests/python
// Build Container by replacing the XXX by your own values
$ docker build --build-arg="AWS_KEY=XXX" --build-arg="AWS_SECRET="XXX" -f Dockerfile -t pierozi/awatchlog:python ../
// Run the container
$ ./watch
// Launch awslog service and show the log
$ docker exec awatchlog-python-test /bin/bash -c 'service awslogs start && tail -f /var/log/awslogs.log'
```
The watch command return nothing by default.
but the container will write some random data in logfile and the log agent stream it to aws.
## Contribution
I do my best to keep code at a certain quality.
If you are much experimented with Rust and see some design pattern or implementation could be improved, please, I would love to know how to make it better.
In this case feel free to open Issue, or even better, publish change code in a Pull Request.