Загрузка данных
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/appfarm/infra/k8s/nexus$ git diff -- deploy/files/alerts/nexus-common.rules
diff --cc deploy/files/alerts/nexus-common.rules
index bca9628,988ad1b..0000000
--- a/deploy/files/alerts/nexus-common.rules
+++ b/deploy/files/alerts/nexus-common.rules
@@@ -1,25 -1,195 +1,205 @@@
- name: nexus-common-rules
rules:
- - alert: NexusMemUsageIsCritical
+ - alert: NexusAvailabilityLow
annotations:
- description: "Nexus is using too much memory. Check Nexus"
- summary: "Nexus is using too much memory. Possible system crash."
- expr: sum(container_memory_working_set_bytes{cluster="", namespace="nexus", container="nexus3", image!=""}) by (pod) / 1073741824 >= kube_pod_container_resource_limits{namespace="nexus", resource="memory", container="nexus3"} / 1073741824
+ 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: NexusMemHeapUsageIsCritical
+
+ - alert: NexusIngress4xxHigh
annotations:
++<<<<<<< HEAD
+ description: "Nexus JAVA heap usage is above 90%. Check Nexus"
+ summary: "Nexus JAVA heap usage is too high."
+ 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
++=======
+ 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
++>>>>>>> origin/master
+ 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:
++<<<<<<< HEAD
++ severity: critical
++=======
+ 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: NexusDown
+
+ - 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:
- description: Nexus unavailable for 5 minutes.
- summary: Nexus unavailable for 5 minutes. You need to check the functionality.
- expr: avg(avg_over_time(kube_pod_container_status_ready{namespace="nexus",container="nexus3"}[5m])) < 1
+ 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:
- severity: critical
+ team: sre
+ service: nexus
+ component: cpu
+ environment: production
- severity: warning
++ severity: warning
++>>>>>>> origin/master
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/appfarm/infra/k8s/nexus$ git diff -- deploy/files/alerts/nexus-blackbox-proxy.rules
diff --cc deploy/files/alerts/nexus-blackbox-proxy.rules
index 77d30b7,5cc2edb..0000000
--- a/deploy/files/alerts/nexus-blackbox-proxy.rules
+++ b/deploy/files/alerts/nexus-blackbox-proxy.rules
@@@ -1,89 -1,61 +1,129 @@@
- name: nexus-blackbox-proxy
rules:
- - alert: NexusProxyDown
- expr: probe_success{job="nexus-blackbox-proxy"} == 0
- for: 1m
- labels:
- severity: critical
- component: proxy
- service: blackbox
- annotations:
- summary: "Proxy connection failed for {{`{{ $labels.instance }}`}}"
- description: "Blackbox exporter failed to connect to {{`{{ $labels.instance }}`}} through proxy. The proxy might be down or the target is unreachable."
+ - alert: NexusProxyTargetDown
+ annotations:
+ summary: "Proxy target {{`{{ $labels.instance }}`}} is down."
+ description: "Blackbox probe through Nexus proxy failed for {{`{{ $labels.instance }}`}} for 3 minutes."
+ dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
+ runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
+ expr: probe_success{job="nexus-proxy-targets"} == 0
+ for: 3m
+ labels:
+ team: sre
+ service: nexus
+ component: proxy
+ environment: production
+ severity: critical
- - alert: NexusProxyHighLatency
- expr: probe_duration_seconds{job="nexus-blackbox-proxy"} > 5
- for: 5m
- labels:
- severity: warning
- component: proxy
- service: blackbox
- annotations:
- summary: "High latency detected for {{`{{ $labels.instance }}`}}"
- description: "Proxy request to {{`{{ $labels.instance }}`}} took {{`{{ $value }}`}}s (threshold: 5s). This might indicate network issues or proxy performance problems."
+ - alert: NexusProxyHighLatency
+ annotations:
+ summary: "High Nexus proxy latency for {{`{{ $labels.instance }}`}}."
+ description: "Proxy request to {{`{{ $labels.instance }}`}} has p95 latency above 3 seconds for 5 minutes."
+ dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
+ runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
+ expr: quantile_over_time(0.95, probe_duration_seconds{job="nexus-proxy-targets"}[5m]) > 3
+ for: 5m
+ labels:
+ team: sre
+ service: nexus
+ component: proxy
+ environment: production
+ severity: warning
++<<<<<<< HEAD
+ - alert: NexusProxySSLCertificateExpiringSoon
+ expr: probe_ssl_earliest_cert_expiry{job="nexus-blackbox-proxy"} - time() < 86400 * 30
+ for: 1h
+ labels:
+ severity: warning
+ component: proxy
+ service: blackbox
+ annotations:
+ summary: "SSL certificate expiring soon for {{`{{ $labels.instance }}`}}"
+ description: "SSL certificate for {{`{{ $labels.instance }}`}} will expire in {{`{{ $value | humanizeDuration }}`}}."
+
+ - alert: NexusProxySSLCertificateExpired
+ expr: probe_ssl_earliest_cert_expiry{job="nexus-blackbox-proxy"} - time() < 0
+ for: 1m
+ labels:
+ severity: critical
+ component: proxy
+ service: blackbox
+ annotations:
+ summary: "SSL certificate expired for {{`{{ $labels.instance }}`}}"
+ description: "SSL certificate for {{`{{ $labels.instance }}`}} has expired."
+
+ - alert: NexusProxyHTTP4xxError
+ expr: probe_http_status_code{job="nexus-blackbox-proxy"} >= 400 and probe_http_status_code{job="nexus-blackbox-proxy"} < 500
+ for: 1m
+ labels:
+ severity: warning
+ component: proxy
+ service: blackbox
+ annotations:
+ summary: "HTTP 4xx status for {{`{{ $labels.instance }}`}}"
+ description: "Proxy request to {{`{{ $labels.instance }}`}} returned HTTP 4xx status code {{`{{ $value }}`}}."
+
+ - alert: NexusProxyHTTP5xxError
+ expr: probe_http_status_code{job="nexus-blackbox-proxy"} >= 500 and probe_http_status_code{job="nexus-blackbox-proxy"} < 600
+ for: 1m
+ labels:
+ severity: warning
+ component: proxy
+ service: blackbox
+ annotations:
+ summary: "HTTP 5xx status for {{`{{ $labels.instance }}`}}"
+ description: "Proxy request to {{`{{ $labels.instance }}`}} returned HTTP 5xx status code {{`{{ $value }}`}}."
+
+ - alert: NexusBlackboxExporterDown
+ expr: up{job="nexus-blackbox-exporter",namespace="nexus"} == 0
+ for: 5m
+ labels:
+ severity: critical
+ component: monitoring
+ service: blackbox
+ annotations:
+ summary: "Blackbox exporter is down"
+ description: "Blackbox exporter pod {{`{{ $labels.pod }}`}} in cluster {{`{{ $labels.cluster }}`}} is not responding to scrape requests."
+
+ - alert: NexusProxyMultipleTargetsDown
+ expr: count(probe_success{job="nexus-blackbox-proxy"} == 0) > 2
+ for: 1m
+ labels:
+ severity: critical
+ component: proxy
+ service: blackbox
+ annotations:
+ summary: "Multiple proxy targets are unreachable"
- description: "{{`{{ $value }}`}} targets are currently unreachable through the proxy. This might indicate a proxy outage."
++ description: "{{`{{ $value }}`}} targets are currently unreachable through the proxy. This might indicate a proxy outage."
++=======
+ - alert: NexusProxyCriticalLatency
+ annotations:
+ summary: "Critical Nexus proxy latency for {{`{{ $labels.instance }}`}}."
+ description: "Proxy request to {{`{{ $labels.instance }}`}} has p99 latency above 5 seconds for 3 minutes."
+ dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
+ runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
+ expr: quantile_over_time(0.99, probe_duration_seconds{job="nexus-proxy-targets"}[5m]) > 5
+ for: 3m
+ labels:
+ team: sre
+ service: nexus
+ component: proxy
+ environment: production
+ severity: critical
+
+ - alert: NexusProxyCertExpiringSoon
+ annotations:
+ summary: "SSL certificate expiring soon for {{`{{ $labels.instance }}`}}."
+ description: "SSL certificate for {{`{{ $labels.instance }}`}} will expire in {{`{{ $value | humanizeDuration }}`}}."
+ dashboard_url: "{{ .Values.prometheusRules.params.dashboard_url }}"
+ runbook_url: "{{ .Values.prometheusRules.params.runbook_url }}"
+ expr: probe_ssl_earliest_cert_expiry{job="nexus-proxy-targets"} - time() < 86400 * 30
+ for: 1h
+ labels:
+ team: sre
+ service: nexus
+ component: certificates
+ environment: production
- severity: warning
++ severity: warning
++>>>>>>> origin/master
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/appfarm/infra/k8s/nexus$