Comments (11)
I wouldn't cover that for now, tbh
from osko.
I think it would make sense to convert a semantic severity to the Opsgenie or PagerDuty representation of the severity. E.g. always define it in critical
, high
, low
etc. You could then map critical
to SEV-1
for PagerDuty and P1
for OpsGenie
from osko.
That's an interesting idea, although I'm a bit worried about keeping OSKO up to date with all available providers and their severity levels.
To make it more clear for an outside perspective - we are trying to implement the multi-window, multi-burn-rate alerting here in an automatic fashion based on an existing SLO. In theory (and in our practice) having this as a config option would be good enough, but other usecases might differ.
from osko.
I would use the defaults as critical
, high-fast
, high-slow
, low
, and no_slo
. This is taken from the SRE book from the alerting chapter. They are using it to sort the SLOs, but we can also use it as a default severities.
from osko.
Do we think we'll ever need to use more than one alerting tool at a time? 🤔
from osko.
The defaults are one thing, but how to configure these is a whole other thing that I think is the bigger issue here 🤔
Regarding your question, that's really hard to say. I would focus on supporting one at a time for now. If we can stay backwards compatible with supporting one, setting the various severities in the config, for example, we can always add an option of multiple ones down the line.
from osko.
something like this?
type AlertSeverities struct {
Critical string
HighFast string
HighSlow string
Low string
NoSlo string
}
alertingTools := []AlertingTool{
{
Name: "opsgenie",
SeverityMap: map[string]string{
"critical": "P1",
"high-fast": "P2",
"high-slow": "P3",
"low": "P4",
"no-slo": "P5",
},
},
{
Name: "pagerduty",
SeverityMap: map[string]string{
"critical": "SEV-1",
"high-fast": "SEV-2",
"high-slow": "SEV-3",
"low": "SEV-4",
"no-slo": "SEV-5",
},
},
}
from osko.
Eh, I mean I guess we could do that :) Alternatively, we could just set this in the internal/config/config.go
from osko.
Yes, I copy-pasted it from that file :D
from osko.
Yeah, makes sense. Just not sure if we want to map these out directly.
Alternatively, we could have some "custom" type for those not using either of the ones we support (like opsgenie and pagerduty from the above example)
from osko.
we can allow configuring it through the env vars, but it would not cover the cases where there is a need for multiple alerting tools for one triggered alert.
from osko.
Related Issues (20)
- Make sure MimirRuleGroup is deleted on SLO object deletion HOT 1
- Check if dependency Mermaid graph is up-to-date
- Helm: Install prometheus-crds (monitoring.coreos.com) as subcharts
- Decouple the development environment from Heureka infrastructure
- Orphaned MimirRule crashes the operator HOT 1
- Changes in SLO don't trigger PrometheusRule reconcile
- Enhance queries only if metricSource type is Prometheus HOT 2
- Use metricSourceRef instead of osko.dev/datasourceRef label HOT 1
- SLO doesn't work if applied together with a datasource
- Reconcile dependents on Datasource change
- Separate PrometheusRules into multiple rule groups
- Support Cortex
- Default to bad in SLI measurement calculation HOT 1
- Implement OSKO configuration options
- Automaticaly generate Alerting PrometheusRule based on SRE definition HOT 1
- Forward SLO labels to APR labels
- Figure out how to configure embedded Alertmanagers using OSKO HOT 1
- Create useful manifests examples for development environment
- Use semantic-releaser to be more emotionless
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 osko.