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 |