Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into feature/2.0-skip-…
Browse files Browse the repository at this point in the history
…ci-build-label-support

* upstream/master:
  [CI] Change x-pack/auditbeat build events (comments, labels) (elastic#21463)
  [CI] changeset from elastic#20603 was not added to CI2.0 (elastic#21464)
  Add new log file reader for filestream input (elastic#21450)
  [CI] Send slack message with build status (elastic#21428)
  Remove duplicated sources url in dependencies report (elastic#21462)
  Add implementation of FSWatcher and FSScanner for filestream (elastic#21444)
  [Ingest Manager] Split index restrictions into type,dataset, namespace parts (elastic#21406)
  Update Filebeat module expected logs files (elastic#21454)
  Edit SQL module docs and fix broken doc structure (elastic#21233)
  [Ingest Manager] Send snapshot flag together with metadata (elastic#21285)
  Revert "[JJBB] Set shallow cloning to 10 (elastic#21409)" (elastic#21447)
  [JJBB] Use reference repo for fast checkouts (elastic#21410)
  Add initial skeleton of filestream input (elastic#21427)
  Initial spec file for apm-server (elastic#21225)
  [Ingest Manager] Upgrade Action: make source URI optional (elastic#21372)
  Add field limit check for AWS Cloudtrail flattened fields (elastic#21388)
  [Winlogbeat] Move winlogbeat javascript processor to libbeat (elastic#21402)
  ci: pipeline to generate the changelog (elastic#21426)
  • Loading branch information
v1v committed Oct 2, 2020
2 parents e4cd0be + 35a76df commit 7c218ea
Show file tree
Hide file tree
Showing 175 changed files with 6,486 additions and 2,241 deletions.
2 changes: 1 addition & 1 deletion .ci/jobs/apm-beats-update.yml
Expand Up @@ -48,7 +48,7 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 3
do-not-fetch-tags: true
submodule:
disable: false
Expand Down
20 changes: 20 additions & 0 deletions .ci/jobs/beats-release-changelog.yml
@@ -0,0 +1,20 @@
---
- job:
name: Beats/Release/beats-release-changelog
display-name: 'Prepare the Changelog for a Release'
description: 'Automate the steps to prepare the Changelog for a Release'
view: Beats
project-type: pipeline
pipeline-scm:
script-path: release_scripts/pipeline-release-changelog.groovy
scm:
- git:
url: git@github.com:elastic/ingest-dev.git
refspec: +refs/heads/*:refs/remotes/origin/* +refs/pull/*/head:refs/remotes/origin/pr/*
wipe-workspace: 'True'
name: origin
shallow-clone: true
credentials-id: f6c7695a-671e-4f4f-a331-acdce44ff9ba
reference-repo: /var/lib/jenkins/.git-references/ingest-dev.git
branches:
- master
2 changes: 1 addition & 1 deletion .ci/jobs/beats-tester.yml
Expand Up @@ -44,7 +44,7 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 3
do-not-fetch-tags: true
submodule:
disable: false
Expand Down
2 changes: 1 addition & 1 deletion .ci/jobs/beats-windows-mbp.yml
Expand Up @@ -44,7 +44,7 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 4
do-not-fetch-tags: true
submodule:
disable: false
Expand Down
3 changes: 2 additions & 1 deletion .ci/jobs/beats.yml
Expand Up @@ -46,13 +46,14 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 3
do-not-fetch-tags: true
submodule:
disable: false
recursive: true
parent-credentials: true
timeout: 100
reference-repo: /var/lib/jenkins/.git-references/beats.git
timeout: '15'
use-author: true
wipe-workspace: true
2 changes: 1 addition & 1 deletion .ci/jobs/golang-crossbuild-mbp.yml
Expand Up @@ -31,7 +31,7 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 4
do-not-fetch-tags: true
submodule:
disable: false
Expand Down
2 changes: 1 addition & 1 deletion .ci/jobs/packaging.yml
Expand Up @@ -44,7 +44,7 @@
before: true
prune: true
shallow-clone: true
depth: 10
depth: 3
do-not-fetch-tags: true
submodule:
disable: false
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.next.asciidoc
Expand Up @@ -275,6 +275,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
- Handle multiple upstreams in ingress-controller. {pull}21215[21215]
- Provide backwards compatibility for the `append` processor when Elasticsearch is less than 7.10.0. {pull}21159[21159]
- Fix checkpoint module when logs contain time field. {pull}20567[20567]
- Add field limit check for AWS Cloudtrail flattened fields. {pull}21388[21388] {issue}21382[21382]

*Heartbeat*

Expand Down
3 changes: 2 additions & 1 deletion Jenkinsfile
Expand Up @@ -24,6 +24,7 @@ pipeline {
PIPELINE_LOG_LEVEL = 'INFO'
PYTEST_ADDOPTS = "${params.PYTEST_ADDOPTS}"
RUNBLD_DISABLE_NOTIFICATIONS = 'true'
SLACK_CHANNEL = "#beats-ci-builds"
TERRAFORM_VERSION = "0.12.24"
XPACK_MODULE_PATTERN = '^x-pack\\/[a-z0-9]+beat\\/module\\/([^\\/]+)\\/.*'
}
Expand Down Expand Up @@ -129,7 +130,7 @@ pipeline {
runbld(stashedTestReports: stashedTestReports, project: env.REPO)
}
cleanup {
notifyBuildResult(prComment: true)
notifyBuildResult(prComment: true, slackComment: true)
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions Jenkinsfile.yml
Expand Up @@ -28,11 +28,13 @@ changeset:
- "^\\.ci/scripts/.*"
oss:
- "^go.mod"
- "^pytest.ini"
- "^dev-tools/.*"
- "^libbeat/.*"
- "^testing/.*"
xpack:
- "^go.mod"
- "^pytest.ini"
- "^dev-tools/.*"
- "^libbeat/.*"
- "^testing/.*"
Expand Down
2 changes: 1 addition & 1 deletion dev-tools/dependencies-report
Expand Up @@ -48,7 +48,7 @@ go list -m -json all $@ | go run go.elastic.co/go-licence-detector \
# name,url,version,revision,license
ubi8url='https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8'
ubi8source='https://oss-dependencies.elastic.co/redhat/ubi/ubi-minimal-8-source.tar.gz'
ubilicense='Custom;https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf,https://oss-dependencies.elastic.co/redhat/ubi/ubi-minimal-8-source.tar.gz'
ubilicense='Custom;https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf'
cat <<EOF >> $outfile
Red Hat Universal Base Image,$ubi8url,8,,$ubilicense,$ubi8source
EOF
147 changes: 147 additions & 0 deletions filebeat/input/filestream/config.go
@@ -0,0 +1,147 @@
// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

package filestream

import (
"fmt"
"time"

"github.com/dustin/go-humanize"

"github.com/elastic/beats/v7/libbeat/common"
"github.com/elastic/beats/v7/libbeat/common/match"
"github.com/elastic/beats/v7/libbeat/reader/readfile"
)

// Config stores the options of a file stream.
type config struct {
Paths []string `config:"paths"`
Close closerConfig `config:"close"`
FileWatcher *common.ConfigNamespace `config:"file_watcher"`
Reader readerConfig `config:"readers"`
FileIdentity *common.ConfigNamespace `config:"file_identity"`
CleanInactive time.Duration `config:"clean_inactive" validate:"min=0"`
CleanRemoved bool `config:"clean_removed"`
HarvesterLimit uint32 `config:"harvester_limit" validate:"min=0"`
IgnoreOlder time.Duration `config:"ignore_older"`
}

type closerConfig struct {
OnStateChange stateChangeCloserConfig `config:"on_state_change"`
Reader readerCloserConfig `config:"reader"`
}

type readerCloserConfig struct {
AfterInterval time.Duration
Inactive time.Duration
OnEOF bool
}

type stateChangeCloserConfig struct {
CheckInterval time.Duration
Removed bool
Renamed bool
}

// TODO should this be inline?
type readerConfig struct {
Backoff backoffConfig `config:"backoff"`
BufferSize int `config:"buffer_size"`
Encoding string `config:"encoding"`
ExcludeLines []match.Matcher `config:"exclude_lines"`
IncludeLines []match.Matcher `config:"include_lines"`
LineTerminator readfile.LineTerminator `config:"line_terminator"`
MaxBytes int `config:"message_max_bytes" validate:"min=0,nonzero"`
Tail bool `config:"seek_to_tail"`

Parsers []*common.ConfigNamespace `config:"parsers"` // TODO multiline, json, syslog?
}

type backoffConfig struct {
Init time.Duration `config:"init" validate:"nonzero"`
Max time.Duration `config:"max" validate:"nonzero"`
}

func defaultConfig() config {
return config{
Paths: []string{},
Close: defaultCloserConfig(),
Reader: defaultReaderConfig(),
CleanInactive: 0,
CleanRemoved: true,
HarvesterLimit: 0,
IgnoreOlder: 0,
}
}

func defaultCloserConfig() closerConfig {
return closerConfig{
OnStateChange: stateChangeCloserConfig{
CheckInterval: 5 * time.Second,
Removed: true, // TODO check clean_removed option
Renamed: false,
},
Reader: readerCloserConfig{
OnEOF: false,
Inactive: 0 * time.Second,
AfterInterval: 0 * time.Second,
},
}
}

func defaultReaderConfig() readerConfig {
return readerConfig{
Backoff: backoffConfig{
Init: 1 * time.Second,
Max: 10 * time.Second,
},
BufferSize: 16 * humanize.KiByte,
LineTerminator: readfile.AutoLineTerminator,
MaxBytes: 10 * humanize.MiByte,
Tail: false,
Parsers: nil,
}
}

func (c *config) Validate() error {
if len(c.Paths) == 0 {
return fmt.Errorf("no path is configured")
}
// TODO
//if c.CleanInactive != 0 && c.IgnoreOlder == 0 {
// return fmt.Errorf("ignore_older must be enabled when clean_inactive is used")
//}

// TODO
//if c.CleanInactive != 0 && c.CleanInactive <= c.IgnoreOlder+c.ScanFrequency {
// return fmt.Errorf("clean_inactive must be > ignore_older + scan_frequency to make sure only files which are not monitored anymore are removed")
//}

// TODO
//if c.JSON != nil && len(c.JSON.MessageKey) == 0 &&
// c.Multiline != nil {
// return fmt.Errorf("When using the JSON decoder and multiline together, you need to specify a message_key value")
//}

//if c.JSON != nil && len(c.JSON.MessageKey) == 0 &&
// (len(c.IncludeLines) > 0 || len(c.ExcludeLines) > 0) {
// return fmt.Errorf("When using the JSON decoder and line filtering together, you need to specify a message_key value")
//}

return nil
}

0 comments on commit 7c218ea

Please sign in to comment.