Releases: clemcer/loggifly
v1.3.2
v1.3.1
v1.3.0
This release introduces powerful Log filtering options, Swarm support, and better customization.
New Features
- Docker Swarm Support (experimental) (#14)
- LoggiFly now supports monitoring containers from Docker Swarm services.
It is still marked as experimental because I dont have much experience with docker swarm
and can not say for certain whether it works flawlessly.
(Details & Examples in the README)
- LoggiFly now supports monitoring containers from Docker Swarm services.
- Advanced Log Filtering & Templates
- You can now extract values from log lines and only display the relevant parts in your notification by using templates using either a
json_template
for structured (JSON) logs or named capturing groups in your regular expression +template
for plain text log entries (here are more details.) - Screenshots using templates
- You can now extract values from log lines and only display the relevant parts in your notification by using templates using either a
- Custom Notification Titles
- Define your own
notification_title
using{container}
and{keywords}
variables.
- Define your own
- Webhook Integration
- Send structured JSON data to your own endpoints for integration into 8000 custom workflows.
- Cleaner Titles when regex pattern was found
- Use
hide_pattern_in_title: true
with your Regex Pattern to hide complex regex from titles and improve readability.
- Use
- Disable Container Start Notifications
- Set
DISABLE_CONTAINER_EVENT_MESSAGE=true
ordisable_container_event_mesage: true
(config.yaml) to skip messages when a container starts being monitored. (#19)
- Set
Other Changes
- Simplified Notifications on config reload
- On config reload, only one summary message is sent for all monitored and inactive containers.
- Fix: config.yaml and environment variables for notification services and values would not merge correctly.
- Fix: container not found error when containers stop
New Configuration Options
Environment Variables:
LOGGIFLY_MODE
DISABLE_CONTAINER_EVENT_MESSAGE
config.yaml:
swarm_services
notification_title
hide_pattern_in_title
disable_container_event_mesage
Full Changelog: 1.2.1...1.3.0
1.2.1
- Fix: Monitoring attempts for Docker clients that couldnβt be reached at startup
- Change: Lower timeout for Docker client connection attempts
Full Changelog: v1.1.1...1.2.1
1.2.0
In this release I added support for multiple Docker hosts and arm64, implemented a reconnection mechanism for dropped connections and made some more improvements and refactorings.
Changes:
- Added: Support for multiple remote Docker hosts (#4)
- You can assign each host a label to help distinguish them in both notifications and logging.
- Added multi-arch support: images now include amd64 and arm64 (#18)
- Improved: Exception handling when connection drops
- If too many errors occur and a Docker host becomes unreachable, the processes associated with that host are now stopped more cleanly.
- Added: Reconnection mechanism
- If the connection to a Docker host is lost, LoggiFly will now attempt to reconnect every 60 seconds
- Updated README
- added a donation link :)
v1.1.1
This is a minor release with little improvements, fixes and now an official recommendation to use a socket proxy (thanks to @FoxxMD for nudging me into that direction).
Config Path Update (Not Breaking)
One noteworthy change is the default location of the config.yaml
. While the old path /app/config.yaml
still works, the new official path is now /config/config.yaml
.
LoggiFly will first look in /config/config.yaml
, and fall back to /app/config.yaml
if it's not found.
This has been done because:
- it is more user friendly to mount to a folder and place the config file there instead of mounting the file directly since docker will create a directory for
config.yaml
if the file does not exist. - mounting
/app
is not really a good idea since the python files live there - When
/config
is mounted, a config template will now automatically be downloaded into that folder to simplify the setup process
Changes
- improved logging
- better exception handling
- Added: Socket Proxy section in README
- improved merging of environment variables and yaml config
- New (additional) config location:
/config/config.yaml
, with auto-download of template if missing
v1.1.0
π v1.1.0
Inspired by the (really unexpected) amount of attention my little program got, I refactored much of the code, improved a lot of the existing logic and mechanisms, fixed lots of bugs and added one new feature.
Changed Variables:
disable_restart
βreload_config
(env:DISABLE_RESTART
βRELOAD_CONFIG
)
Previously, if you wanted to disable restarting the whole container on changes in the config.yaml you had to setdisable_restart
to True. Now the config reload is no longer done via a restart and happens while the program is running. If you still want to disable it again you have to setreload_config
to False.disable_restart_message
βdisable_config_reload_message
(env:DISABLE_RESTART_MESSAGE
βDISABLE_CONFIG_RELOAD_MESSAGE
)
New variables:
action_keywords
(config.yaml only)action_cooldown
(_env_: ACTION_COOLDOWN
)
See New Feature.
New Feature:
- Keyword-triggered stops/restarts (#12)
Addaction_keywords
to your config.yaml and specifystop:
orrestart:
before every keyword (see README for more details).
Other major improvements:
- Cleaner and faster shutdown
- Reloading the config is now much smoother and done while the program is running, rather than being done by restarting the whole container. This causes the reload to be almost instantaneously.
- Better Docker socket proxy support (#10) (still unofficial)
When using a socket proxy the log stream connection drops every ~10 minutes. I wasn't able to fix the actual reason for the disconnects but I implemented a reconnect mechanism. Although it seems to work fine I am still not 100% sure that there are no remaining bugs when using a proxy so using one is not officially recommended (yet).
Fixes and small improvements::
- Fix: Empty config file error (#11)
- improved logging
- improved error handling on config load
... lots of other fixes and improvements (too much code refactoring and little changes to list or remember every little thing)
Next up:
- remote hosts
- docker swarm support
The next bigger update might take a while but if anybody can't wait for remote hosts or docker swarm support contributions are welcome!
Full Changelog: v1.0.2...v1.1.0
v1.0.3
v1.0.2
What's Changed
- Fixed #5: Notifications with regex patterns not working because of pydantic misconfiguration
- docs: update README.md by @eltociear in #6
- Update README.md by @bartokwiat in #7
New Contributors
- @eltociear made their first contribution in #6
- @bartokwiat made their first contribution in #7
Full Changelog: v1.0.1...v1.0.2