]> arthur.barton.de Git - netdata.git/blobdiff - charts.d/opensips.chart.sh
Merge pull request #2021 from ktsaou/master
[netdata.git] / charts.d / opensips.chart.sh
old mode 100755 (executable)
new mode 100644 (file)
index 60ca728..2a0249d
@@ -1,20 +1,23 @@
-#!/bin/sh
+# no need for shebang - this file is loaded from charts.d.plugin
+
+# netdata
+# real-time performance and health monitoring, done right!
+# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
+# GPL v3+
+#
 
 opensips_opts="fifo get_statistics all"
 opensips_cmd=
 opensips_update_every=5
 opensips_timeout=2
+opensips_priority=80000
 
 opensips_get_stats() {
-       timeout $opensips_timeout "$opensips_cmd" $opensips_opts |\
-               grep "^\(core\|dialog\|net\|registrar\|shmem\|siptrace\|sl\|tm\|uri\|usrloc\):[a-zA-Z0-9_ -]\+[[:space:]]*=[[:space:]]*[0-9]\+[[:space:]]*$" |\
+       run -t $opensips_timeout "$opensips_cmd" $opensips_opts |\
+               grep "^\(core\|dialog\|net\|registrar\|shmem\|siptrace\|sl\|tm\|uri\|usrloc\):[a-zA-Z0-9_-]\+[[:space:]]*[=:]\+[[:space:]]*[0-9]\+[[:space:]]*$" |\
                sed \
-                       -e "s|-|_|g" \
-                       -e "s|:|_|g" \
-                       -e "s|[[:space:]]\+=[[:space:]]\+|=|g" \
-                       -e "s|[[:space:]]\+$||" \
-                       -e "s|^[[:space:]]\+||" \
-                       -e "s|[[:space:]]\+|_|" \
+                       -e "s|[[:space:]]*[=:]\+[[:space:]]*\([0-9]\+\)[[:space:]]*$|=\1|g" \
+                       -e "s|[[:space:]:-]\+|_|g" \
                        -e "s|^|opensips_|g"
 
        local ret=$?
@@ -34,7 +37,7 @@ opensips_check() {
        local x="$(opensips_get_stats | grep "^opensips_core_")"
        if [ ! $? -eq 0 -o -z "$x" ]
        then
-               echo >&2 "$PROGRAM_NAME: opensips: cannot get global status. Please set opensips_opts='options' whatever needed to get connected to opensips server, in $confd/opensips.conf"
+               error "cannot get global status. Please set opensips_opts='options' whatever needed to get connected to opensips server, in $confd/opensips.conf"
                return 1
        fi
 
@@ -44,103 +47,102 @@ opensips_check() {
 opensips_create() {
        # create the charts
        cat <<EOF
-CHART opensips.dialogs_active '' "OpenSIPS Active Dialogs" "dialogs" opensips '' area 20001 $opensips_update_every
+CHART opensips.dialogs_active '' "OpenSIPS Active Dialogs" "dialogs" dialogs '' area $((opensips_priority + 1)) $opensips_update_every
 DIMENSION dialog_active_dialogs active absolute 1 1
 DIMENSION dialog_early_dialogs early absolute -1 1
 
-CHART opensips.users '' "OpenSIPS Users" "users" opensips '' line 20002 $opensips_update_every
+CHART opensips.users '' "OpenSIPS Users" "users" users '' line $((opensips_priority + 2)) $opensips_update_every
 DIMENSION usrloc_registered_users registered absolute 1 1
 DIMENSION usrloc_location_users location absolute 1 1
 DIMENSION usrloc_location_contacts contacts absolute 1 1
-DIMENSION usrloc_location_expires expires incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.registrar '' "OpenSIPS Registrar" "registrations / sec" opensips '' line 20003 $opensips_update_every
-DIMENSION registrar_accepted_regs accepted incremental 1 $((1 * opensips_update_every))
-DIMENSION registrar_rejected_regs rejected incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.transactions '' "OpenSIPS Transactions" "transactions / sec" opensips '' line 20004 $opensips_update_every
-DIMENSION tm_UAS_transactions UAS incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_UAC_transactions UAC incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.core_rcv '' "OpenSIPS Core Receives" "queries / sec" opensips '' line 20005 $opensips_update_every
-DIMENSION core_rcv_requests requests incremental 1 $((1 * opensips_update_every))
-DIMENSION core_rcv_replies replies incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.core_fwd '' "OpenSIPS Core Forwards" "queries / sec" opensips '' line 20006 $opensips_update_every
-DIMENSION core_fwd_requests requests incremental 1 $((1 * opensips_update_every))
-DIMENSION core_fwd_replies replies incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.core_drop '' "OpenSIPS Core Drops" "queries / sec" opensips '' line 20007 $opensips_update_every
-DIMENSION core_drop_requests requests incremental 1 $((1 * opensips_update_every))
-DIMENSION core_drop_replies replies incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.core_err '' "OpenSIPS Core Errors" "queries / sec" opensips '' line 20008 $opensips_update_every
-DIMENSION core_err_requests requests incremental 1 $((1 * opensips_update_every))
-DIMENSION core_err_replies replies incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.core_bad '' "OpenSIPS Core Bad" "queries / sec" opensips '' line 20009 $opensips_update_every
-DIMENSION core_bad_URIs_rcvd bad_URIs_rcvd incremental 1 $((1 * opensips_update_every))
-DIMENSION core_unsupported_methods unsupported_methods incremental 1 $((1 * opensips_update_every))
-DIMENSION core_bad_msg_hdr bad_msg_hdr incremental 1 $((1 * opensips_update_every))
-
-CHART opensips.tm_replies '' "OpenSIPS TM Replies" "replies / sec" opensips '' line 20010 $opensips_update_every
-DIMENSION tm_received_replies received incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_relayed_replies relayed incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_local_replies local incremental 1 $((1 * opensips_update_every))
-
-CHART opensips.transactions_status '' "OpenSIPS Transactions Status" "transactions / sec" opensips '' line 20011 $opensips_update_every
-DIMENSION tm_2xx_transactions 2xx incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_3xx_transactions 3xx incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_4xx_transactions 4xx incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_5xx_transactions 5xx incremental 1 $((1 * opensips_update_every))
-DIMENSION tm_6xx_transactions 6xx incremental 1 $((1 * opensips_update_every))
-
-CHART opensips.transactions_inuse '' "OpenSIPS InUse Transactions" "transactions" opensips '' line 20012 $opensips_update_every
+DIMENSION usrloc_location_expires expires incremental -1 1
+
+CHART opensips.registrar '' "OpenSIPS Registrar" "registrations/s" registrar '' line $((opensips_priority + 3)) $opensips_update_every
+DIMENSION registrar_accepted_regs accepted incremental 1 1
+DIMENSION registrar_rejected_regs rejected incremental -1 1
+
+CHART opensips.transactions '' "OpenSIPS Transactions" "transactions/s" transactions '' line $((opensips_priority + 4)) $opensips_update_every
+DIMENSION tm_UAS_transactions UAS incremental 1 1
+DIMENSION tm_UAC_transactions UAC incremental -1 1
+
+CHART opensips.core_rcv '' "OpenSIPS Core Receives" "queries/s" core '' line $((opensips_priority + 5)) $opensips_update_every
+DIMENSION core_rcv_requests requests incremental 1 1
+DIMENSION core_rcv_replies replies incremental -1 1
+
+CHART opensips.core_fwd '' "OpenSIPS Core Forwards" "queries/s" core '' line $((opensips_priority + 6)) $opensips_update_every
+DIMENSION core_fwd_requests requests incremental 1 1
+DIMENSION core_fwd_replies replies incremental -1 1
+
+CHART opensips.core_drop '' "OpenSIPS Core Drops" "queries/s" core '' line $((opensips_priority + 7)) $opensips_update_every
+DIMENSION core_drop_requests requests incremental 1 1
+DIMENSION core_drop_replies replies incremental -1 1
+
+CHART opensips.core_err '' "OpenSIPS Core Errors" "queries/s" core '' line $((opensips_priority + 8)) $opensips_update_every
+DIMENSION core_err_requests requests incremental 1 1
+DIMENSION core_err_replies replies incremental -1 1
+
+CHART opensips.core_bad '' "OpenSIPS Core Bad" "queries/s" core '' line $((opensips_priority + 9)) $opensips_update_every
+DIMENSION core_bad_URIs_rcvd bad_URIs_rcvd incremental 1 1
+DIMENSION core_unsupported_methods unsupported_methods incremental 1 1
+DIMENSION core_bad_msg_hdr bad_msg_hdr incremental 1 1
+
+CHART opensips.tm_replies '' "OpenSIPS TM Replies" "replies/s" transactions '' line $((opensips_priority + 10)) $opensips_update_every
+DIMENSION tm_received_replies received incremental 1 1
+DIMENSION tm_relayed_replies relayed incremental 1 1
+DIMENSION tm_local_replies local incremental 1 1
+
+CHART opensips.transactions_status '' "OpenSIPS Transactions Status" "transactions/s" transactions '' line $((opensips_priority + 11)) $opensips_update_every
+DIMENSION tm_2xx_transactions 2xx incremental 1 1
+DIMENSION tm_3xx_transactions 3xx incremental 1 1
+DIMENSION tm_4xx_transactions 4xx incremental 1 1
+DIMENSION tm_5xx_transactions 5xx incremental 1 1
+DIMENSION tm_6xx_transactions 6xx incremental 1 1
+
+CHART opensips.transactions_inuse '' "OpenSIPS InUse Transactions" "transactions" transactions '' line $((opensips_priority + 12)) $opensips_update_every
 DIMENSION tm_inuse_transactions inuse absolute 1 1
 
-CHART opensips.sl_replies '' "OpenSIPS SL Replies" "replies / sec" opensips '' line 20013 $opensips_update_every
-DIMENSION sl_1xx_replies 1xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_2xx_replies 2xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_3xx_replies 3xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_4xx_replies 4xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_5xx_replies 5xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_6xx_replies 6xx incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_sent_replies sent incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_sent_err_replies error incremental 1 $((1 * opensips_update_every))
-DIMENSION sl_received_ACKs ACKed incremental 1 $((1 * opensips_update_every))
-
-CHART opensips.dialogs '' "OpenSIPS Dialogs" "dialogs / sec" opensips '' line 20014 $opensips_update_every
-DIMENSION dialog_processed_dialogs processed incremental 1 $((1 * opensips_update_every))
-DIMENSION dialog_expired_dialogs expired incremental 1 $((1 * opensips_update_every))
-DIMENSION dialog_failed_dialogs failed incremental -1 $((1 * opensips_update_every))
-
-CHART opensips.net_waiting '' "OpenSIPS Network Waiting" "kilobytes" opensips '' line 20015 $opensips_update_every
+CHART opensips.sl_replies '' "OpenSIPS SL Replies" "replies/s" core '' line $((opensips_priority + 13)) $opensips_update_every
+DIMENSION sl_1xx_replies 1xx incremental 1 1
+DIMENSION sl_2xx_replies 2xx incremental 1 1
+DIMENSION sl_3xx_replies 3xx incremental 1 1
+DIMENSION sl_4xx_replies 4xx incremental 1 1
+DIMENSION sl_5xx_replies 5xx incremental 1 1
+DIMENSION sl_6xx_replies 6xx incremental 1 1
+DIMENSION sl_sent_replies sent incremental 1 1
+DIMENSION sl_sent_err_replies error incremental 1 1
+DIMENSION sl_received_ACKs ACKed incremental 1 1
+
+CHART opensips.dialogs '' "OpenSIPS Dialogs" "dialogs/s" dialogs '' line $((opensips_priority + 14)) $opensips_update_every
+DIMENSION dialog_processed_dialogs processed incremental 1 1
+DIMENSION dialog_expired_dialogs expired incremental 1 1
+DIMENSION dialog_failed_dialogs failed incremental -1 1
+
+CHART opensips.net_waiting '' "OpenSIPS Network Waiting" "kilobytes" net '' line $((opensips_priority + 15)) $opensips_update_every
 DIMENSION net_waiting_udp UDP absolute 1 1024
 DIMENSION net_waiting_tcp TCP absolute 1 1024
 
-CHART opensips.uri_checks '' "OpenSIPS URI Checks" "checks / sec" opensips '' line 20016 $opensips_update_every
-DIMENSION uri_positive_checks positive incremental 1 $((1 * opensips_update_every))
-DIMENSION uri_negative_checks negative incremental -1 $((1 * opensips_update_every))
+CHART opensips.uri_checks '' "OpenSIPS URI Checks" "checks / sec" uri '' line $((opensips_priority + 16)) $opensips_update_every
+DIMENSION uri_positive_checks positive incremental 1 1
+DIMENSION uri_negative_checks negative incremental -1 1
 
-CHART opensips.traces '' "OpenSIPS Traces" "traces / sec" opensips '' line 20017 $opensips_update_every
-DIMENSION siptrace_traced_requests requests incremental 1 $((1 * opensips_update_every))
-DIMENSION siptrace_traced_replies replies incremental -1 $((1 * opensips_update_every))
+CHART opensips.traces '' "OpenSIPS Traces" "traces / sec" traces '' line $((opensips_priority + 17)) $opensips_update_every
+DIMENSION siptrace_traced_requests requests incremental 1 1
+DIMENSION siptrace_traced_replies replies incremental -1 1
 
-CHART opensips.shmem '' "OpenSIPS Shared Memory" "kilobytes" opensips '' line 20018 $opensips_update_every
+CHART opensips.shmem '' "OpenSIPS Shared Memory" "kilobytes" mem '' line $((opensips_priority + 18)) $opensips_update_every
 DIMENSION shmem_total_size total absolute 1 1024
 DIMENSION shmem_used_size used absolute 1 1024
 DIMENSION shmem_real_used_size real_used absolute 1 1024
 DIMENSION shmem_max_used_size max_used absolute 1 1024
 DIMENSION shmem_free_size free absolute 1 1024
 
-CHART opensips.shmem_fragments '' "OpenSIPS Shared Memory Fragmentation" "fragments" opensips '' line 20019 $opensips_update_every
+CHART opensips.shmem_fragments '' "OpenSIPS Shared Memory Fragmentation" "fragments" mem '' line $((opensips_priority + 19)) $opensips_update_every
 DIMENSION shmem_fragments fragments absolute 1 1
 EOF
-       
+
        return 0
 }
 
-
 opensips_update() {
        # the first argument to this function is the microseconds since last update
        # pass this parameter to the BEGIN statement (see bellow).
@@ -218,7 +220,7 @@ opensips_update() {
        eval "local $(opensips_get_stats)"
        [ $? -ne 0 ] && return 1
 
-       [ $opensips_command_failed -eq 1 ] && echo >&2 "$PROGRAM_NAME: opensips: failed to get values, disabling." && return 1
+       [ $opensips_command_failed -eq 1 ] && error "failed to get values, disabling." && return 1
 
        # write the result of the work.
        cat <<VALUESEOF