Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 1.67 KB

README.md

File metadata and controls

50 lines (38 loc) · 1.67 KB

Hold My Backup

It is a backup tool that creates backups and stores them on an object storage. By default it uses minio but you can use AWS: S3 as well.

Purpose

It is actually a pet project for understanding core concepts of cloud native applications. I don't have any practicle use case for this app, but one can use this for manage their backups I guess. PR's are welcomed.

Showcase

Here's how it looks:

  • Create Backup: Creating Backup

  • Changing log level Changing Log Level

Note that you can use something like this as well: '{"filter": "trace,reload_config=trace,hyper=info,mio=info,serde_xml_rs=info"}' because what we actually modify is the EnvFilter.

My favourite filter

'{"filter":"trace,reload_config=trace,hyper=error,mio=error,h2=error,tonic=error,serde_xml_rs=error"}'
  • Listing available backups Listing Existing Backups

  • Auto reload config file Load Config

TODO:

  • Reload config without restarting the service.
  • Abstract Object Storage implementation
    • Should support atleast AWS: S3 and Minio
      • minio
      • [] AWS: S3
  • Dynamically change log type
    • Change log level to one of the available log levels anytime through HTTP PUT request
    • Available log levels: trace, debug, info, war, error
  • Backup strategy
    • Remove old [ Keep last N backups ]
    • Don't touch
  • Folder based backups. (like tar -czvf folder/)
  • Export tracing logs using OTeL format.
    • Jeager / ZipKin
  • Create instance metrics and export them as well.
    • Prometheus?
    • Implement RED