O arquivo de gráficos munin agregado está vazio

1

Não consigo agregar alguns gráficos personalizados que escrevi. Eu sei que a agregação é funcional, porque eu sou capaz de agregar plugins padrão, mas não tenho certeza do que há de errado com o meu.

munin.conf:

[myapp;web-servers;0-1]
        address 1.2.3.4
        use_node_name yes
[myapp;web-servers;0-2]
        address 5.6.7.8
        use_node_name yes

[myapp;web-servers;Aggregated]
        update no

#does not work:
    node_aggregate.graph_args --base 1000 -l 0
    node_aggregate.graph_title Aggregated connects
    node_aggregate.conns.label conns
    node_aggregate.conns.sum myapp;web-servers;0-1:nodejs_numberOfConnects.conns myapp;web-servers;0-2:nodejs_numberOfConnects.conns


#works:
    node_aggregate.graph_title Aggregated cpu
    node_aggregate.cpu.label cpu.user
    node_aggregate.cpu.sum myapp;web-servers;0-1:cpu.user myapp;web-servers;0-2:cpu.user

Meus plugins são assim:

if [[ "$PARAM" == "numberOfConnects" ]]; then
        echo "graph_title Active Connects";
        echo "graph_info Active Connects";
        echo "graph_vlabel Connections";
        echo "$PARAM.label conns";
        echo "$PARAM.type GAUGE";
        echo "$PARAM.colour 0927EB"
        exit 0;
elif ...
fi
echo $PARAM.value 15

Para fins de teste, posso codificar "$ PARAM.value 15". Eu posso então fazer com que munin-run --servicedir /etc/munin/plugins nodejs_numberOfConnects retorne numberOfConnects.value 15

E o erro que recebo é:

==> /var/log/munin/munin-graph.log <==
2016/03/15 13:57:01 [ERROR] filename is empty for $VAR1 = {
  '#%#name' => 'z1_0',
  'cdef' => 'z1_0,UN,0,z1_0,IF',
  'graph' => 'no',
  'label' => 'z1_0'
};
, myapp;web-servers;0-1:nodejs_numberOfConnects.conns

2016/03/15 13:57:01 [ERROR] filename is empty for $VAR1 = {
  '#%#name' => 'z1_1',
  'cdef' => 'z1_1,UN,0,z1_1,IF,z1_0,ADDNAN',
  'colour' => undef,
  'draw' => undef,
  'graph' => 'yes',
  'label' => 'conns'
};
, myapp;web-servers;0-2:nodejs_numberOfConnects.conns
    
por w00t 15.03.2016 / 14:16

2 respostas

0

Você está tentando passar conns como o valor exportado, mas isso é numberOfConnects

node_aggregate.nodejs_numberOfConnects.label conns(or whatever)
node_aggregate.nodejs_numberOfConnects.sum \ 
    myapp;web-servers;0-1:nodejs_numberOfConnects.numberOfConnects \ 
    myapp;web-servers;0-2:nodejs_numberOfConnects.numberOfConnects
    
por 24.03.2016 / 18:34
1

Depois de muita depuração, percebi que estava usando incorretamente o nome do label em vez do nome do value .

node_aggregate.conns.sum myapp;web-servers;0-1:nodejs_numberOfConnects.conns myapp;web-servers;0-2:nodejs_numberOfConnects.conns

precisa ser

node_aggregate.conns.sum myapp;web-servers;0-1:nodejs_numberOfConnects.numberOfConnects myapp;web-servers;0-2:nodejs_numberOfConnects.numberOfConnects

por causa de

if [[ "$PARAM" == "numberOfConnects" ]]; then
[...]
echo $PARAM.value 15

Em outras palavras, no meu caso, a linha do servidor é igual a:
$arbitraryname1.arbitraryname2.sum $clientname;$hostgroup;$hostname:$pluginname.$valuename

Também fiquei muito impressionado com o exemplo cpu , que usa a seguinte sintaxe: myapp;web-servers;0-1:cpu.user , mas isso porque o nome do valor coincide com o nome do rótulo !!

    
por 24.03.2016 / 18:56

Tags