Commit graph

32 commits

Author SHA1 Message Date
Luna Mendes
867d7d1e69 elstat.adapters: only log on errors
always logging was giving quite the disk usage on prod.
2018-09-25 18:22:11 -03:00
Luna Mendes
9f5d42c89c add downtime calculation on alerts
- add timestamp on alert embeds
 - make Alert.post receive the worker instead of service info
2018-09-25 18:16:22 -03:00
Luna Mendes
227087284b blueprints.api: use downtime in milliseconds, not seconds
This was giving way too optimistic availability rates.
2018-09-05 21:41:33 -03:00
Luna Mendes
93630f64ef adapters: change "error not found" to "packet lost" 2018-09-05 21:23:58 -03:00
Luna Mendes
5428dcee3c change uptimes to daily, weekly and monthly
- /api/current_status renamed to /api/quick
 - add week_uptime and month_uptime to responses
2018-09-05 21:17:26 -03:00
Luna Mendes
e14720a8c8 remove print debug 2018-09-03 22:40:47 -03:00
Luna Mendes
3437bd2b72 Add better error messages
- Add status.json with HTTP status code table
 - Add error fetching on PingAdapter
 - Give warning on no alerts set
2018-09-03 22:39:41 -03:00
Luna Mendes
7a2f9a95c7 add alerts
- worker: change Adapter._construct to receive an extra arg
 - worker: hardcode a bad result and write it off on workloop fail
2018-08-30 22:22:02 -03:00
Luna Mendes
3dd37c0bf1 small logging changes 2018-08-08 19:37:57 -03:00
Luna Mendes
d36d3d7449 blueprints.api: quickfix 2018-08-08 17:37:36 -03:00
Luna Mendes
86c99c8fee blueprints.api: add calc_uptime, uptime field on api 2018-08-08 17:30:51 -03:00
Luna Mendes
93de3dfda0 worker: remove unecessary log call 2018-08-08 16:55:30 -03:00
Luna Mendes
6c94b50ba0 incidents: fix bug 2018-07-19 18:42:34 -03:00
a44574249a
backend: INC_UPDATE -> INCIDENT_UPDATE 2018-07-18 15:06:31 -07:00
d842ebfccb
give c field when publishing incident 2018-07-18 12:47:07 -07:00
cea693102f
PUT /api/incidents -> POST /api/incidents 2018-07-18 12:46:58 -07:00
11df05b998
unnest /api/incidents/current 2018-07-18 12:40:39 -07:00
194129a5f2
/api/incident -> /api/incidents
for consistency
2018-07-18 12:39:43 -07:00
Luna Mendes
4407fbd6df docs/streaming: add incident op codes and payloads 2018-07-18 05:01:32 -03:00
Luna Mendes
9c2dbeaf59 incidents: add rest of basic API
- change all ISO timestamp strings to unix timestamps
 - add patch_incident and new_stage

 - streaming: remove INC_UPDATE_STAGE
 - manager: change primary key on instance_stages table

This requires a table change across all elstat instances, since
we changed the primary key on instance_stages.
2018-07-18 04:28:22 -03:00
Luna Mendes
dcadfd4c76 blueprints.incidents: add api base
- add getting a single incident, getting multiple (with pages), and
 creating an incident

 - blueprints.streaming: add incident related OP codes
 - consts: add IncidentType
 - manager: add incidents channel, add publish_incident
 - elstat: add snowflake.py
2018-07-17 22:59:11 -03:00
Luna Mendes
e3a3e1b77b
worker: publish new status upon worker crash 2018-07-14 22:30:29 -03:00
Luna Mendes
83b2d88311
change adapter response type to dict
this simplifies a lot of code since tuples are immutable.

 - adapters: add Adapter._construct
 - worker: set status state to False on worker crash
2018-07-14 22:27:06 -03:00
Luna Mendes
ecf6234cfe elstat.adapters: add latency to db spec
Since this is a change to the table schema for all services using the
ping adapter, you will have to delete the tables relating to them.

 - elstat.blueprints: add incidents blueprint (WIP)
 - elstat.blueprints: add decorators.py
 - elstat.blueprints: add errors.py
 - elstat.manager: add incidents & incident_stages tables
 - run: add handler for ApiError
2018-07-13 23:20:09 -03:00
Luna Mendes
31a0f2b989
Add streaming API documentation
- streaming: add sub/unsub OP codes, changing from the old behavior of
    just giving a channels array.
 - streaming: properly check payloads against their data and send
    proper errors.

 - manager: add unsubscribe()
2018-07-11 18:23:47 -03:00
Luna Mendes
3fa27f5de6
move blueprints inside elstat folder
- add OP.DATA
 - manager: add _websockets map
 - manager: add basic publish logic
 - worker: add timestamps to published messages
2018-07-11 17:00:39 -03:00
Luna Mendes
3ec64d5bdd
worker: add basic _dispatch_work logic 2018-07-11 03:42:31 -03:00
Luna Mendes
7e6d9d5402
add channel creation
dynamically create channels by adapter's specs.

 - add cleanup tasks for ServiceManager and ServiceWorker
2018-07-11 02:48:00 -03:00
Luna Mendes
053762f69f
blueprints: add streaming blueprint
clients can connect and subscribe to different channels
and they will get messages from those channels (basic pub/sub)

this is useful in the case of a client wanting issue updates
in real time, which is better than the client having to poll
/api/status every now and then.

 - manager: add ServiceManager.subscribe and .unsub_all
2018-07-10 20:03:07 -03:00
Luna Mendes
d92c09772e
add public api
- generalize elixire adapter into http adapter
 - fix ping adapter not sending a tuple
 - add ServiceWorker.process_work to insert results into the database
2018-07-09 02:48:44 -03:00
Luna Mendes
359c62efd6 Add proper adapter implementations
also add table making for the db
2018-07-08 00:38:14 -03:00
Luna Mendes
9ed1ec60cf add ServiceManager & ServiceWorker 2018-07-07 20:51:43 -03:00