Fixed docs and test.sh

This commit is contained in:
Colin 2024-07-22 20:35:01 -04:00
parent addbf6dbc5
commit 264b909888
2 changed files with 83 additions and 37 deletions

View File

@ -1,73 +1,97 @@
You can stream and read files to a sentry DSN glitchtip or sentry itself I was fed up with how brittle sentry-cli was so I made this. Certainly! Here is the updated README without the mentions of license or contributions:
I might get around to making a whole CI/CD process for this which will upload the executables properly at some point and make this public. # Inotify-Glitch
# Go Glitch
Go Glitch is a command-line utility that reads log messages from a file or stdin and sends them to Glitchtip, a self-hosted Sentry-compatible error tracking system. Inotify-Glitch is a command-line utility that reads log messages from files and sends them to Glitchtip, a self-hosted Sentry-compatible error tracking system. This tool provides a more reliable alternative to `sentry-cli` for streaming and reading log files.
## Installation ## Installation
To install the binary locally, you can use the provided installation script. Run the following command in your terminal: To install the binary locally, you can use the provided installation script. Run the following command in your terminal:
```sh ```sh
curl -sSL https://git.nixc.us/Nixius/go-glitch/raw/branch/master/install.sh | bash curl -sSL https://git.nixc.us/colin/inotify-glitch/raw/branch/master/install.sh | bash
``` ```
This will download and install the Go Glitch binary to your local machine. This will download and install the Inotify-Glitch binary to your local machine.
## Usage ## Usage
You can use Go Glitch by specifying a log file as an argument or by piping input to it. You can use Inotify-Glitch by specifying log files through environment variables.
### Using a Log File ### Setting Up Environment Variables
```sh Inotify-Glitch requires the `GLITCHTIP_DSN` environment variable to be set with your Glitchtip DSN and the `LOG_FILES` environment variable to list the log files to monitor.
go-glitch /path/to/logfile
```
### Using Piped Input #### Shell Environment
```sh Add the following lines to your `.zshrc` or `.bashrc` file:
cat /path/to/logfile | go-glitch
```
## Configuration
Go Glitch requires the `GLITCHTIP_DSN` environment variable to be set with your Glitchtip DSN. You can set this environment variable in your shell environment, Dockerfile, or `docker-compose.yml` file.
### Shell Environment
Add the following line to your `.zshrc` or `.bashrc` file:
```sh ```sh
export GLITCHTIP_DSN="your-glitchtip-dsn" export GLITCHTIP_DSN="your-glitchtip-dsn"
export LOG_FILES="path/to/logfile1,path/to/logfile2"
``` ```
After adding the line, reload your shell configuration: After adding these lines, reload your shell configuration:
```sh ```sh
source ~/.zshrc # for zsh users source ~/.zshrc # for zsh users
source ~/.bashrc # for bash users source ~/.bashrc # for bash users
``` ```
### Dockerfile #### Dockerfile
If you are using a Docker container, add the environment variable in your `Dockerfile`: If you are using a Docker container, add the environment variables in your `Dockerfile`:
```Dockerfile ```Dockerfile
ENV GLITCHTIP_DSN=your-glitchtip-dsn ENV GLITCHTIP_DSN=your-glitchtip-dsn
ENV LOG_FILES=/path/to/logfile1,/path/to/logfile2
``` ```
### docker-compose.yml #### docker-compose.yml
If you are using Docker Compose, add the environment variable in your `docker-compose.yml` file: If you are using Docker Compose, add the environment variables in your `docker-compose.yml` file:
```yaml ```yaml
version: '3.8' version: '3.8'
services: services:
go-glitch: inotify-glitch:
image: your-docker-image image: your-docker-image
environment: environment:
- GLITCHTIP_DSN=your-glitchtip-dsn - GLITCHTIP_DSN=your-glitchtip-dsn
- LOG_FILES=/path/to/logfile1,/path/to/logfile2
``` ```
## Running Inotify-Glitch
Once you have set up the necessary environment variables, you can start Inotify-Glitch to monitor the specified log files.
### Running Directly
```sh
inotify-glitch
```
### Example: Appending an Error Line to a Log File
To see Inotify-Glitch in action, append an error line to one of the monitored log files:
```sh
echo "This is an error line" >> /path/to/logfile1
```
Inotify-Glitch will detect the change and send the error message to Glitchtip.
## Development and CI/CD
This project aims to provide a more reliable logging solution. In the future, I plan to set up a CI/CD process that will upload the executables automatically and make this project public.
### Debug Mode
To enable debug mode, set the `DEBUG` environment variable:
```sh
export DEBUG=true
```
This will enable more detailed logging to help troubleshoot issues.

38
test.sh
View File

@ -14,9 +14,28 @@ echo "Creating test log files..."
echo "Initial log content" > test_log_1.log echo "Initial log content" > test_log_1.log
echo "Initial log content" > test_log_2.log echo "Initial log content" > test_log_2.log
# Determine the OS and architecture
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
case $ARCH in
x86_64) ARCH="amd64" ;;
arm64 | aarch64) ARCH="arm64" ;;
arm*) ARCH="arm/v7" ;;
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac
BINARY="./dist/inotify-glitch_${OS}_${ARCH}"
# Check if the binary exists
if [ ! -f "$BINARY" ]; then
echo "Binary for ${OS}_${ARCH} not found. Please ensure the correct binary is present."
exit 1
fi
# Run the Go program in the background # Run the Go program in the background
echo "Starting the Go program..." echo "Starting the Go program: $BINARY"
./dist/inotify-glitch_darwin_arm64 & $BINARY &
# Capture the PID of the Go program # Capture the PID of the Go program
GO_PID=$! GO_PID=$!
@ -24,15 +43,18 @@ GO_PID=$!
# Give the program a moment to start # Give the program a moment to start
sleep 2 sleep 2
# Append a line with an error to one of the log files # Append a different error line to each log file
echo "Appending error line to test_log_1.log..." echo "Appending error line to test_log_1.log..."
echo "This is an error line" >> test_log_1.log echo "Error in log 1: Test error message 1" >> test_log_1.log
# Give the program some time to process the change echo "Appending error line to test_log_2.log..."
sleep 2 echo "Error in log 2: Test error message 2" >> test_log_2.log
# Check if the Go program detected the change (you can enhance this section with more specific checks) # Give the program some time to process the changes
echo "Check the logs to verify the program detected the error line." sleep 5
# Check if the Go program detected the changes (you can enhance this section with more specific checks)
echo "Check the logs to verify the program detected the error lines."
# Capture Go program logs for debugging # Capture Go program logs for debugging
ps -p $GO_PID > /dev/null ps -p $GO_PID > /dev/null