# JSON Configuration Example
# ------------------------------------------------------------------------------
# A simple example that parses incoming data as JSON. This example also
# demonstrated wrapped JSON, showing that you can chain VRL expressions
# together to quickly traverse nested objects with simple path notation.

data_dir: "/var/lib/vector"

# Ingest data
# Example: {"message": "{\"parent\": \"{\\\"child\\\": \\\"value2\\\"}\"}"}
# Docs: https://vector.dev/docs/reference/configuration/sources/file
sources:
  logs:
    type: "file"
    include: ["/var/log/*.log"]
    ignore_older_secs: 86400 # 1 day

# Parse the data as JSON
# Docs: https://vector.dev/docs/reference/configuration/transforms/remap
transforms:
  parse_json:
    inputs: ["logs"]
    type: "remap"
    drop_on_error: false
    source: |
      message = del(.message)
      . |= object!(parse_json!(string!(message)))

      parent = del(.parent)
      . |= object!(parse_json!(string!(parent)))

      child = del(.child)
      . |= object!(parse_json!(string!(child)))

# Print the data to STDOUT for inspection
# Docs: https://vector.dev/docs/reference/configuration/sinks/console
sinks:
  out:
    inputs: ["parse_json"]
    type: "console"
    encoding:
      codec: "json"
