Prometheus + Grafana testbed I used to develop the Open Code Quest leaderboard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
9.8 KiB

kind: ConfigMap
apiVersion: v1
metadata:
name: thanos-ruler-custom-rules
namespace: open-cluster-management-observability
data:
custom_rules.yaml: |
groups:
- name: opencodequest
rules:
- record: opencodequest_fights_total:dev
expr: clamp_max(sum(label_replace(fights_total{namespace=~"[a-zA-Z0-9]+-workshop-dev"}, "user", "$1", "namespace", "([a-zA-Z0-9]+)-workshop-dev")) by (user, cluster), 1) or clamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster), 0, 0)
- record: opencodequest_fights_total:preprod
expr: clamp_max(sum(label_replace(fights_total{namespace=~"[a-zA-Z0-9]+-workshop-preprod"}, "user", "$1", "namespace", "([a-zA-Z0-9]+)-workshop-preprod")) by (user, cluster), 1) or clamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster), 0, 0)
- record: opencodequest_fights_total:prod
expr: clamp_max(sum(label_replace(fights_total{namespace=~"[a-zA-Z0-9]+-workshop-prod"}, "user", "$1", "namespace", "([a-zA-Z0-9]+)-workshop-prod")) by (user, cluster), 1) or clamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster), 0, 0)
- record: opencodequest_leaderboard_hero:dev
expr: max((opencodequest_hero_quarkus_pod:dev + opencodequest_hero_db_pod:dev + opencodequest_hero_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_villain:dev
expr: max((opencodequest_villain_quarkus_pod:dev + opencodequest_villain_db_pod:dev + opencodequest_villain_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_fight:dev
expr: max((opencodequest_fight_quarkus_pod:dev + opencodequest_fight_pipeline) == bool 2) by (user, cluster)
- record: opencodequest_leaderboard_hero:preprod
expr: max((opencodequest_hero_quarkus_pod:preprod + opencodequest_hero_db_pod:preprod + opencodequest_hero_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_villain:preprod
expr: max((opencodequest_villain_quarkus_pod:preprod + opencodequest_villain_db_pod:preprod + opencodequest_villain_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_fight:preprod
expr: max((opencodequest_fight_quarkus_pod:preprod + opencodequest_fight_pipeline) == bool 2) by (user, cluster)
- record: opencodequest_leaderboard_hero:prod
expr: max((opencodequest_hero_quarkus_pod:prod + opencodequest_hero_db_pod:prod + opencodequest_hero_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_villain:prod
expr: max((opencodequest_villain_quarkus_pod:prod + opencodequest_villain_db_pod:prod + opencodequest_villain_pipeline) == bool 3) by (user, cluster)
- record: opencodequest_leaderboard_fight:prod
expr: max((opencodequest_fight_quarkus_pod:prod + opencodequest_fight_pipeline) == bool 2) by (user, cluster)
- name: opencodequest_step1
rules:
- record: opencodequest_leaderboard_hero_onetime_bonus:dev
expr: |
(increase(opencodequest_leaderboard_hero:dev[2m]) >= bool 0.5)
*
(
55
+
(
(1728047700 + 55 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_villain_onetime_bonus:dev
expr: |
(increase(opencodequest_leaderboard_villain:dev[2m]) >= bool 0.5)
*
(
25
+
(
(1728047700 + 85 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_fight_onetime_bonus:dev
expr: |
(increase(opencodequest_leaderboard_fight:dev[2m]) >= bool 0.5)
*
(
29
+
(
(1728047700 + 130 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_hero_onetime_bonus:preprod
expr: |
(increase(opencodequest_leaderboard_hero:preprod[2m]) >= bool 0.5)
*
(
55
+
(
(1728047700 + 55 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_villain_onetime_bonus:preprod
expr: |
(increase(opencodequest_leaderboard_villain:preprod[2m]) >= bool 0.5)
*
(
25
+
(
(1728047700 + 85 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_fight_onetime_bonus:preprod
expr: |
(increase(opencodequest_leaderboard_fight:preprod[2m]) >= bool 0.5)
*
(
29
+
(
(1728047700 + 130 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_hero_onetime_bonus:prod
expr: |
(increase(opencodequest_leaderboard_hero:prod[2m]) >= bool 0.5)
*
(
55
+
(
(1728047700 + 55 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_villain_onetime_bonus:prod
expr: |
(increase(opencodequest_leaderboard_villain:prod[2m]) >= bool 0.5)
*
(
25
+
(
(1728047700 + 85 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- record: opencodequest_leaderboard_fight_onetime_bonus:prod
expr: |
(increase(opencodequest_leaderboard_fight:prod[2m]) >= bool 0.5)
*
(
29
+
(
(1728047700 + 130 * 60)
-
timestamp(sum(label_replace(kube_namespace_status_phase{namespace=~".*-workshop-(dev|preprod|prod)",phase="Active"}, "user", "$1", "namespace", "(.*)-workshop-(dev|preprod|prod)")) by (user, cluster))
) / (5 * 60)
)
- name: opencodequest_step2
rules:
- record: opencodequest_leaderboard_hero_lifetime_bonus:dev
expr: |
sum_over_time(opencodequest_leaderboard_hero_onetime_bonus:dev[1d])
- record: opencodequest_leaderboard_villain_lifetime_bonus:dev
expr: |
sum_over_time(opencodequest_leaderboard_villain_onetime_bonus:dev[1d])
- record: opencodequest_leaderboard_fight_lifetime_bonus:dev
expr: |
sum_over_time(opencodequest_leaderboard_fight_onetime_bonus:dev[1d])
- record: opencodequest_leaderboard_hero_lifetime_bonus:preprod
expr: |
sum_over_time(opencodequest_leaderboard_hero_onetime_bonus:preprod[1d])
- record: opencodequest_leaderboard_villain_lifetime_bonus:preprod
expr: |
sum_over_time(opencodequest_leaderboard_villain_onetime_bonus:preprod[1d])
- record: opencodequest_leaderboard_fight_lifetime_bonus:preprod
expr: |
sum_over_time(opencodequest_leaderboard_fight_onetime_bonus:preprod[1d])
- record: opencodequest_leaderboard_hero_lifetime_bonus:prod
expr: |
sum_over_time(opencodequest_leaderboard_hero_onetime_bonus:prod[1d])
- record: opencodequest_leaderboard_villain_lifetime_bonus:prod
expr: |
sum_over_time(opencodequest_leaderboard_villain_onetime_bonus:prod[1d])
- record: opencodequest_leaderboard_fight_lifetime_bonus:prod
expr: |
sum_over_time(opencodequest_leaderboard_fight_onetime_bonus:prod[1d])