fluent-plugin-json-schema-filter
Fluentd filter plugin to validate records against a json-schema
Installation
Use RubyGems:
gem install fluent-plugin-json-schema-filter
Configuration
Discard Example:
<match foo.**>
@type json_schema
mode discard
schema_file /some/path.json #defaults to /etc/td-agent/schema.json
</match>
will result in records that do not validate being completely discarded.
Isolate Example:
<match foo.**>
@type json_schema
mode isolate
schema_file ...
isolate_tag_prefix invalid
add_validation_error true # results in a validation-error key being added to the record
</match>
will result in invalid records being tagged as "invalid.". In the example above, invalid records would be invalid.foo.**
Enrich Example
<match foo.**>
@type json_schema
mode enrich
schema_file ...
enrich_valid {
'valid': 'This is a great document'
} # default valid: true
enrich_invalid {
'invalid': 'You suck at the JSON'
} # default valid: false
add_validation_error true # results in a validation-error key being added to the record
</match>
will result in messages gaining either the enrich_valid or enrich_invalid depending on how the record validates.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request