Skip to content

JSON Nested Key Tags #6437

@joshmarvel

Description

@joshmarvel

Relevant telegraf.conf:

[[inputs.exec]]
        command = "/somedirectory/my_script.py"
        timeout = "10s"
        data_format = "json"
        tag_keys = ["hostname","outputname","busname","alarmname"]
        interval = "10s"
        name_suffix = "_myscript"

System info:

Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic

Telegraf 1.12.1 (git: HEAD 8de4116)

Steps to reproduce:

  1. my_script.py returns json:
[{
	"hostname": "testhost1",
	"systemVoltage": -54.1,
	"systemCurrent": -3.8,
	"tables": [{
		"outputnumber": 0.0,
		"outputname": "1A-CC01-PC01",
		"outputcurrent": -2.7,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 1.0,
		"outputname": "2A-CC01-KA01",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 2.0,
		"outputname": "3A-CC01-CC02",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 3.0,
		"outputname": "4A",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 4.0,
		"outputname": "5A",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 5.0,
		"outputname": "6A-CC01-88-INV01-A",
		"outputcurrent": -1.1,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 6.0,
		"outputname": "1B-CC01-PC01",
		"outputcurrent": -2.8,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 7.0,
		"outputname": "2B-CC01-KA01",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 8.0,
		"outputname": "3B-CC01-CC02",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 9.0,
		"outputname": "4B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 10.0,
		"outputname": "5B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 11.0,
		"outputname": "6B-CC01-88-INV01-B",
		"outputcurrent": -1.3,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"busnumber": 0.0,
		"busname": "A--48A",
		"busvoltage": -54.1,
		"buscurrent": -3.8
	}, {
		"busnumber": 1.0,
		"busname": "B--48B",
		"busvoltage": -53.9,
		"buscurrent": -4.2
	}, {
		"alarmnumber": 0.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 1.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 2.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 3.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 4.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}]
}, {
	"hostname": "testhost2",
	"systemVoltage": 27.5,
	"systemCurrent": 9.5,
	"tables": [{
		"outputnumber": 0.0,
		"outputname": "1A",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 1.0,
		"outputname": "2A",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 2.0,
		"outputname": "3A",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 3.0,
		"outputname": "4A",
		"outputcurrent": 0.6,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 4.0,
		"outputname": "5A",
		"outputcurrent": 6.5,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 5.0,
		"outputname": "6A",
		"outputcurrent": 0.0,
		"outputfusestatus": 2.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 6.0,
		"outputname": "1B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 7.0,
		"outputname": "2B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 8.0,
		"outputname": "3B",
		"outputcurrent": 0.0,
		"outputfusestatus": 2.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 9.0,
		"outputname": "4B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 10.0,
		"outputname": "5B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"outputnumber": 11.0,
		"outputname": "6B",
		"outputcurrent": 0.0,
		"outputfusestatus": 1.0,
		"outputenable": 1.0
	}, {
		"busnumber": 0.0,
		"busname": "A-24V",
		"busvoltage": 27.6,
		"buscurrent": 0.6
	}, {
		"busnumber": 1.0,
		"busname": "B-12V",
		"busvoltage": 13.8,
		"buscurrent": 0.0
	}, {
		"alarmnumber": 0.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 1.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 2.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 3.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}, {
		"alarmnumber": 4.0,
		"alarmname": "\u0000",
		"alarmstatus": 1.0
	}]
}]

Expected behavior:

Each output, bus and alarm would be tagged accordingly with tagkey_subname = value, etc.

Actual behavior:

> exec_myscript,host=default,hostname=testhost1 systemCurrent=-3.8,systemVoltage=-54.1,tables_0_outputcurrent=-2.7,tables_0_outputenable=1,tables_0_outputfusestatus=1,tables_0_outputnumber=0,tables_10_outputcurrent=0,tables_10_outputenable=1,tables_10_outputfusestatus=1,tables_10_outputnumber=10,tables_11_outputcurrent=-1.3,tables_11_outputenable=1,tables_11_outputfusestatus=1,tables_11_outputnumber=11,tables_12_buscurrent=-3.7,tables_12_busnumber=0,tables_12_busvoltage=-54.1,tables_13_buscurrent=-4.1,tables_13_busnumber=1,tables_13_busvoltage=-53.9,tables_14_alarmnumber=0,tables_14_alarmstatus=1,tables_15_alarmnumber=1,tables_15_alarmstatus=1,tables_16_alarmnumber=2,tables_16_alarmstatus=1,tables_17_alarmnumber=3,tables_17_alarmstatus=1,tables_18_alarmnumber=4,tables_18_alarmstatus=1,tables_1_outputcurrent=0,tables_1_outputenable=1,tables_1_outputfusestatus=1,tables_1_outputnumber=1,tables_2_outputcurrent=0,tables_2_outputenable=1,tables_2_outputfusestatus=1,tables_2_outputnumber=2,tables_3_outputcurrent=0,tables_3_outputenable=1,tables_3_outputfusestatus=1,tables_3_outputnumber=3,tables_4_outputcurrent=0,tables_4_outputenable=1,tables_4_outputfusestatus=1,tables_4_outputnumber=4,tables_5_outputcurrent=-1.1,tables_5_outputenable=1,tables_5_outputfusestatus=1,tables_5_outputnumber=5,tables_6_outputcurrent=-2.8,tables_6_outputenable=1,tables_6_outputfusestatus=1,tables_6_outputnumber=6,tables_7_outputcurrent=0,tables_7_outputenable=1,tables_7_outputfusestatus=1,tables_7_outputnumber=7,tables_8_outputcurrent=0,tables_8_outputenable=1,tables_8_outputfusestatus=1,tables_8_outputnumber=8,tables_9_outputcurrent=0,tables_9_outputenable=1,tables_9_outputfusestatus=1,tables_9_outputnumber=9 1569319783000000000
> exec_myscript,host=default,hostname=testhost2 systemCurrent=9.6,systemVoltage=27.5,tables_0_outputcurrent=0,tables_0_outputenable=1,tables_0_outputfusestatus=1,tables_0_outputnumber=0,tables_10_outputcurrent=0,tables_10_outputenable=1,tables_10_outputfusestatus=1,tables_10_outputnumber=10,tables_11_outputcurrent=0,tables_11_outputenable=1,tables_11_outputfusestatus=1,tables_11_outputnumber=11,tables_12_buscurrent=9.6,tables_12_busnumber=0,tables_12_busvoltage=27.5,tables_13_buscurrent=0,tables_13_busnumber=1,tables_13_busvoltage=13.8,tables_14_alarmnumber=0,tables_14_alarmstatus=1,tables_15_alarmnumber=1,tables_15_alarmstatus=1,tables_16_alarmnumber=2,tables_16_alarmstatus=1,tables_17_alarmnumber=3,tables_17_alarmstatus=1,tables_18_alarmnumber=4,tables_18_alarmstatus=1,tables_1_outputcurrent=0,tables_1_outputenable=1,tables_1_outputfusestatus=1,tables_1_outputnumber=1,tables_2_outputcurrent=0,tables_2_outputenable=1,tables_2_outputfusestatus=1,tables_2_outputnumber=2,tables_3_outputcurrent=0,tables_3_outputenable=1,tables_3_outputfusestatus=1,tables_3_outputnumber=3,tables_4_outputcurrent=9.6,tables_4_outputenable=1,tables_4_outputfusestatus=1,tables_4_outputnumber=4,tables_5_outputcurrent=0,tables_5_outputenable=1,tables_5_outputfusestatus=2,tables_5_outputnumber=5,tables_6_outputcurrent=0,tables_6_outputenable=1,tables_6_outputfusestatus=1,tables_6_outputnumber=6,tables_7_outputcurrent=0,tables_7_outputenable=1,tables_7_outputfusestatus=1,tables_7_outputnumber=7,tables_8_outputcurrent=0,tables_8_outputenable=1,tables_8_outputfusestatus=2,tables_8_outputnumber=8,tables_9_outputcurrent=0,tables_9_outputenable=1,tables_9_outputfusestatus=1,tables_9_outputnumber=9 1569319783000000000

Additional info:

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/jsonjson and json_v2 parser/serialiser relatedfeature requestRequests for new plugin and for new features to existing plugins

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions