summaryrefslogtreecommitdiff
path: root/f3s/prometheus/zfs-recording-rules.yaml
blob: c445ea7dac501aff1ef73ada8052b6c519c61b3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: freebsd-zfs-rules
  namespace: monitoring
  labels:
    release: prometheus
spec:
  groups:
    # FreeBSD ZFS ARC metrics - calculated values for easier dashboard consumption
    - name: freebsd-zfs-arc
      interval: 30s
      rules:
        # ARC Hit Rate (percentage)
        # Rate of hits divided by total requests (hits + misses)
        - record: node_zfs_arc_hit_rate_percent
          expr: |
            100 * (
              rate(node_zfs_arcstats_hits_total{os="freebsd"}[5m]) /
              (rate(node_zfs_arcstats_hits_total{os="freebsd"}[5m]) +
               rate(node_zfs_arcstats_misses_total{os="freebsd"}[5m]))
            )
          labels:
            os: freebsd

        # ARC Memory Usage Percentage (current size vs maximum)
        - record: node_zfs_arc_memory_usage_percent
          expr: |
            100 * (
              node_zfs_arcstats_size_bytes{os="freebsd"} /
              node_zfs_arcstats_c_max_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # ARC Target vs Max Ratio (how close to maximum target is)
        - record: node_zfs_arc_target_percent
          expr: |
            100 * (
              node_zfs_arcstats_c_bytes{os="freebsd"} /
              node_zfs_arcstats_c_max_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # ARC Metadata Percentage (metadata vs total ARC size)
        - record: node_zfs_arc_metadata_percent
          expr: |
            100 * (
              node_zfs_arcstats_meta_bytes{os="freebsd"} /
              node_zfs_arcstats_size_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # ARC Data Percentage (data vs total ARC size)
        - record: node_zfs_arc_data_percent
          expr: |
            100 * (
              node_zfs_arcstats_data_bytes{os="freebsd"} /
              node_zfs_arcstats_size_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # MFU Percentage (Most Frequently Used vs total ARC)
        - record: node_zfs_arc_mfu_percent
          expr: |
            100 * (
              node_zfs_arcstats_mfu_bytes{os="freebsd"} /
              node_zfs_arcstats_size_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # MRU Percentage (Most Recently Used vs total ARC)
        - record: node_zfs_arc_mru_percent
          expr: |
            100 * (
              node_zfs_arcstats_mru_bytes{os="freebsd"} /
              node_zfs_arcstats_size_bytes{os="freebsd"}
            )
          labels:
            os: freebsd

        # Demand Data Hit Rate (percentage)
        - record: node_zfs_arc_demand_data_hit_rate_percent
          expr: |
            100 * (
              rate(node_zfs_arcstats_demand_data_hits_total{os="freebsd"}[5m]) /
              (rate(node_zfs_arcstats_demand_data_hits_total{os="freebsd"}[5m]) +
               rate(node_zfs_arcstats_demand_data_misses_total{os="freebsd"}[5m]))
            )
          labels:
            os: freebsd

        # Demand Metadata Hit Rate (percentage)
        - record: node_zfs_arc_demand_metadata_hit_rate_percent
          expr: |
            100 * (
              rate(node_zfs_arcstats_demand_metadata_hits_total{os="freebsd"}[5m]) /
              (rate(node_zfs_arcstats_demand_metadata_hits_total{os="freebsd"}[5m]) +
               rate(node_zfs_arcstats_demand_metadata_misses_total{os="freebsd"}[5m]))
            )
          labels:
            os: freebsd