Add --properties
option to seqcli ingest
and seqcli log
#354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently,
seqcli log
andseqcli ingest
allow additional properties to be specified in-p Name=Value
format:This relies on sniffing the type of the property value to construct string, numeric, or Boolean property values in a reasonably intuitive manner.
However, there's no way to override the type used for the representation of a value, and no way to specify complex values such as
service: {name: 'Test'}
ortags: [1, 2, 3]
.This PR is a proof-of-concept showing how we could use Seq.Syntax to construct strongly-typed property values:
Each member in the result of evaluating
--properties
is added to the log event. A tricky "object spread" is used behind the scenes so that in theseqcli ingest
case, properties on the original event being ingested can be removed with{someProperty: undefined()}
.Posting this here as a spike; some more work is needed on tests, and there's a bit of an unpleasant split in
seqcli log
due to the current implementation no longer relying onLogEvent
behind the scenes.