aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/plugin/zfs_arc.php
blob: d40912d33d5b209531292286a0625056e9ce3697 (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
<?php
# Collectd zfs_arc plugin

require_once 'conf/common.inc.php';
require_once 'type/Default.class.php';
require_once 'inc/collectd.inc.php';

## LAYOUT
# zfs_arc/
# zfs_arc/arc_counts-hits.rrd
# zfs_arc/arc_counts-misses.rrd
# zfs_arc/arc_l2_bytes.rrd
# zfs_arc/arc_l2_size.rrd
# zfs_arc/arc_ratio-L1.rrd
# zfs_arc/arc_ratio-L2.rrd
# zfs_arc/arc_size.rrd

$obj = new Type_Default($CONFIG);
$obj->width = $width;
$obj->heigth = $heigth;
$obj->rrd_format = '%5.1lf%s';

switch($obj->args['type']) {
	case 'arc_counts':
		$obj->data_sources = array(
			'demand_data',
			'demand_metadata',
			'prefetch_data',
			'prefetch_metadata',
		);
		$obj->colors = array(
			'hits-demand_data' => 'ff0000',
			'misses-demand_data' => '880000',
			'hits-demand_metadata' => '00ff00',
			'misses-demand_metadata' => '00aa00',
			'hits-prefetch_data' => '0000ff',
			'misses-prefetch_data' => '00f0f0',
			'hits-prefetch_metadata' => 'ff00ff',
			'misses-prefetch_metadata' => '888800',
		);
		$obj->ds_names = array(
			'hits-demand_data' => 'data hits',
			'misses-demand_data' => 'metadata misses',
			'hits-demand_metadata' => 'metadata hits',
			'misses-demand_metadata' => 'metadata misses',
			'hits-prefetch_data' => 'prefetch data hits',
			'misses-prefetch_data' => 'prefetch data misses',
			'hits-prefetch_metadata' => 'prefetch metadata hits',
			'misses-prefetch_metadata' => 'prefetch metadata misses',
		);
		$obj->rrd_title = 'arc counts';
		$obj->rrd_vertical = 'count';
		break;
	case 'arc_size':
		$obj->data_sources = array('current','target','minlimit','maxlimit');
		$obj->order = array(
			'current',
			'target',
			'minlimit',
			'maxlimit',
		);
		$obj->rrd_title = 'Arc size';
		$obj->rrd_vertical = 'bytes';
		break;
	case 'arc_l2_bytes':
		$obj->data_sources = array(
			'write',
			'read',
		);
		$obj->ds_names = array(
			'write' => 'Write',
			'read'  => 'Read',
		);
		$obj->colors = array(
			'write' => 'ff0000',
			'read'  => '0000ff',
		);
		$obj->rrd_title = 'Arc L2 bytes';
		$obj->rrd_vertical = 'bytes';
		break;
	case 'arc_l2_size':
		$obj->data_sources = array(
			'value',
		);
		$obj->ds_names = array(
			'value'   => 'Bytes',
		);
		$obj->colors = array(
			'value' => '0000ff',
		);
		$obj->rrd_title = 'Arc L2 size';
		$obj->rrd_vertical = 'bytes';
		break;
	case 'arc_ratio':
		$obj->data_sources = array('value');
		$obj->rrd_title = 'Arc ratio';
		$obj->rrd_vertical = 'ratio';
		break;
}
collectd_flush($obj->identifiers);
$obj->rrd_graph();