Загрузка данных


- name: nexus-common-rules
  rules:
  - alert: NexusAvailabilityLow
    annotations:
      summary: "Nexus availability is low."
      description: "Nexus pod readiness is below 95% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: avg(avg_over_time(kube_pod_container_status_ready{namespace="nexus",container="nexus3"}[5m])) < 0.95
    for: 3m
    labels:
      team: sre
      service: nexus
      component: availability
      environment: production
      severity: critical

  - alert: NexusIngress4xxHigh
    annotations:
      summary: "Nexus 4xx error ratio is high."
      description: "Nexus 4xx ratio is above 2% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        /
      (
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_2xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
      ) > 0.02
    for: 3m
    labels:
      team: sre
      service: nexus
      component: ingress
      environment: production
      severity: warning

  - alert: NexusIngress4xxCritical
    annotations:
      summary: "Nexus 4xx error ratio is critical."
      description: "Nexus 4xx ratio is above 5% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        /
      (
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_2xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
      ) > 0.05
    for: 3m
    labels:
      team: sre
      service: nexus
      component: ingress
      environment: production
      severity: critical

  - alert: NexusIngress5xxHigh
    annotations:
      summary: "Nexus 5xx error ratio is high."
      description: "Nexus 5xx ratio is above 2% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
        /
      (
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_2xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
      ) > 0.02
    for: 3m
    labels:
      team: sre
      service: nexus
      component: ingress
      environment: production
      severity: warning

  - alert: NexusIngress5xxCritical
    annotations:
      summary: "Nexus 5xx error ratio is critical."
      description: "Nexus 5xx ratio is above 5% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
        /
      (
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_2xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_4xx_responses_total{namespace="nexus"}[10m]))
        +
        sum(rate(org_eclipse_jetty_webapp_WebAppContext_5xx_responses_total{namespace="nexus"}[10m]))
      ) > 0.05
    for: 3m
    labels:
      team: sre
      service: nexus
      component: ingress
      environment: production
      severity: critical

  - alert: NexusRegistryLatencyHigh
    annotations:
      summary: "Nexus repository read latency is high."
      description: "Nexus repository read p99 latency is above 3 seconds for 5 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: org_sonatype_nexus_coreui_RepositoryComponent_read_timer{quantile="0.99",namespace="nexus"} > 3
    for: 5m
    labels:
      team: sre
      service: nexus
      component: registry
      environment: production
      severity: warning

  - alert: NexusRegistryLatencyCritical
    annotations:
      summary: "Nexus repository read latency is critical."
      description: "Nexus repository read p99 latency is above 5 seconds for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: org_sonatype_nexus_coreui_RepositoryComponent_read_timer{quantile="0.99",namespace="nexus"} > 5
    for: 3m
    labels:
      team: sre
      service: nexus
      component: registry
      environment: production
      severity: critical

  - alert: NexusBlobstoreUnavailable
    annotations:
      summary: "Nexus blobstore is unavailable."
      description: "Nexus default blobstore has no available space."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: nexus_blobstores_stats_availableSpaceInBytes{namespace="nexus", name="default"} == 0
    for: 1m
    labels:
      team: sre
      service: nexus
      component: blobstore
      environment: production
      severity: critical

  - alert: NexusJvmHeapHigh
    annotations:
      summary: "Nexus JVM heap usage is high."
      description: "Nexus JVM heap usage is above 90% for 3 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      sum(jvm_memory_heap_used{namespace="nexus", container="nexus3"}) by(pod)
        /
      sum(jvm_memory_heap_max{namespace="nexus", container="nexus3"}) by(pod)
        > 0.9
    for: 3m
    labels:
      team: sre
      service: nexus
      component: jvm
      environment: production
      severity: critical

  - alert: NexusCpuThrottlingHigh
    annotations:
      summary: "Nexus CPU throttling is high."
      description: "Nexus CPU throttling ratio is above 20% for 5 minutes."
      dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
      runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
    expr: |-
      rate(container_cpu_cfs_throttled_periods_total{namespace="nexus",container="nexus3"}[5m])
        /
      rate(container_cpu_cfs_periods_total{namespace="nexus",container="nexus3"}[5m])
        > 0.2
    for: 5m
    labels:
      team: sre
      service: nexus
      component: cpu
      environment: production
      severity: warning