Tclsh используется для вывода данных на локальный графитовый сервер.
set graphite1_ip 127.0.0.1
set graphite1_port 2003
set snmp_RSSI [exec snmpwalk -Os -c public -v 2c 192.168.1.20 .1.3.6.1.4.1.31926.2.1.1.19]
set splitted_RSSI [regexp -inline -all -- {\S+} $snmp_RSSI]
set radio_RSSI [lindex $splitted_RSSI 3]
puts $radio_RSSI
puts $graphite1_ip
puts $graphite1_port
exec echo "radio.RSSI $radio_RSSI" | nc $graphite1_ip $graphite1_port
Результат:
-56
127.0.0.1
2003
Тем не менее, я не смог увидеть ни данных, загруженных на графитовый сервер, ни создаваемой папки … поэтому в этом коде должно быть что-то не так, когда я делаю:
puts $radio_RSSI
цвет «$ radio_RSSI» — зеленый, а в:
exec echo "radio.RSSI $radio_RSSI" | nc $graphite1_ip $graphite1_port
цвет «radio.RSSI $ radio_RSSI» — розовый, что означает, что $ radio_RSSI не распознается как значение (-56)
Строка, которую вы отправляете в графит, содержит только имя метрики и значение метрики. Там нет отметки времени. Я только что провел быстрое тестирование на моем сервере:
echo "test.dummydata 4 `date +%s`" | nc -q0 127.0.0.1 2023
echo "test.dummydata2 4" | nc -q0 127.0.0.1 2023
Обзор /opt/graphite/storage/log/carbon-cache/carbon-cache-a/creates.log
Я мог видеть это test/dummydata.wsp
был создан, но не test/dummydata2.wsp
,
Похоже, ваши данные удаляются из-за отсутствия отметки времени.
Других решений пока нет …