Hello All
I am trying to configure telegraf to send VMware NSXT capacity data to influx DB. The JSON output from NSXT is as follows
{
“capacity_usage”: [
{
“usage_type”: “NUMBER_OF_GROUPS”,
“display_name”: “Groups”,
“current_usage_count”: 0,
“max_supported_count”: 10000,
“min_threshold_percentage”: 30,
“max_threshold_percentage”: 50,
“current_usage_percentage”: 0,
“severity”: “INFO”
},
{
“usage_type”: “NUMBER_OF_FIREWALL_SECTIONS”,
“display_name”: “System-wide Firewall Sections”,
“current_usage_count”: 2,
“max_supported_count”: 10000,
“min_threshold_percentage”: 70,
“max_threshold_percentage”: 100,
“current_usage_percentage”: 0.02,
“severity”: “INFO”
}
],
“meta_info”: {
“last_updated_timestamp”: 1589228467895,
“min_global_threshold_percentage”: 70,
“max_global_threshold_percentage”: 100
},
“unreported_usage_types”: ,
“_protection”: “NOT_PROTECTED”
}
The timestamp is a unix_ms under meta_info.last_updated_timestamp
I am using the following telegraf configuration
[[inputs.http]]
#URL for NSXT in JSON format
urls = [
“https://abc/policy/api/v1/infra/capacity/dashboard/usage”
]
HTTP method
method = “GET”
Optional HTTP headers
headers = {“X-Special-Header” = “Special-Value”}
HTTP entity-body to send with POST/PUT requests.
body = “”
HTTP Content-Encoding for write request body, can be set to “gzip” to
compress body or “identity” to apply no encoding.
content_encoding = “identity”
Optional file with Bearer token
file content is added as an Authorization header
bearer_token = “/path/to/file”
#Optional HTTP Basic Auth Credentials
username = “admin”
password = “abc”
#Overwrite measurement name from default http
to citibikenyc
name_override = “nsxt”
#Exclude url and host items from tags
tagexclude = [“url”, “host”]
#Data from HTTP in JSON format
data_format = “json”
#Parse stationBeanList
array only
#json_query = “capacity_usage”
#Set station metadata as tags
tag_keys = [“usage_type”, “display_name”]
#Do not include station landmark data as fields
fielddrop = [“landMark”]
#JSON values to set as string fields
json_string_fields = [“current_usage_count”, “max_supported_count”, “min_threshold_percentage”, “max_threshold_percentage”, “current_usage_percentage”,“last_updated_timestamp”]
#Latest station information reported at lastCommunicationTime
json_time_key = “meta_info.last_updated_timestamp”
#Time is reported in Golang “reference time” format
json_time_format = “unix_ms”
When I run telegraf -config ~/tel.conf -test -debug=true
I get an error JSON time key could not be found. What am i doing wrong ? any pointers will help