feat!(gcp_stackdriver_logs sink): Support more fields #22470
+25
−14
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.
draft: I'm not sure this is the right approach, as its a breaking change and doesn't follow the pattern of other fields, like
severity key
. However, using a remap to get events in the right format seems flexible than having a bunch of 'xx key' config options, for which you still need a remap to provide a default/fallback.If the approach is ok I'll add more fields, fix up the tests and the changelog.
Summary
The LogEntry1 type supports a lot more fields than are currently supported by the sink. This change adds support for labels, but more fields can be added the same way.
Additionally this removes the timestamp from the message, if set, instead of having it in both the 'timestamp' field, as well as part of the message payload.
It also changes the payload type from json to text if the message is only a string. This makes the GCP search queries simpler, e.g.
textPayload: "some message" instead of
jsonPayload.msg: "some message".Change Type
Is this a breaking change?
How did you test this PR?
Sending logs to GCP
Does this PR include user facing changes?
Checklist
make check-all
is a good command to run locally. This check isdefined here. Some of these
checks might not be relevant to your PR. For Rust changes, at the very least you should run:
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo nextest run --workspace
(alternatively, you can runcargo test --all
)Cargo.lock
), pleaserun
dd-rust-license-tool write
to regenerate the license inventory and commit the changes (if any). More details here.References