Comments (3)
First step is to detect when the API is disrupted. To do this it's possible to compare number of disrupted facilities and look for spikes. If first there are about 180 and suddenly there are 2200 disruptions it's a downtime. Similarly when it decreases to 0 from 180.
Once a disruption is detected, monitoring must continue until the disruption is resolved (disruptions are "around" 180 again). In this phase all events are filtered out and kept inside the monitor for later reference.
Then the last known good state and the current state must be compared. Occurred events will then be released based on the model below. It's currently not intended to generate new events on the fly so the actual ones that have been emitted must be used. If that is impossible, I need to re-think some parts.
MonitorP must implement the original idea from #4 :
<--->
defines the time range in which the API is known to be disrupted.
|-------------------------|
|------------------------>| Case 1: Monitoring dis. only
|------------<----------->| Case 2: Disruption before, resolved after
|-----<------>------------| Case 3: Disruption before and after
|------------>------------| Case 4: Disrupted after
-> monitoring dis only = ignore
-> Case 2 -> we don't know when it really ended; have to include
from elescore.
To do this it's possible to compare number of disrupted facilities and look for spikes.
Easier said than done. The 1.5 x IQR rule turned out to be good enough.
Next up: Compensating actions.
from elescore.
Turned out that was quite easy using the already existing disruption monitor.
from elescore.
Related Issues (16)
- Wrong formatting of orange disruptions count indicator HOT 2
- Station cache explodes HOT 1
- Introduce grade "n/a" for facilities that do not support remote monitoring HOT 1
- Intelligently filter out "monitoring disrupted" times HOT 2
- Integrate BOGESTRA
- Disruption Notifications
- Projection for 125k events takes 12 seconds HOT 2
- Projections in pipeline are lazily evaluated. HOT 3
- Disruption "heat map"
- Persisted projections
- Avoid using IORefs in general and specifically in projection pipes HOT 1
- The all new Elescore client
- No CSP HOT 1
- Add proper logging
- Add retry strategy for IO
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 elescore.