From 90f16f338c9635b44a45a8835a84a3b11aaec2ac Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Wed, 21 Mar 2012 07:41:38 +0100 Subject: [PATCH] zfs_arc plugin: Fix the "hash collision" and "mutex miss" metrics. --- src/types.db | 3 +-- src/zfs_arc.c | 36 ++++++++++-------------------------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/types.db b/src/types.db index 4d3951b1..ed27b785 100644 --- a/src/types.db +++ b/src/types.db @@ -26,7 +26,6 @@ current_connections value:GAUGE:0:U current_sessions value:GAUGE:0:U current value:GAUGE:U:U delay value:GAUGE:-1000000:1000000 -deleted deleted:COUNTER:0:U derive value:DERIVE:0:U df_complex value:GAUGE:0:U df_inodes value:GAUGE:0:U @@ -65,7 +64,7 @@ frequency value:GAUGE:0:U frequency_offset value:GAUGE:-1000000:1000000 fscache_stat value:DERIVE:0:U gauge value:GAUGE:U:U -hash hash_collisions:COUNTER:0:U +hash_collisions value:DERIVE:0:U http_request_methods value:DERIVE:0:U http_requests value:DERIVE:0:U http_response_codes value:DERIVE:0:U diff --git a/src/zfs_arc.c b/src/zfs_arc.c index 584e11da..4ee7f53e 100644 --- a/src/zfs_arc.c +++ b/src/zfs_arc.c @@ -75,24 +75,6 @@ static void za_submit_ratio (const char* type_instance, gauge_t hits, gauge_t mi za_submit_gauge ("cache_ratio", type_instance, ratio); } -static void za_submit_deleted_counts (derive_t deleted) -{ - value_t values[1]; - - values[0].counter = deleted; - - za_submit ("deleted", "counts", values, STATIC_ARRAY_SIZE(values)); -} - -static void za_submit_hash_counts (derive_t hash_collisions) -{ - value_t values[1]; - - values[0].counter = hash_collisions; - - za_submit ("hash", "counts", values, STATIC_ARRAY_SIZE(values)); -} - static int za_read (void) { gauge_t arc_size, l2_size; @@ -107,7 +89,7 @@ static int za_read (void) gauge_t arc_hits, arc_misses, l2_hits, l2_misses; value_t l2_io[2]; derive_t mutex_miss; - derive_t deleted; + derive_t allocated, deleted, stolen; derive_t evict_l2_cached, evict_l2_eligible, evict_l2_ineligible; derive_t hash_collisions; @@ -128,7 +110,15 @@ static int za_read (void) mutex_miss = get_kstat_value (ksp, "mutex_miss"); za_submit_derive ("mutex_operation", "miss", mutex_miss); - deleted = get_kstat_value(ksp, "deleted"); + allocated = get_kstat_value(ksp, "allocated"); + deleted = get_kstat_value(ksp, "deleted"); + stolen = get_kstat_value(ksp, "stolen"); + za_submit_derive ("cache_operation", "allocated", allocated); + za_submit_derive ("cache_operation", "deleted", deleted); + za_submit_derive ("cache_operation", "stolen", stolen); + + hash_collisions = get_kstat_value(ksp, "hash_collisions"); + za_submit_derive ("hash_collisions", "", hash_collisions); evict_l2_cached = get_kstat_value(ksp, "evict_l2_cached"); evict_l2_eligible = get_kstat_value(ksp, "evict_l2_eligible"); @@ -138,8 +128,6 @@ static int za_read (void) za_submit_derive ("cache_eviction", "eligible", evict_l2_eligible); za_submit_derive ("cache_eviction", "ineligible", evict_l2_ineligible); - hash_collisions = get_kstat_value(ksp, "hash_collisions"); - /* Hits / misses */ demand_data_hits = get_kstat_value(ksp, "demand_data_hits"); demand_metadata_hits = get_kstat_value(ksp, "demand_metadata_hits"); @@ -176,10 +164,6 @@ static int za_read (void) za_submit ("io_octets", "L2", l2_io, /* num values = */ 2); - za_submit_deleted_counts (deleted); - - za_submit_hash_counts (hash_collisions); - return (0); } /* int za_read */ -- 2.11.0