From 69f98e7f7b866de5dd5e3a3dc99813576f66b176 Mon Sep 17 00:00:00 2001 From: "K.Cima" Date: Tue, 29 Nov 2016 14:24:59 +0900 Subject: [PATCH] Fix to remove evals --- plugins/oracle/oracle_sysstat_ | 201 +++++++++++++++------------------ 1 file changed, 91 insertions(+), 110 deletions(-) diff --git a/plugins/oracle/oracle_sysstat_ b/plugins/oracle/oracle_sysstat_ index b6c6897a..11c9035f 100755 --- a/plugins/oracle/oracle_sysstat_ +++ b/plugins/oracle/oracle_sysstat_ @@ -96,7 +96,7 @@ module=$( basename "$0" | sed -e 's/^.*_//' ) # Graph settings declare -A global_attrs # required -declare -A data_attrs # required (format: field type draw 'label') +declare -A data_attrs # required (format: field type draw label) declare -A getfield_func # optional declare -A getvalue_func # required @@ -109,9 +109,9 @@ global_attrs[$key]=" graph_info Oracle Sysstat Execute Count " data_attrs[$key]=" - execute_count DERIVE LINE 'execute count' - user_calls DERIVE LINE 'user calls' - recursive_calls DERIVE LINE 'recursive calls' + execute_count DERIVE LINE execute count + user_calls DERIVE LINE user calls + recursive_calls DERIVE LINE recursive calls " getvalue_func[$key]=getvalue_sysstat @@ -124,10 +124,10 @@ global_attrs[$key]=" graph_info Oracle Sysstat Parse Count " data_attrs[$key]=" - parse_count_total DERIVE LINE 'parse count (total)' - parse_count_hard DERIVE LINE 'parse count (hard)' - parse_count_failures DERIVE LINE 'parse count (failures)' - parse_count_describe DERIVE LINE 'parse count (describe)' + parse_count_total DERIVE LINE parse count (total) + parse_count_hard DERIVE LINE parse count (hard) + parse_count_failures DERIVE LINE parse count (failures) + parse_count_describe DERIVE LINE parse count (describe) " getvalue_func[$key]=getvalue_sysstat @@ -140,8 +140,8 @@ global_attrs[$key]=" graph_info Oracle Sysstat Table Scans " data_attrs[$key]=" - table_fetch_by_rowid DERIVE LINE 'table fetch by rowid' - table_scan_rows_gotten DERIVE LINE 'table scan rows gotten' + table_fetch_by_rowid DERIVE LINE table fetch by rowid + table_scan_rows_gotten DERIVE LINE table scan rows gotten " getvalue_func[$key]=getvalue_sysstat @@ -154,8 +154,8 @@ global_attrs[$key]=" graph_info Oracle Sysstat Table Scans " data_attrs[$key]=" - table_scans_short_tables DERIVE LINE 'table scans (short tables)' - table_scans_long_tables DERIVE LINE 'table scans (long tables)' + table_scans_short_tables DERIVE LINE table scans (short tables) + table_scans_long_tables DERIVE LINE table scans (long tables) " getvalue_func[$key]=getvalue_sysstat @@ -168,8 +168,8 @@ global_attrs[$key]=" graph_info Oracle Sysstat Transactions " data_attrs[$key]=" - user_commits DERIVE LINE 'user commits' - user_rollbacks DERIVE LINE 'user rollbacks' + user_commits DERIVE LINE user commits + user_rollbacks DERIVE LINE user rollbacks " getvalue_func[$key]=getvalue_sysstat @@ -182,8 +182,8 @@ global_attrs[$key]=" graph_info Oracle Sysstat - Sorts " data_attrs[$key]=" - sorts_memory DERIVE LINE 'sorts (memory)' - sorts_disk DERIVE LINE 'sorts (disk)' + sorts_memory DERIVE LINE sorts (memory) + sorts_disk DERIVE LINE sorts (disk) " getvalue_func[$key]=getvalue_sysstat @@ -196,7 +196,7 @@ global_attrs[$key]=" graph_info Oracle Sysstat Open Cursors " data_attrs[$key]=" - open_cursor GAUGE LINE 'opened cursors current' + open_cursor GAUGE LINE opened cursors current " getvalue_func[$key]=getvalue_sysstat @@ -209,12 +209,12 @@ global_attrs[$key]=" graph_info Oracle Sysstat Enqueues " data_attrs[$key]=" - enqueue_requests DERIVE LINE 'enqueue requests' - enqueue_releases DERIVE LINE 'enqueue releases' - enqueue_conversions DERIVE LINE 'enqueue conversions' - enqueue_waits DERIVE LINE 'enqueue waits' - enqueue_timeouts DERIVE LINE 'enqueue timeouts' - enqueue_deadlocks DERIVE LINE 'enqueue deadlocks' + enqueue_requests DERIVE LINE enqueue requests + enqueue_releases DERIVE LINE enqueue releases + enqueue_conversions DERIVE LINE enqueue conversions + enqueue_waits DERIVE LINE enqueue waits + enqueue_timeouts DERIVE LINE enqueue timeouts + enqueue_deadlocks DERIVE LINE enqueue deadlocks " getvalue_func[$key]=getvalue_sysstat @@ -227,9 +227,9 @@ global_attrs[$key]=" graph_info Oracle Sysstat Redo Log " data_attrs[$key]=" - redo_entries DERIVE LINE 'redo entries' - redo_buffer_allocation_retries DERIVE LINE 'redo buffer allocation retries' - redo_log_space_requests DERIVE LINE 'redo log space requests' + redo_entries DERIVE LINE redo entries + redo_buffer_allocation_retries DERIVE LINE redo buffer allocation retries + redo_log_space_requests DERIVE LINE redo log space requests " getvalue_func[$key]=getvalue_sysstat @@ -242,12 +242,12 @@ global_attrs[$key]=" graph_info Oracle Sysstat Physical I/O Requests " data_attrs[$key]=" - physical_read_total DERIVE LINE2 'physical read total IO requests' - physical_read DERIVE LINE 'physical read IO requests' - physical_read_total_multi DERIVE LINE 'physical read total multi block requests' - physical_write_total DERIVE LINE2 'physical write total IO requests' - physical_write DERIVE LINE 'physical write IO requests' - physical_write_total_multi DERIVE LINE 'physical write total multi block requests' + physical_read_total DERIVE LINE2 physical read total IO requests + physical_read DERIVE LINE physical read IO requests + physical_read_total_multi DERIVE LINE physical read total multi block requests + physical_write_total DERIVE LINE2 physical write total IO requests + physical_write DERIVE LINE physical write IO requests + physical_write_total_multi DERIVE LINE physical write total multi block requests " getvalue_func[$key]=getvalue_sysstat @@ -260,10 +260,10 @@ global_attrs[$key]=" graph_info Oracle Sysstat Physical Read/Write Bytes " data_attrs[$key]=" - physical_read_total DERIVE LINE2 'physical read total bytes' - physical_read DERIVE LINE 'physical read bytes' - physical_write_total DERIVE LINE2 'physical write total bytes' - physical_write DERIVE LINE 'physical write bytes' + physical_read_total DERIVE LINE2 physical read total bytes + physical_read DERIVE LINE physical read bytes + physical_write_total DERIVE LINE2 physical write total bytes + physical_write DERIVE LINE physical write bytes " getvalue_func[$key]=getvalue_sysstat @@ -276,10 +276,10 @@ global_attrs[$key]=" graph_info Oracle Sysstat Network Send/Receive Bytes " data_attrs[$key]=" - bytes_sent_via_sql_net_to_client DERIVE LINE 'bytes sent via SQL*Net to client' - bytes_received_via_sql_net_from_client DERIVE LINE 'bytes received via SQL*Net from client' - bytes_sent_via_sql_net_to_dblink DERIVE LINE 'bytes sent via SQL*Net to dblink' - bytes_received_via_sql_net_from_dblink DERIVE LINE 'bytes received via SQL*Net from dblink' + bytes_sent_via_sql_net_to_client DERIVE LINE bytes sent via SQL*Net to client + bytes_received_via_sql_net_from_client DERIVE LINE bytes received via SQL*Net from client + bytes_sent_via_sql_net_to_dblink DERIVE LINE bytes sent via SQL*Net to dblink + bytes_received_via_sql_net_from_dblink DERIVE LINE bytes received via SQL*Net from dblink " getvalue_func[$key]=getvalue_sysstat @@ -292,16 +292,16 @@ global_attrs[$key]=" graph_info Oracle Memory SGA " data_attrs[$key]=" - maximum_sga_size GAUGE LINE 'Maximum SGA Size' - fixed_sga_size GAUGE AREASTACK 'Fixed SGA Size' - redo_buffers GAUGE AREASTACK 'Redo Buffers' - shared_pool_size GAUGE AREASTACK 'Shared Pool Size' - large_pool_size GAUGE AREASTACK 'Large Pool Size' - java_pool_size GAUGE AREASTACK 'Java Pool Size' - streams_pool_size GAUGE AREASTACK 'Streams Pool Size' - shared_io_pool_size GAUGE AREASTACK 'Shared IO Pool Size' - buffer_cache_size GAUGE AREASTACK 'Buffer Cache Size' - in_memory_area_size GAUGE AREASTACK 'In-Memory Area Size' + maximum_sga_size GAUGE LINE Maximum SGA Size + fixed_sga_size GAUGE AREASTACK Fixed SGA Size + redo_buffers GAUGE AREASTACK Redo Buffers + shared_pool_size GAUGE AREASTACK Shared Pool Size + large_pool_size GAUGE AREASTACK Large Pool Size + java_pool_size GAUGE AREASTACK Java Pool Size + streams_pool_size GAUGE AREASTACK Streams Pool Size + shared_io_pool_size GAUGE AREASTACK Shared IO Pool Size + buffer_cache_size GAUGE AREASTACK Buffer Cache Size + in_memory_area_size GAUGE AREASTACK In-Memory Area Size " getvalue_func[$key]=getvalue_sgainfo @@ -314,9 +314,9 @@ global_attrs[$key]=" graph_info Oracle Memory PGA " data_attrs[$key]=" - pga_target GAUGE LINE 'aggregate PGA auto target' - pga_allocated GAUGE LINE 'total PGA allocated' - pga_inuse GAUGE AREA 'total PGA inuse' + pga_target GAUGE LINE aggregate PGA auto target + pga_allocated GAUGE LINE total PGA allocated + pga_inuse GAUGE AREA total PGA inuse " getvalue_func[$key]=getvalue_pgastat @@ -330,9 +330,9 @@ global_attrs[$key]=" graph_scale no " data_attrs[$key]=" - buf_hitratio GAUGE LINE 'Buffer Cache Hit Ratio' - lib_hitratio GAUGE LINE 'Library Cache Hit Ratio' - dict_hitratio GAUGE LINE 'Dictionary Cache Hit Ratio' + buf_hitratio GAUGE LINE Buffer Cache Hit Ratio + lib_hitratio GAUGE LINE Library Cache Hit Ratio + dict_hitratio GAUGE LINE Dictionary Cache Hit Ratio " getvalue_func[$key]=getvalue_cachehit @@ -381,8 +381,8 @@ global_attrs[$key]=" graph_info Oracle Wait Events Application " data_attrs[$key]="" -getfield_func[$key]='getfield_eventwait2 Application' -getvalue_func[$key]='getvalue_eventwait2 Application' +getfield_func[$key]="getfield_eventwait2 Application" +getvalue_func[$key]="getvalue_eventwait2 Application" key=eventwaitconcurrency global_attrs[$key]=" @@ -393,8 +393,8 @@ global_attrs[$key]=" graph_info Oracle Wait Events Concurrency " data_attrs[$key]=" " -getfield_func[$key]='getfield_eventwait2 Concurrency' -getvalue_func[$key]='getvalue_eventwait2 Concurrency' +getfield_func[$key]="getfield_eventwait2 Concurrency" +getvalue_func[$key]="getvalue_eventwait2 Concurrency" key=eventwaituserio global_attrs[$key]=" @@ -405,8 +405,8 @@ global_attrs[$key]=" graph_info Oracle Wait Events User I/O " data_attrs[$key]="" -getfield_func[$key]='getfield_eventwait2 "User I/O"' -getvalue_func[$key]='getvalue_eventwait2 "User I/O"' +getfield_func[$key]="getfield_eventwait2 User I/O" +getvalue_func[$key]="getvalue_eventwait2 User I/O" key=eventwaitsystemio global_attrs[$key]=" @@ -418,8 +418,8 @@ global_attrs[$key]=" " data_attrs[$key]=" " -getfield_func[$key]='getfield_eventwait2 "System I/O"' -getvalue_func[$key]='getvalue_eventwait2 "System I/O"' +getfield_func[$key]="getfield_eventwait2 System I/O" +getvalue_func[$key]="getvalue_eventwait2 System I/O" key=eventwaitcluster global_attrs[$key]=" @@ -430,8 +430,8 @@ global_attrs[$key]=" graph_info Oracle Wait Events Cluster " data_attrs[$key]=" " -getfield_func[$key]='getfield_eventwait2 Cluster' -getvalue_func[$key]='getvalue_eventwait2 Cluster' +getfield_func[$key]="getfield_eventwait2 Cluster" +getvalue_func[$key]="getvalue_eventwait2 Cluster" key=tablespace global_attrs[$key]=" @@ -492,53 +492,44 @@ config() { sed -e 's/^ *//' -e '/^$/d' <<< "${global_attrs[$module]}" # print data source attributes - local line t fields field type draw label - while IFS= read -r line + # split line into field,type,draw,label + local fields field type draw label + while read -r field type draw label do - # split line into field,type,draw,label - # eval looks necessary to preserve whitespaces - eval "t=( ${line} )" - field="${t[0]}" [ -z "$field" ] && continue - fields+=( $field ) - type="${t[1]}" - draw="${t[2]}" - label="${t[3]}" + fields="${fields} ${field}" echo "${field}.type" "$type" echo "${field}.draw" "$draw" echo "${field}.label" "$label" done <<< "${data_attrs[$module]}" - echo graph_order "${fields[@]}" + echo graph_order "$fields" } # wrapper for getfield_* getfield() { + local func arg if [ -n "${getfield_func[$module]:-}" ]; then - # call getfield_* function with args if necessary - # eval looks necessary if args contain whitespaces - eval "${getfield_func[$module]}" + # call getfield_* function with argument if necessary + read -r func arg <<< "${getfield_func[$module]}" + $func "$arg" fi } # wrapper for getvalue_* getvalue() { - # call getvalue_* function with args if necessary - # eval looks necessary if args contain whitespaces - eval "${getvalue_func[$module]}" + local func arg + # call getvalue_* function with argument if necessary + read -r func arg <<< "${getvalue_func[$module]}" + $func "$arg" } getvalue_sysstat() { - local line t field label - while IFS= read -r line + local field type draw label + while read -r field type draw label do - # split line into field,type,draw,label - # eval looks necessary to preserve whitespaces - eval "t=( ${line} )" - field="${t[0]}" [ -z "$field" ] && continue - label="${t[3]}" ${sqlplus} "${oracle_auth}" <