mirror of
https://github.com/k8s-at-home/charts.git
synced 2025-02-03 07:49:03 +00:00
[network-ups-tools] metrics refactor (#1178)
* [network-ups-tools] metrics refactor * add template to rules * Update charts/stable/network-ups-tools/templates/prometheusrules.yaml Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com> * Update charts/stable/network-ups-tools/templates/prometheusrules.yaml Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com> * Update charts/stable/network-ups-tools/templates/prometheusrules.yaml Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com> * Update charts/stable/network-ups-tools/templates/prometheusrules.yaml Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com> Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com>
This commit is contained in:
parent
2b17c7d750
commit
7c73a02205
@ -2,7 +2,7 @@ apiVersion: v2
|
|||||||
appVersion: v2.7.4-2479-g86a32237
|
appVersion: v2.7.4-2479-g86a32237
|
||||||
description: Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware.
|
description: Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware.
|
||||||
name: network-ups-tools
|
name: network-ups-tools
|
||||||
version: 5.1.0
|
version: 6.0.0
|
||||||
kubeVersion: ">=1.16.0-0"
|
kubeVersion: ">=1.16.0-0"
|
||||||
keywords:
|
keywords:
|
||||||
- nut
|
- nut
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# network-ups-tools
|
# network-ups-tools
|
||||||
|
|
||||||
![Version: 5.1.0](https://img.shields.io/badge/Version-5.1.0-informational?style=flat-square) ![AppVersion: v2.7.4-2479-g86a32237](https://img.shields.io/badge/AppVersion-v2.7.4--2479--g86a32237-informational?style=flat-square)
|
![Version: 6.0.0](https://img.shields.io/badge/Version-6.0.0-informational?style=flat-square) ![AppVersion: v2.7.4-2479-g86a32237](https://img.shields.io/badge/AppVersion-v2.7.4--2479--g86a32237-informational?style=flat-square)
|
||||||
|
|
||||||
Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware.
|
Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware.
|
||||||
|
|
||||||
@ -79,19 +79,21 @@ N/A
|
|||||||
| config.mode | string | `"values"` | If set to 'values', the configuration will be read from these values. Otherwise you have to mount a volume to /etc/nut containing the configuration files. |
|
| config.mode | string | `"values"` | If set to 'values', the configuration will be read from these values. Otherwise you have to mount a volume to /etc/nut containing the configuration files. |
|
||||||
| env | object | See below | environment variables. |
|
| env | object | See below | environment variables. |
|
||||||
| env.TZ | string | `"UTC"` | Set the container timezone |
|
| env.TZ | string | `"UTC"` | Set the container timezone |
|
||||||
| exporter.enabled | bool | See values.yaml | Enable and configure prometheus-nut-exporter sidecar and Prometheus serviceMonitor. |
|
|
||||||
| exporter.env.logLevel | string | `"info"` | log level [info|debug|trace] |
|
|
||||||
| exporter.env.port | int | `9995` | metrics port |
|
|
||||||
| exporter.image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
|
||||||
| exporter.image.repository | string | `"hon95/prometheus-nut-exporter"` | image repository |
|
|
||||||
| exporter.image.tag | string | `"1.1.1"` | image tag |
|
|
||||||
| exporter.serviceMonitor.interval | string | `"30s"` | |
|
|
||||||
| exporter.serviceMonitor.labels | object | `{}` | |
|
|
||||||
| exporter.serviceMonitor.scrapeTimeout | string | `"10s"` | |
|
|
||||||
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
||||||
| image.repository | string | `"ghcr.io/k8s-at-home/network-ups-tools"` | image repository |
|
| image.repository | string | `"ghcr.io/k8s-at-home/network-ups-tools"` | image repository |
|
||||||
| image.tag | string | `"v2.7.4-2479-g86a32237"` | image tag |
|
| image.tag | string | `"v2.7.4-2479-g86a32237"` | image tag |
|
||||||
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
|
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
|
||||||
|
| metrics.enabled | bool | See values.yaml | Enable and configure prometheus-nut-exporter sidecar and Prometheus serviceMonitor. |
|
||||||
|
| metrics.exporter.env.logLevel | string | `"info"` | log level [info|debug|trace] |
|
||||||
|
| metrics.exporter.env.port | int | `9995` | metrics port |
|
||||||
|
| metrics.exporter.image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
||||||
|
| metrics.exporter.image.repository | string | `"hon95/prometheus-nut-exporter"` | image repository |
|
||||||
|
| metrics.exporter.image.tag | string | `"1.1.1"` | image tag |
|
||||||
|
| metrics.prometheusRule | object | See values.yaml | Enable and configure Prometheus Rules for the chart under this key. |
|
||||||
|
| metrics.prometheusRule.rules | list | See prometheusrules.yaml | Configure additionial rules for the chart under this key. |
|
||||||
|
| metrics.serviceMonitor.interval | string | `"30s"` | |
|
||||||
|
| metrics.serviceMonitor.labels | object | `{}` | |
|
||||||
|
| metrics.serviceMonitor.scrapeTimeout | string | `"10s"` | |
|
||||||
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
|
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
|
||||||
| persistence.ups.hostPath | string | `"/dev/bus/usb/001/001"` | The path of the usb ups on the host. |
|
| persistence.ups.hostPath | string | `"/dev/bus/usb/001/001"` | The path of the usb ups on the host. |
|
||||||
| persistence.ups.mountPath | string | `"/dev/bus/usb/001/001"` | Optional path for ups to mount in the container. |
|
| persistence.ups.mountPath | string | `"/dev/bus/usb/001/001"` | Optional path for ups to mount in the container. |
|
||||||
@ -104,6 +106,12 @@ All notable changes to this application Helm chart will be documented in this fi
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
### [6.0.0]
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- **BREAKING**: Refactored Prometheus metrics section to add rules. Enabling metrics automatically enables the serviceMonitor and exporter sidecar.
|
||||||
|
|
||||||
### [5.1.0]
|
### [5.1.0]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@ -131,6 +139,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
|
|
||||||
- Initial version
|
- Initial version
|
||||||
|
|
||||||
|
[6.0.0]: #600
|
||||||
[5.1.0]: #510
|
[5.1.0]: #510
|
||||||
[5.0.0]: #500
|
[5.0.0]: #500
|
||||||
[4.0.0]: #400
|
[4.0.0]: #400
|
||||||
|
@ -9,6 +9,12 @@ All notable changes to this application Helm chart will be documented in this fi
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
### [6.0.0]
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
|
||||||
|
- **BREAKING**: Refactored Prometheus metrics section to add rules. Enabling metrics automatically enables the serviceMonitor and exporter sidecar.
|
||||||
|
|
||||||
### [5.1.0]
|
### [5.1.0]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@ -36,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
|
|
||||||
- Initial version
|
- Initial version
|
||||||
|
|
||||||
|
[6.0.0]: #600
|
||||||
[5.1.0]: #510
|
[5.1.0]: #510
|
||||||
[5.0.0]: #500
|
[5.0.0]: #500
|
||||||
[4.0.0]: #400
|
[4.0.0]: #400
|
||||||
|
@ -15,22 +15,22 @@ persistence:
|
|||||||
defaultMode: 256
|
defaultMode: 256
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
{{ if .Values.exporter.enabled }}
|
{{ if .Values.metrics.enabled }}
|
||||||
additionalContainers:
|
additionalContainers:
|
||||||
exporter:
|
exporter:
|
||||||
name: exporter
|
name: exporter
|
||||||
image: "{{ .Values.exporter.image.repository }}:{{ .Values.exporter.image.tag }}"
|
image: "{{ .Values.metrics.exporter.image.repository }}:{{ .Values.metrics.exporter.image.tag }}"
|
||||||
imagePullPolicy: {{ .Values.exporter.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.metrics.exporter.image.pullPolicy }}
|
||||||
env:
|
env:
|
||||||
- name: HTTP_PORT
|
- name: HTTP_PORT
|
||||||
value: "{{ .Values.exporter.env.port }}"
|
value: "{{ .Values.metrics.exporter.env.port }}"
|
||||||
- name: HTTP_PATH
|
- name: HTTP_PATH
|
||||||
value: "/metrics"
|
value: "/metrics"
|
||||||
- name: RUST_LOG
|
- name: RUST_LOG
|
||||||
value: "{{ .Values.exporter.env.logLevel }}"
|
value: "{{ .Values.metrics.exporter.env.logLevel }}"
|
||||||
ports:
|
ports:
|
||||||
- name: metrics
|
- name: metrics
|
||||||
containerPort: {{ .Values.exporter.env.port }}
|
containerPort: {{ .Values.metrics.exporter.env.port }}
|
||||||
|
|
||||||
service:
|
service:
|
||||||
metrics:
|
metrics:
|
||||||
@ -39,7 +39,7 @@ service:
|
|||||||
metrics:
|
metrics:
|
||||||
enabled: true
|
enabled: true
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
port: {{ .Values.exporter.env.port }}
|
port: {{ .Values.metrics.exporter.env.port }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $_ := mergeOverwrite .Values (include "network-ups-tools.harcodedValues" . | fromYaml) -}}
|
{{- $_ := mergeOverwrite .Values (include "network-ups-tools.harcodedValues" . | fromYaml) -}}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: PrometheusRule
|
||||||
|
metadata:
|
||||||
|
name: {{ include "common.names.fullname" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "common.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.metrics.prometheusRule.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
groups:
|
||||||
|
- name: {{ include "common.names.fullname" . }}
|
||||||
|
rules:
|
||||||
|
- alert: NutExporterAbsent
|
||||||
|
annotations:
|
||||||
|
description: NUT Exporter has disappeared from Prometheus target discovery.
|
||||||
|
summary: NUT Exporter is down.
|
||||||
|
expr: |
|
||||||
|
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
- alert: UpsStatusUnknown
|
||||||
|
annotations:
|
||||||
|
description: UPS {{ "{{ $labels.ups }}" }} is reporting a status of unknown.
|
||||||
|
summary: UPS status unknown.
|
||||||
|
expr: |
|
||||||
|
nut_status{job=~".*{{ include "common.names.fullname" . }}.*"} == 0
|
||||||
|
for: 10s
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
- alert: UpsOnBattery
|
||||||
|
annotations:
|
||||||
|
description: UPS {{ "{{ $labels.ups }}" }} has lost power and is running on battery.
|
||||||
|
summary: UPS is running on battery.
|
||||||
|
expr: |
|
||||||
|
nut_status{job=~".*{{ include "common.names.fullname" . }}.*"} == 2
|
||||||
|
for: 10s
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
- alert: UpsLowBattery
|
||||||
|
annotations:
|
||||||
|
description: UPS {{ "{{ $labels.ups }}" }} battery is low and the system is getting
|
||||||
|
ready to shutdown.
|
||||||
|
summary: UPS battery is low.
|
||||||
|
expr: |
|
||||||
|
nut_status{job=~".*{{ include "common.names.fullname" . }}.*"} == 3
|
||||||
|
for: 5s
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
{{- with .Values.metrics.prometheusRule.rules }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
@ -1,11 +1,11 @@
|
|||||||
{{- if .Values.exporter.enabled }}
|
{{- if .Values.metrics.enabled }}
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: ServiceMonitor
|
kind: ServiceMonitor
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "common.names.fullname" . }}
|
name: {{ template "common.names.fullname" . }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "common.labels" . | nindent 4 }}
|
{{- include "common.labels" . | nindent 4 }}
|
||||||
{{- with .Values.exporter.serviceMonitor.labels }}
|
{{- with .Values.metrics.serviceMonitor.labels }}
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
@ -14,10 +14,10 @@ spec:
|
|||||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||||
endpoints:
|
endpoints:
|
||||||
- port: metrics
|
- port: metrics
|
||||||
{{- with .Values.exporter.serviceMonitor.interval }}
|
{{- with .Values.metrics.serviceMonitor.interval }}
|
||||||
interval: {{ . }}
|
interval: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.exporter.serviceMonitor.scrapeTimeout }}
|
{{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||||
scrapeTimeout: {{ . }}
|
scrapeTimeout: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
path: /metrics
|
path: /metrics
|
||||||
|
@ -74,7 +74,7 @@ config:
|
|||||||
port = dummy-ups.dev
|
port = dummy-ups.dev
|
||||||
desc = "dummy-ups in dummy mode"
|
desc = "dummy-ups in dummy mode"
|
||||||
|
|
||||||
exporter:
|
metrics:
|
||||||
# -- Enable and configure prometheus-nut-exporter sidecar and Prometheus serviceMonitor.
|
# -- Enable and configure prometheus-nut-exporter sidecar and Prometheus serviceMonitor.
|
||||||
# @default -- See values.yaml
|
# @default -- See values.yaml
|
||||||
enabled: false
|
enabled: false
|
||||||
@ -82,15 +82,33 @@ exporter:
|
|||||||
interval: 30s
|
interval: 30s
|
||||||
scrapeTimeout: 10s
|
scrapeTimeout: 10s
|
||||||
labels: {}
|
labels: {}
|
||||||
image:
|
# -- Enable and configure Prometheus Rules for the chart under this key.
|
||||||
# -- image repository
|
# @default -- See values.yaml
|
||||||
repository: hon95/prometheus-nut-exporter
|
prometheusRule:
|
||||||
# -- image tag
|
enabled: false
|
||||||
tag: 1.1.1
|
labels: {}
|
||||||
# -- image pull policy
|
# -- Configure additionial rules for the chart under this key.
|
||||||
pullPolicy: IfNotPresent
|
# @default -- See prometheusrules.yaml
|
||||||
env:
|
rules: []
|
||||||
# -- metrics port
|
# - alert: UpsStatusUnknown
|
||||||
port: 9995
|
# annotations:
|
||||||
# -- log level [info|debug|trace]
|
# description: UPS {{ "{{ $labels.ups }}" }} is reporting a status of unknown.
|
||||||
logLevel: info
|
# summary: UPS status unknown.
|
||||||
|
# expr: |
|
||||||
|
# nut_status == 0
|
||||||
|
# for: 10s
|
||||||
|
# labels:
|
||||||
|
# severity: critical
|
||||||
|
exporter:
|
||||||
|
image:
|
||||||
|
# -- image repository
|
||||||
|
repository: hon95/prometheus-nut-exporter
|
||||||
|
# -- image tag
|
||||||
|
tag: 1.1.1
|
||||||
|
# -- image pull policy
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
env:
|
||||||
|
# -- metrics port
|
||||||
|
port: 9995
|
||||||
|
# -- log level [info|debug|trace]
|
||||||
|
logLevel: info
|
||||||
|
Loading…
Reference in New Issue
Block a user