Skip to content

Cherry-pick #22634 to 7.x: Avoid sending non-numeric floats in cloud foundry integrations#22750

Merged
jsoriano merged 1 commit intoelastic:7.xfrom
jsoriano:backport_22634_7.x
Nov 25, 2020
Merged

Cherry-pick #22634 to 7.x: Avoid sending non-numeric floats in cloud foundry integrations#22750
jsoriano merged 1 commit intoelastic:7.xfrom
jsoriano:backport_22634_7.x

Conversation

@jsoriano
Copy link
Copy Markdown
Member

@jsoriano jsoriano commented Nov 25, 2020

Cherry-pick of PR #22634 to 7.x branch. Original message:

What does this PR do?

Cloud Foundry integrations are sending some values as they are received
from the Firehose, some of these values can be floats with non-numeric
values (NaN/Inf), that are not supported by JSON and Elasticsearch.

I haven't been able to reproduce this, but there are only two places
where Metricbeat can receive non-numeric floats.

Add defensive code to avoid sending these values to the outputs:

  • In the container metricset, remove cpu percentages with non-numeric values.
  • In the value metricset, drop whole events with non-numeric values.

Add some helpers and mocks to be able to test the module with specific envelopes.

Why is it important?

Sending non-numeric float values to some outputs is problematic.

There were only integration tests for this module, these tests are not executed in CI yet.
With the added helpers we can test the module without needing a CF environment.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Related issues

…ic#22634)

Cloud Foundry integrations are sending some values as they are received
from the Firehose, some of these values can be floats with non-numeric
values (NaN/Inf), that are not supported by JSON and Elasticsearch.

Add defensive code to avoid sending these values to the outputs.

Also, add unit tests using mocked cloud foundry hubs.

(cherry picked from commit 0619788)
@jsoriano jsoriano added [zube]: In Review backport Team:Platforms Label for the Integrations - Platforms team labels Nov 25, 2020
@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Nov 25, 2020
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/integrations-platforms (Team:Platforms)

@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Nov 25, 2020
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: [Pull request #22750 opened]

  • Start Time: 2020-11-25T10:24:49.163+0000

  • Duration: 45 min 19 sec

Test stats 🧪

Test Results
Failed 0
Passed 4932
Skipped 356
Total 5288

Steps errors 2

Expand to view the steps failures

Terraform Apply on x-pack/metricbeat/module/aws

  • Took 0 min 14 sec . View more details on here

Terraform Apply on x-pack/metricbeat/module/aws

  • Took 0 min 15 sec . View more details on here

💚 Flaky test report

Tests succeeded.

Expand to view the summary

Test stats 🧪

Test Results
Failed 0
Passed 4932
Skipped 356
Total 5288

@jsoriano jsoriano merged commit e268278 into elastic:7.x Nov 25, 2020
@jsoriano jsoriano deleted the backport_22634_7.x branch November 25, 2020 15:28
@zube zube bot removed the [zube]: Done label Feb 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Team:Platforms Label for the Integrations - Platforms team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants