Skip to content

arimatakao/events-handler

Repository files navigation

Events handler

Event Handler is a Go-based service for tracking user activity events. It stores events in PostgreSQL, exposes Prometheus metrics, and supports visualization with Grafana. A simple React client allows creating and viewing events.

Details here: TASK.md

Features

  • REST API for events
  • React client
  • PostgreSQL
  • Configurable event aggregation

Postman collection ./other/Events handler.json

Run Instructions

config.yaml - already contains the correct parameters for run it in docker; do not change it for proper work.

localhost:8080 - backend

localhost:3001 - frontend (react client)

localhost:8081 - postgres web ui (username: user@domain.com password: password)

address: db
port: 5432
database: events
username: user
password: password

localhost:3000 - grafana (username: admin password: admin)

http://prometheus:9090

Configuration parameters

app:
  port: 8080 # backend port
  base_path: "/api" # base path for api call
  db_url: "postgresql://user:password@db/events?sslmode=disable" # PostgreSQL connection url
  aggregation_interval_seconds: "30" # Aggregation interval in seconds. If you wanna 4 hours, set 14400

Docker

  1. Specify parameters in config.yaml (it is already set);

  2. Run docker compose:

docker compose up -d

Native

  1. Run database:
docker compose -f ./docker-compose-db.yaml up -d
  1. Specify parameters in config.yaml:
app:
  port: 8080
  base_path: "/api"
  db_url: "postgresql://user:password@localhost/events?sslmode=disable"
  aggregation_interval_seconds: "30"
  1. Run backend:
make run
  1. Run react client:
cd ./other/reactclient
PORT=3001 npm start

About

Simple events handler

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published