Comments (1)
I've been thinking about this...
There are two competing priorities:
- Multiple daemons are needed on various hosts for redundancy. You don't want your one internet link to fail and prevent all notifications about the failure from being sent.
- State isn't distributed to keep things simple.
But that leads to state being distributed and it's annoyingly difficult to determine what, if anything is down. You need to query each daemon for its state, or wait for a renotify
gate to open.
So I've been thinking about a way to redistribute the state of many daemons for presentation. It probably doesn't need to be a super-reliable path but if it were, hanging notifications off that would have great delivery guarantees.
The state needs to go to a database which something else will present. Some options I've been considering are:
- statsd -> something (probably custom) -> db
- OpenTelemetry -> many options
- HTTP API -> db
- NATS -> something -> db
I'm thinking OpenTelemetry is the best option. It opens up a lot of possibilities. I think I'll experiment with fz -> OTLP -> OTel Collector -> Clickhouse -> Metabase.
Also, I hope it goes without saying that using OTel is completely optional. It would make larger deployments manageable, but it certainly has an associated complexity cost.
from flamingzombies.
Related Issues (20)
- Tasks need to include data in the notifications HOT 1
- add task to check the age of the file HOT 1
- Consider when to reset `LastResultOutput`
- Add a deadline to fzctl HOT 1
- Add more example configuration files. HOT 1
- task to check that filesystem is mounted HOT 1
- Add grace to the timeouts HOT 1
- email notifier content HOT 1
- task to check that directory contains new files
- installation instructions for alpine linux HOT 1
- installation instructions for debian
- Support configurable `from` address for the email notifier.
- Run as an unprivileged user
- Allow querying the notifier details with fzctl
- Add a directory of example configurations
- Order the lists in the man pages HOT 1
- Configurable `deadline_grace` and docs
- Consider chaning the transport between fz and fzctl to HTTP.
- Support muting tasks.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flamingzombies.