plugin_name: go.d.plugin
modules:
  - meta:
      id: collector-go.d.plugin-zfspool
      plugin_name: go.d.plugin
      module_name: zfspool
      monitored_instance:
        name: ZFS Pools
        link: ""
        icon_filename: filesystem.svg
        categories:
          - data-collection.storage-mount-points-and-filesystems
      keywords:
        - zfs pools
        - pools
        - zfs
        - filesystem
      related_resources:
        integrations:
          list: []
      info_provided_to_referring_integrations:
        description: ""
      most_popular: false
    overview:
      data_collection:
        metrics_description: >
          This collector monitors the health and space usage of ZFS pools using the command line
          tool [zpool](https://openzfs.github.io/openzfs-docs/man/master/8/zpool-list.8.html).
        method_description: ""
      supported_platforms:
        include: [Linux, BSD]
        exclude: []
      multi_instance: false
      additional_permissions:
        description: ""
      default_behavior:
        auto_detection:
          description: ""
        limits:
          description: ""
        performance_impact:
          description: ""
    setup:
      prerequisites:
        list: []
      configuration:
        file:
          name: go.d/zfspool.conf
        options:
          description: |
            The following options can be defined globally: update_every.
          folding:
            title: Config options
            enabled: true
          list:
            - name: update_every
              description: Data collection frequency.
              default_value: 10
              required: false
            - name: binary_path
              description: Path to the `zpool` binary. If an absolute path is provided, the collector will use it directly; otherwise, it will search for the binary in directories specified in the PATH environment variable.
              default_value: /usr/bin/zpool
              required: true
            - name: timeout
              description: Timeout for executing the binary, specified in seconds.
              default_value: 2
              required: false
        examples:
          folding:
            title: Config
            enabled: true
          list:
            - name: Custom binary path
              description: The executable is not in the directories specified in the PATH environment variable.
              config: |
                jobs:
                  - name: zfspool
                    binary_path: /usr/local/sbin/zpool
    troubleshooting:
      problems:
        list: []
    alerts:
      - name: zfs_pool_space_utilization
        metric: zfspool.pool_space_utilization
        info: "ZFS pool ${label:pool} is nearing capacity. Current space usage is above the threshold."
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf
      - name: zfs_pool_health_state_warn
        metric: zfspool.pool_health_state
        info: "ZFS pool ${label:pool} state is degraded"
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf
      - name: zfs_pool_health_state_crit
        metric: zfspool.pool_health_state
        info: "ZFS pool ${label:pool} state is faulted or unavail"
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf
      - name: zfs_vdev_health_state
        metric: zfspool.vdev_health_state
        info: "ZFS vdev ${label:vdev} state is faulted or degraded"
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/zfs.conf
    metrics:
      folding:
        title: Metrics
        enabled: false
      description: ""
      availability: []
      scopes:
        - name: zfs pool
          description: These metrics refer to the ZFS pool.
          labels:
            - name: pool
              description: Zpool name
          metrics:
            - name: zfspool.pool_space_utilization
              description: Zpool space utilization
              unit: '%'
              chart_type: area
              dimensions:
                - name: utilization
            - name: zfspool.pool_space_usage
              description: Zpool space usage
              unit: 'bytes'
              chart_type: stacked
              dimensions:
                - name: free
                - name: used
            - name: zfspool.pool_fragmentation
              description: Zpool fragmentation
              unit: '%'
              chart_type: line
              dimensions:
                - name: fragmentation
            - name: zfspool.pool_health_state
              description: Zpool health state
              unit: 'state'
              chart_type: line
              dimensions:
                - name: online
                - name: degraded
                - name: faulted
                - name: offline
                - name: unavail
                - name: removed
                - name: suspended
        - name: zfs pool vdev
          description: These metrics refer to the ZFS pool virtual device.
          labels:
            - name: pool
              description: Zpool name
            - name: vdev
              description: Unique identifier for a virtual device (vdev) within a ZFS pool.
          metrics:
            - name: zfspool.vdev_health_state
              description: Zpool Vdev health state
              unit: 'state'
              chart_type: line
              dimensions:
                - name: online
                - name: degraded
                - name: faulted
                - name: offline
                - name: unavail
                - name: removed
                - name: suspended
