Eu quero inserir alguns dados personalizados em influxdb via telegraf (para posterior visualização com grafana).
Meu agente gera as métricas como
# /tmp/temp.pl
temperature,host=ludwig.lan ada0=51.0,ada1=48.0,tz0=27.9,tz1=29.9,cpu0=38.0,cpu1=39.0,cpu2=38.0,cpu3=38.0
Este agente é chamado de telegraf com uma definição de entrada como
[[inputs.exec]]
commands = [ "/tmp/temp.pl" ]
timeout = "5s"
name_suffix = "_influx"
data_format = "influx"
Basicamente funciona, mas apenas as métricas tz * e cpu * estão chegando ao influxdb, mas as métricas ada * agora aparecem:
name: temperature_influx
time cpu0 cpu1 cpu2 cpu3 host tz0 tz1
---- ---- ---- ---- ---- ---- --- ---
1518437880000000000 42 44 40 44 ludwig.lan 27.9 29.9
1518437890000000000 43 44 44 38 ludwig.lan 27.9 29.9
1518437900000000000 42 46 39 38 ludwig.lan 27.9 29.9
1518437910000000000 41 41 42 44 ludwig.lan 27.9 29.9
Eu posso reproduzir o mesmo resultado estranho ao reimplementar o agente para usar o formato JSON.
Eu tentei qualquer coisa bizarra que eu pudesse pensar em enganar o telegraf / influxdb para fazer com que funcionasse como renomear as colunas ada para outra coisa ou até mesmo escrever as datas ada * nos campos cpu *, mas como se houvesse algum tipo de pecado original Eu não posso fazer os valores ada * aparecerem no influxdb.
Como se os dados em si estivessem estragados por estranhos caracteres UTF8 invisíveis, mas os dados são lidos, analisados e formatados por um script perl, isso deve ser algum saneamento, mesmo que a saída smartctl seja estranha.
Eu devo estar completamente faltando algo óbvio superstupid, qualquer sugestão bem-vinda.
Tags monitoring