You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(botocore): keep newlines in json data for kinesis records [backport #4700 to 1.6] (#4819)
## Description
Backports #4700 to 1.6.
During our serialization & de-serialization of kinesis records, any `\n`
at the end of the record is stripped by the json library. Customer
pipelines rely on this `\n` delimiter to distinguish between different
records. This change appends the line break to the end of the record
string if it was originally there.
## Checklist
- [ ] Followed the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/contributing.html#Release-Note-Guidelines)
when writing a release note.
- [ ] Add additional sections for `feat` and `fix` pull requests.
- [ ] [Library
documentation](https://github.com/DataDog/dd-trace-py/tree/1.x/docs)
and/or [Datadog's documentation
site](https://github.com/DataDog/documentation/) is updated. Link to doc
PR in description.
<!-- Copy and paste the relevant snippet based on the type of pull
request -->
<!-- START feat -->
## Motivation
<!-- Expand on why the change is required, include relevant context for
reviewers -->
Add support for Databricks which relies on the `\n` delimiter to be
present at the end of the record. Look at the related issue for more
details.
## Design
<!-- Include benefits from the change as well as possible drawbacks and
trade-offs -->
If the incoming record has a `\n` at the end of the string, we add the
`\n` into the string post serialization since it was stripped during the
de-serialization process by the json library.
## Testing strategy
<!-- Describe the automated tests and/or the steps for manual testing.
<!-- END feat -->
- two unit tests have been added
```
pytest -k test_kinesis_put_records_newline_base64_trace_injection tests/contrib/botocore/test.py
pytest -k test_kinesis_put_records_newline_json_trace_injection tests/contrib/botocore/test.py
```
<!-- START fix -->
## Relevant issue(s)
<!-- Link the pull request to any issues related to the fix. Use
keywords for links to automate closing the issues once the pull request
is merged. -->
Fixes#4317
## Testing strategy
<!-- Describe any added regression tests and/or the manual testing
performed. -->
<!-- END fix -->
## Reviewer Checklist
- [x] Title is accurate.
- [x] Description motivates each change.
- [x] No unnecessary changes were introduced in this PR.
- [x] Avoid breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes unless absolutely necessary.
- [x] Tests provided or description of manual testing performed is
included in the code or PR.
- [x] Release note has been added and follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/contributing.html#Release-Note-Guidelines),
or else `changelog/no-changelog` label added.
- [x] All relevant GitHub issues are correctly linked.
- [x] Backports are identified and tagged with Mergifyio.
Co-authored-by: mergify[bot]
<37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Brett Langdon <[email protected]>
Co-authored-by: Tahir H. Butt <[email protected]>
Co-authored-by: Yun Kim <[email protected]>
Co-authored-by: Munir Abdinur <[email protected]>
## Description
<!-- Briefly describe the change and why it was required. -->
<!-- If this is a breaking change, explain why it is necessary. Breaking
changes must append `!` after the type/scope. See
https://ddtrace.readthedocs.io/en/stable/contributing.html for more
details. -->
## Checklist
- [ ] Followed the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/contributing.html#Release-Note-Guidelines)
when writing a release note.
- [ ] Add additional sections for `feat` and `fix` pull requests.
- [ ] [Library
documentation](https://github.com/DataDog/dd-trace-py/tree/1.x/docs)
and/or [Datadog's documentation
site](https://github.com/DataDog/documentation/) is updated. Link to doc
PR in description.
<!-- Copy and paste the relevant snippet based on the type of pull
request -->
<!-- START feat -->
## Motivation
<!-- Expand on why the change is required, include relevant context for
reviewers -->
## Design
<!-- Include benefits from the change as well as possible drawbacks and
trade-offs -->
## Testing strategy
<!-- Describe the automated tests and/or the steps for manual testing.
<!-- END feat -->
<!-- START fix -->
## Relevant issue(s)
<!-- Link the pull request to any issues related to the fix. Use
keywords for links to automate closing the issues once the pull request
is merged. -->
## Testing strategy
<!-- Describe any added regression tests and/or the manual testing
performed. -->
<!-- END fix -->
## Reviewer Checklist
- [ ] Title is accurate.
- [ ] Description motivates each change.
- [ ] No unnecessary changes were introduced in this PR.
- [ ] Avoid breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes unless absolutely necessary.
- [ ] Tests provided or description of manual testing performed is
included in the code or PR.
- [ ] Release note has been added and follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/contributing.html#Release-Note-Guidelines),
or else `changelog/no-changelog` label added.
- [ ] All relevant GitHub issues are correctly linked.
- [ ] Backports are identified and tagged with Mergifyio.
Co-authored-by: Harvinder Ghotra <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Brett Langdon <[email protected]>
Co-authored-by: Tahir H. Butt <[email protected]>
Co-authored-by: Munir Abdinur <[email protected]>
botocore: Before this change, the botocore integration stripped newlines from the JSON string encoded in the data blob of Amazon Kinesis records. This change includes a terminating newline if it is present in the decoded data.
0 commit comments