diff --git a/glance-system/glance-kisfenyo.yaml b/glance-system/glance-kisfenyo.yaml index 59f9af9..cf55f1a 100644 --- a/glance-system/glance-kisfenyo.yaml +++ b/glance-system/glance-kisfenyo.yaml @@ -21,14 +21,6 @@ # 4. Update auth-url annotation with actual outpost service name --- apiVersion: v1 -kind: Namespace -metadata: - name: glance-system - labels: - app.kubernetes.io/name: glance-kisfenyo - app.kubernetes.io/instance: glance-kisfenyo ---- -apiVersion: v1 kind: ConfigMap metadata: name: glance-config-kisfenyo @@ -72,6 +64,255 @@ data: # ---------- LEFT COLUMN ---------- - size: small widgets: + - type: custom-api + title: DooPlex Server + cache: 30s + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_uname_info + subrequests: + uptime: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_boot_time_seconds + cpu: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) + memory: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 + cpu_temp: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_hwmon_temp_celsius{instance="dooplex",chip="platform_coretemp_0",sensor="temp1"} + fans: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: fan_speed_rpm{instance="dooplex"} + disk_root: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) + disk_root_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_avail_bytes{mountpoint="/"}) / 1073741824 + disk_root_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/"} / 1073741824 + disk_ssd2: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/ssd_2"} / node_filesystem_size_bytes{mountpoint="/mnt/ssd_2"}) + disk_ssd2_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/ssd_2"} - node_filesystem_avail_bytes{mountpoint="/mnt/ssd_2"}) / 1073741824 + disk_ssd2_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/ssd_2"} / 1073741824 + disk_hdd1: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/1_hdd"} / node_filesystem_size_bytes{mountpoint="/mnt/1_hdd"}) + disk_hdd1_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/1_hdd"} - node_filesystem_avail_bytes{mountpoint="/mnt/1_hdd"}) / 1099511627776 + disk_hdd1_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/1_hdd"} / 1099511627776 + disk_hdd2: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/2_hdd"} / node_filesystem_size_bytes{mountpoint="/mnt/2_hdd"}) + disk_hdd2_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/2_hdd"} - node_filesystem_avail_bytes{mountpoint="/mnt/2_hdd"}) / 1099511627776 + disk_hdd2_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/2_hdd"} / 1099511627776 + disk_hdd3: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/3_hdd"} / node_filesystem_size_bytes{mountpoint="/mnt/3_hdd"}) + disk_hdd3_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/3_hdd"} - node_filesystem_avail_bytes{mountpoint="/mnt/3_hdd"}) / 1099511627776 + disk_hdd3_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/3_hdd"} / 1099511627776 + disk_hdd4: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/4_hdd"} / node_filesystem_size_bytes{mountpoint="/mnt/4_hdd"}) + disk_hdd4_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/4_hdd"} - node_filesystem_avail_bytes{mountpoint="/mnt/4_hdd"}) / 1099511627776 + disk_hdd4_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/4_hdd"} / 1099511627776 + disk_hdd5: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: 100 * (1 - node_filesystem_avail_bytes{mountpoint="/mnt/5_hdd"} / node_filesystem_size_bytes{mountpoint="/mnt/5_hdd"}) + disk_hdd5_used: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: (node_filesystem_size_bytes{mountpoint="/mnt/5_hdd"} - node_filesystem_avail_bytes{mountpoint="/mnt/5_hdd"}) / 1099511627776 + disk_hdd5_total: + url: ${PROMETHEUS_URL}/api/v1/query + parameters: + query: node_filesystem_size_bytes{mountpoint="/mnt/5_hdd"} / 1099511627776 + template: | + + + {{ $hostname := .JSON.String "data.result.0.metric.nodename" }} + {{ $bootTime := (.Subrequest "uptime").JSON.Float "data.result.0.value.1" }} + {{ $uptimeSec := sub now.Unix (int64 $bootTime) }} + {{ $uptimeDays := div $uptimeSec 86400 }} + {{ $uptimeHours := div (mod $uptimeSec 86400) 3600 }} + {{ $cpu := (.Subrequest "cpu").JSON.Float "data.result.0.value.1" }} + {{ $mem := (.Subrequest "memory").JSON.Float "data.result.0.value.1" }} + {{ $temp := (.Subrequest "cpu_temp").JSON.Float "data.result.0.value.1" }} + {{ $fans := (.Subrequest "fans").JSON.Array "data.result" }} + +
+
+
+
Host
+
{{ $hostname }}
+
+
+
Uptime
+
{{ $uptimeDays }}d {{ $uptimeHours }}h
+
+
+
CPU
+
{{ printf "%.1f" $cpu }}%
+
+
+
Memory
+
{{ printf "%.1f" $mem }}%
+
+
+
Temp
+
{{ printf "%.0f" $temp }}°C
+
+
+
Fans
+
{{ range $i, $fan := $fans }}{{ if $i }}/{{ end }}{{ $fan.Int "value.1" }}{{ end }}
+
+
+ +
Storage
+ + {{ $rootPct := (.Subrequest "disk_root").JSON.Float "data.result.0.value.1" }} + {{ $rootUsed := (.Subrequest "disk_root_used").JSON.Float "data.result.0.value.1" }} + {{ $rootTotal := (.Subrequest "disk_root_total").JSON.Float "data.result.0.value.1" }} +
+ Root +
+
+
+ {{ printf "%.0f" $rootUsed }} / {{ printf "%.0f" $rootTotal }} GB ({{ printf "%.0f" $rootPct }}%) +
+ + {{ $ssd2Pct := (.Subrequest "disk_ssd2").JSON.Float "data.result.0.value.1" }} + {{ $ssd2Used := (.Subrequest "disk_ssd2_used").JSON.Float "data.result.0.value.1" }} + {{ $ssd2Total := (.Subrequest "disk_ssd2_total").JSON.Float "data.result.0.value.1" }} +
+ SSD2 +
+
+
+ {{ printf "%.0f" $ssd2Used }} / {{ printf "%.0f" $ssd2Total }} GB ({{ printf "%.0f" $ssd2Pct }}%) +
+ + {{ $hdd1Pct := (.Subrequest "disk_hdd1").JSON.Float "data.result.0.value.1" }} + {{ $hdd1Used := (.Subrequest "disk_hdd1_used").JSON.Float "data.result.0.value.1" }} + {{ $hdd1Total := (.Subrequest "disk_hdd1_total").JSON.Float "data.result.0.value.1" }} +
+ HDD1 +
+
+
+ {{ printf "%.1f" $hdd1Used }} / {{ printf "%.1f" $hdd1Total }} TB ({{ printf "%.0f" $hdd1Pct }}%) +
+ + {{ $hdd2Pct := (.Subrequest "disk_hdd2").JSON.Float "data.result.0.value.1" }} + {{ $hdd2Used := (.Subrequest "disk_hdd2_used").JSON.Float "data.result.0.value.1" }} + {{ $hdd2Total := (.Subrequest "disk_hdd2_total").JSON.Float "data.result.0.value.1" }} +
+ HDD2 +
+
+
+ {{ printf "%.1f" $hdd2Used }} / {{ printf "%.1f" $hdd2Total }} TB ({{ printf "%.0f" $hdd2Pct }}%) +
+ + {{ $hdd3Pct := (.Subrequest "disk_hdd3").JSON.Float "data.result.0.value.1" }} + {{ $hdd3Used := (.Subrequest "disk_hdd3_used").JSON.Float "data.result.0.value.1" }} + {{ $hdd3Total := (.Subrequest "disk_hdd3_total").JSON.Float "data.result.0.value.1" }} +
+ HDD3 +
+
+
+ {{ printf "%.1f" $hdd3Used }} / {{ printf "%.1f" $hdd3Total }} TB ({{ printf "%.0f" $hdd3Pct }}%) +
+ + {{ $hdd4Pct := (.Subrequest "disk_hdd4").JSON.Float "data.result.0.value.1" }} + {{ $hdd4Used := (.Subrequest "disk_hdd4_used").JSON.Float "data.result.0.value.1" }} + {{ $hdd4Total := (.Subrequest "disk_hdd4_total").JSON.Float "data.result.0.value.1" }} +
+ HDD4 +
+
+
+ {{ printf "%.1f" $hdd4Used }} / {{ printf "%.1f" $hdd4Total }} TB ({{ printf "%.0f" $hdd4Pct }}%) +
+ + {{ $hdd5Pct := (.Subrequest "disk_hdd5").JSON.Float "data.result.0.value.1" }} + {{ $hdd5Used := (.Subrequest "disk_hdd5_used").JSON.Float "data.result.0.value.1" }} + {{ $hdd5Total := (.Subrequest "disk_hdd5_total").JSON.Float "data.result.0.value.1" }} +
+ HDD5 +
+
+
+ {{ printf "%.1f" $hdd5Used }} / {{ printf "%.1f" $hdd5Total }} TB ({{ printf "%.0f" $hdd5Pct }}%) +
+
+ + # Weather Widget - type: weather location: Budapest, Hungary @@ -631,7 +872,7 @@ metadata: app.kubernetes.io/instance: glance-kisfenyo app.kubernetes.io/version: "v0.8.4" annotations: - reloader.stakater.com/auto: "true" + reloader.stakater.com/auto: "true" spec: replicas: 1 strategy: @@ -658,6 +899,8 @@ spec: env: - name: TZ value: "Europe/Budapest" + - name: PROMETHEUS_URL + value: "http://..svc.cluster.local:9090" ports: - name: http containerPort: 8080 diff --git a/glance-system/glance-orsi.yaml b/glance-system/glance-orsi.yaml index 01bf7bb..f531a3b 100644 --- a/glance-system/glance-orsi.yaml +++ b/glance-system/glance-orsi.yaml @@ -82,10 +82,6 @@ data: - type: calendar first-day-of-week: monday - # To-Do List - - type: to-do - title: Tasks - # Quick Links - Productivity - type: bookmarks title: Productivity @@ -155,6 +151,9 @@ data: title: Recent Notes # ---------- RIGHT COLUMN ---------- + - type: to-do + title: Tasks + - size: small widgets: # RSS Feeds - Add your favorite feeds here