Extraction
Config DB
needs to extract few important pieces of information from the config. For example: to know the id of a config item it needs to extract the id from the scraped config. For this, it makes heavy use of JSONPath expression.
JSONPath
A JSONPath expression, similar to XPath
for XML, is used to extract data from a JSON structure by specifying a path to an element(s) in a JSON structure.
Example
Below is an example of the JSONPath expression in use for the File scraper
file:
- type: $.Config.InstanceType
id: $.Config.InstanceId
path:
- my-config.json
Suppose that my-config.json
file referenced in the path above contains the following JSON structure
{
"Config": {
"InstanceId": "i-1234567890abcdef0",
"InstanceType": "t2.micro"
}
}
Then, the type and id of the config item will be t2.micro
and i-1234567890abcdef0
respectively.
Use cases
Some of the common use cases of JSONPath expression are
Field | Description |
---|---|
id |
A static value or JSONPath expression to use as the ID for the resource. |
name |
A static value or JSONPath expression to use as the Name for the resource. Default value is the id . |
items |
A JSONPath expression to use to extract individual items from the resource |
type |
A static value or JSONPath expression to use as the type for the resource. |
timestampFormat |
TimestampFormat is a Go time format string used to parse timestamps in createFields and DeletedFields. If not specified, the default is RFC3339 . |
createFields |
CreateFields is a list of JSONPath expression used to identify the created time of the config. If multiple fields are specified, the first non-empty value will be used |
deleteFields |
DeleteFields is a JSONPath expression used to identify the deleted time of the config. If multiple fields are specified, the first non-empty value will be used |