Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated --template and --index-policy flags #28870

Merged
merged 4 commits into from
Nov 23, 2021

Conversation

kvch
Copy link
Contributor

@kvch kvch commented Nov 8, 2021

What does this PR do?

This PR removes the deprecate --template and --index-policy flags from setup subcommand of Beats. Users should load template, ILM policy, etc. using --index-management flag.

The E2E tests are adjusted to use --index-management instead of the old flags.

Why is it important?

Deprecated flags are cleaned up from our user interface.

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.

@kvch kvch added backport-v8.0.0 Automated backport with mergify Team:Elastic-Agent-Data-Plane Label for the Agent Data Plane team labels Nov 8, 2021
@kvch kvch requested a review from ruflin November 8, 2021 11:55
@kvch kvch requested a review from a team as a code owner November 8, 2021 11:55
@elasticmachine
Copy link
Collaborator

Pinging @elastic/elastic-agent-data-plane (Team:Elastic-Agent-Data-Plane)

@botelastic botelastic bot added needs_team Indicates that the issue/PR needs a Team:* label and removed needs_team Indicates that the issue/PR needs a Team:* label labels Nov 8, 2021
@botelastic
Copy link

botelastic bot commented Nov 8, 2021

This pull request doesn't have a Team:<team> label.

@elasticmachine
Copy link
Collaborator

elasticmachine commented Nov 8, 2021

💔 Tests Failed

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

Expand to view the summary

Build stats

  • Start Time: 2021-11-22T15:20:22.705+0000

  • Duration: 114 min 10 sec

  • Commit: 588f1f8

Test stats 🧪

Test Results
Failed 1
Passed 19964
Skipped 1360
Total 21325

Test errors 1

Expand to view the tests failures

Build&Test / metricbeat-pythonIntegTest / test_metricsets_0_stats – metricbeat.tests.system.test_beat.Test
    Expand to view the error details

     Exception: Key 'beat.stats.beat.uuid' found in event is not documented! 
    

    Expand to view the stacktrace

     a = (<test_beat.Test testMethod=test_metricsets_0_stats>,)
    
        @wraps(func)
        def standalone_func(*a):
    >       return func(*(a + p.args), **p.kwargs)
    
    ../build/ve/docker/lib/python3.9/site-packages/parameterized/parameterized.py:518: 
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    tests/system/test_beat.py:21: in test_metricsets
        self.check_metricset("beat", metricset, [self.compose_host("metricbeat")], self.FIELDS + ["service"])
    tests/system/metricbeat.py:107: in check_metricset
        self.assert_fields_are_documented(evt)
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    
    self = <test_beat.Test testMethod=test_metricsets_0_stats>
    evt = {'@timestamp': '2021-11-22T16:52:40.320Z', 'agent': {'ephemeral_id': 'f31276fa-89a2-4fcb-b7be-c95263377cb8', 'id': 'ee...limit': {'hard': 1048576, 'soft': 1048576}, 'open': 11}, ...}, 'type': 'metricbeat'}, 'ecs': {'version': '8.0.0'}, ...}
    
        def assert_fields_are_documented(self, evt):
            """
            Assert that all keys present in evt are documented in fields.yml.
            This reads from the global fields.yml, means `make collect` has to be run before the check.
            """
            expected_fields, dict_fields, aliases = self.load_fields()
            flat = self.flatten_object(evt, dict_fields)
        
            def field_pattern_match(pattern, key):
                pattern_fields = pattern.split(".")
                key_fields = key.split(".")
                if len(pattern_fields) != len(key_fields):
                    return False
                for i in range(len(pattern_fields)):
                    if pattern_fields[i] == "*":
                        continue
                    if pattern_fields[i] != key_fields[i]:
                        return False
                return True
        
            def is_documented(key, docs):
                if key in docs:
                    return True
                for pattern in (f for f in docs if "*" in f):
                    if field_pattern_match(pattern, key):
                        return True
                return False
        
            for key in flat.keys():
                metaKey = key.startswith('@metadata.')
                # Range keys as used in 'date_range' etc will not have docs of course
                isRangeKey = key.split('.')[-1] in ['gte', 'gt', 'lte', 'lt']
                if not(is_documented(key, expected_fields) or metaKey or isRangeKey):
    >               raise Exception("Key '{}' found in event is not documented!".format(key))
    E               Exception: Key 'beat.stats.beat.uuid' found in event is not documented!
    
    ../libbeat/tests/system/beat/beat.py:732: Exception 
    

Steps errors 4

Expand to view the steps failures

metricbeat-pythonIntegTest - mage pythonIntegTest
  • Took 33 min 26 sec . View more details here
  • Description: mage pythonIntegTest
metricbeat-pythonIntegTest - mage pythonIntegTest
  • Took 22 min 20 sec . View more details here
  • Description: mage pythonIntegTest
metricbeat-pythonIntegTest - mage pythonIntegTest
  • Took 22 min 16 sec . View more details here
  • Description: mage pythonIntegTest
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: Error 'hudson.AbortException: script returned exit code 1'

🐛 Flaky test report

❕ There are test failures but not known flaky tests.

Expand to view the summary

Genuine test errors 1

💔 There are test failures but not known flaky tests, most likely a genuine test failure.

  • Name: Build&Test / metricbeat-pythonIntegTest / test_metricsets_0_stats – metricbeat.tests.system.test_beat.Test

🤖 GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

Copy link
Member

@ruflin ruflin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change LGTM.

Is my understanding correct, that this means if someone uses setup, template and ilm policy will always be both loaded? And if the ilm policy is already there it will not be overwritten? Same for the template?

@mergify
Copy link
Contributor

mergify bot commented Nov 22, 2021

This pull request is now in conflicts. Could you fix it? 🙏
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

git fetch upstream
git checkout -b remove-libbeat-deprecated-setup-flags upstream/remove-libbeat-deprecated-setup-flags
git merge upstream/master
git push upstream remove-libbeat-deprecated-setup-flags

@kvch kvch merged commit 0e18dbe into elastic:master Nov 23, 2021
mergify bot pushed a commit that referenced this pull request Nov 23, 2021
kvch added a commit that referenced this pull request Nov 23, 2021
…29092)

(cherry picked from commit 0e18dbe)

Co-authored-by: Noémi Ványi <kvch@users.noreply.github.com>
v1v added a commit to v1v/beats that referenced this pull request Nov 24, 2021
…ws-on-file-changes

* upstream/master:
  override host on statsd metricset (elastic#29103)
  Skip config check in autodiscover for duplicated configurations (elastic#29048)
  Change "filebeat.config.modules.enabled" to "true" (elastic#28769)
  Remove deprecated spool queue from Beats (elastic#28869)
  Add `beat` field back to beat.stats (elastic#29094)
  Revert "Move labels and annotations under kubernetes.namespace. (elastic#27917)" (elastic#29069)
  heartbeat: remove w2008 in the CI (elastic#29093)
  Remove deprecated `--template` and `--index-policy` flags (elastic#28870)
  Fix parsing of apache trace log levels (elastic#28717)
  [Elastic-Agent] IUse itnernal port for local fleet server (elastic#28993)
  [Heartbeat] Log error on dupe monitor ID instead of strict req (elastic#29041)
  Enable pprof for elastic-agent and beats (elastic#28983)
@tetianakravchenko tetianakravchenko mentioned this pull request Mar 28, 2022
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-v8.0.0 Automated backport with mergify Team:Elastic-Agent-Data-Plane Label for the Agent Data Plane team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants