diff --git a/Makefile b/Makefile index 6351c693be0..cebd6379e22 100644 --- a/Makefile +++ b/Makefile @@ -69,12 +69,9 @@ endif is-beats-updated: python-env @$(PYTHON_ENV)/bin/python ./script/is_beats_updated.py ${BEATS_VERSION} -apm-server.docker.yml: _meta/beat.yml - @sed -E -e 's/^ hosts: \["localhost:9200"\]/ hosts: ["elasticsearch:9200"]/' -e 's/ host: "localhost:8200"/ host: "0.0.0.0:8200"/' < _meta/beat.yml > apm-server.docker.yml - # Collects all dependencies and then calls update .PHONY: collect -collect: fields go-generate add-headers create-docs notice apm-server.docker.yml +collect: fields go-generate add-headers create-docs notice .PHONY: go-generate go-generate: diff --git a/NOTICE.txt b/NOTICE.txt index dd18ec99763..4d1a3d2185a 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -301,7 +301,7 @@ SOFTWARE. -------------------------------------------------------------------- Dependency: github.com/elastic/beats Version: master -Revision: b2c2bb0cc91aaca92f87d0307482691273cd26e3 +Revision: bf7c3dccb61eab4838a326cb8463c5fcba0fb342 License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/beats/LICENSE.txt: -------------------------------------------------------------------- @@ -415,7 +415,7 @@ Elasticsearch, B.V. (https://www.elastic.co/). -------------------------------------------------------------------- Dependency: github.com/elastic/gosigar -Revision: 1227b9d6877d126ad640087e44439d70dba2df4f +Revision: 99ed9cf55303a9d3936cb656b9a86a4a6e67b30a License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/gosigar/LICENSE: -------------------------------------------------------------------- diff --git a/_beats/CHANGELOG-developer.asciidoc b/_beats/CHANGELOG-developer.asciidoc index 29fd3cce790..607a20c0146 100644 --- a/_beats/CHANGELOG-developer.asciidoc +++ b/_beats/CHANGELOG-developer.asciidoc @@ -12,6 +12,25 @@ other Beats should be migrated. Note: This changelog was only started after the 6.3 release. +=== Beats version 7.1.1 +https://github.com/elastic/beats/compare/v7.1.0..v7.1.1[Check the HEAD diff] + +=== Beats version 7.1.0 +https://github.com/elastic/beats/compare/v7.0.0..v7.1.0[Check the HEAD diff] + +=== Beats version 7.0.1 +https://github.com/elastic/beats/compare/v7.0.0..v7.0.1[Check the HEAD diff] + +=== Beats version 7.0.0-GA +https://github.com/elastic/beats/compare/v7.0.0-rc2..v7.0.0[Check the HEAD diff] + +The list below covers the major changes between 7.0.0-rc2 and 7.0 only. + +==== Added + +- Added support for using PYTHON_EXE to control what Python interpreter is used + by `make` and `mage`. Example: `export PYTHON_EXE=python2.7`. {pull}11212[11212] + === Beats version 7.0.0-rc2 https://github.com/elastic/beats/compare/v7.0.0-rc1..v7.0.0-rc2[Check the HEAD diff] diff --git a/_beats/CHANGELOG-developer.next.asciidoc b/_beats/CHANGELOG-developer.next.asciidoc index b2b22454fbb..7b7556e5480 100644 --- a/_beats/CHANGELOG-developer.next.asciidoc +++ b/_beats/CHANGELOG-developer.next.asciidoc @@ -31,8 +31,6 @@ The list below covers the major changes between 7.0.0-rc2 and master only. - Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] - Support for Logger in the Metricset base instance. {pull}11106[11106] - Filebeat modules can now use ingest pipelines in YAML format. {pull}11209[11209] -- Added support for using PYTHON_EXE to control what Python interpreter is used - by `make` and `mage`. Example: `export PYTHON_EXE=python2.7`. {pull}11212[11212] - Prometheus helper for metricbeat contains now `Namespace` field for `prometheus.MetricsMappings` {pull}11424[11424] - Update Jinja2 version to 2.10.1. {pull}11817[11817] - Reduce idxmgmt.Supporter interface and rework export commands to reuse logic. {pull}11777[11777],{pull}12065[12065],{pull}12067[12067],{pull}12160[12160] @@ -42,3 +40,5 @@ The list below covers the major changes between 7.0.0-rc2 and master only. - Only Load minimal template if no fields are provided. {pull}12103[12103] - Add new option `IgnoreAllErrors` to `libbeat.common.schema` for skipping fields that failed while converting. {pull}12089[12089] - Deprecate setup cmds for `template` and `ilm-policy`. Add new setup cmd for `index-management`. {pull}12132[12132] +- Use the go-lookslike library for testing in heartbeat. Eventually the mapval package will be replaced with it. {pull}12540[12540] +- Generate configuration from `mage` for all Beats. {pull}12618[12618] diff --git a/_beats/CHANGELOG.asciidoc b/_beats/CHANGELOG.asciidoc index 6857f7a1056..4248d43595d 100644 --- a/_beats/CHANGELOG.asciidoc +++ b/_beats/CHANGELOG.asciidoc @@ -3,6 +3,87 @@ :issue: https://github.com/elastic/beats/issues/ :pull: https://github.com/elastic/beats/pull/ +[[release-notes-7.1.1]] +=== Beats version 7.1.1 +https://github.com/elastic/beats/compare/v7.1.0...v7.1.1[View commits] + +No changes in this release. + +[[release-notes-7.1.0]] +=== Beats version 7.1.0 +https://github.com/elastic/beats/compare/v7.0.0...v7.1.0[View commits] + +* Updates to support changes to licensing of security features. ++ +Some Elastic Stack security features, such as encrypted communications, file and native authentication, and +role-based access control, are now available in more subscription levels. For details, see https://www.elastic.co/subscriptions. + +[[release-notes-7.0.1]] +=== Beats version 7.0.1 +https://github.com/elastic/beats/compare/v7.0.0...v7.0.1[View commits] + +==== Breaking changes + +*Metricbeat* + +- Change cloud.provider from ec2 to aws and from gce to gcp in add_cloud_metadata to align with ECS. {issue}10775[10775] {pull}11687[11687] + +==== Bugfixes + +*Affecting all Beats* + +- Fix formatting for `event.duration`, "human readable" was not working well for this. {pull}11675[11675] +- Fix initialization of the TCP input logger. {pull}11605[11605] + +*Auditbeat* + +- Package dataset: Log error when Homebrew is not installed. {pull}11667[11667] + +*Heartbeat* + +- Fix NPE on some monitor configuration errors. {pull}11910[11910] + +*Metricbeat* + +- Change `add_cloud_metadata` processor to not overwrite `cloud` field when it already exist in the event. {pull}11612[11612] {issue}11305[11305] + +==== Added + +*Auditbeat* + +- Add support to the system package dataset for the SUSE OS family. {pull}11634[11634] + +==== Deprecated + +*Metricbeat* + +- Prevent the docker/memory metricset from processing invalid events before container start {pull}11676[11676] + +include::libbeat/docs/release-notes/7.0.0.asciidoc[] + +[[release-notes-7.0.0-ga]] +=== Beats version 7.0.0-GA +https://github.com/elastic/beats/compare/v7.0.0-rc2...v7.0.0[View commits] + +The list below covers the changes between 7.0.0-rc2 and 7.0.0 GA only. + +==== Bugfixes + +*Affecting all Beats* + +- Relax validation of the X-Pack license UID value. {issue}11640[11640] +- Fix a parsing error with the X-Pack license check on 32-bit system. {issue}11650[11650] +- Fix ILM policy always being overwritten. {pull}11671[11671] +- Fix template always being overwritten. {pull}11671[11671] + +*Auditbeat* + +- Package dataset: Nullify Librpm's rpmsqEnable. {pull}11628[11628] + +*Filebeat* + +- Fix `add_docker_metadata` source matching, using `log.file.path` field now. {pull}11577[11577] + [[release-notes-7.0.0-rc2]] === Beats version 7.0.0-rc2 https://github.com/elastic/beats/compare/v7.0.0-rc1...v7.0.0-rc2[Check the HEAD diff] @@ -24,10 +105,19 @@ https://github.com/elastic/beats/compare/v7.0.0-rc1...v7.0.0-rc2[Check the HEAD - Fixed OS family classification in `add_host_metadata` for Amazon Linux, Raspbian, and RedHat Linux. {issue}9134[9134] {pull}11494[11494] +*Auditbeat* + +- Package dataset: dlopen versioned librpm shared objects. {pull}11565[11565] + *Filebeat* - Don't apply multiline rules in Logstash json logs. {pull}11346[11346] - Fix panic in add_kubernetes_metadata processor when key `log` does not exist. {issue}11543[11543] {pull}11549[11549] +- Fix goroutine leak happening when harvesters are dynamically stopped. {pull}11263[11263] + +*Metricbeat* + +- Add _bucket to histogram metrics in Prometheus Collector {pull}11578[11578] ==== Added @@ -486,7 +576,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...v7.0.0-beta1[Check the - Mark Functionbeat as GA. {pull}10564[10564] - [[release-notes-7.0.0-alpha2]] === Beats version 7.0.0-alpha2 https://github.com/elastic/beats/compare/v7.0.0-alpha1...v7.0.0-alpha2[Check the HEAD diff] @@ -724,6 +813,49 @@ https://github.com/elastic/beats/compare/v6.5.0...v7.0.0-alpha1[View commits] - Added support to calculate certificates' fingerprints (MD5, SHA-1, SHA-256). {issue}8180[8180] - Support new TLS version negotiation introduced in TLS 1.3. {issue}8647[8647]. +[[release-notes-6.8.0]] +=== Beats version 6.8.0 + +* Updates to support changes to licensing of security features. ++ +Some Elastic Stack security features, such as encrypted communications, file and native authentication, and +role-based access control, are now available in more subscription levels. For details, see https://www.elastic.co/subscriptions. + +[[release-notes-6.7.2]] +=== Beats version 6.7.2 +https://github.com/elastic/beats/compare/v6.7.1...v6.7.2[View commits] + +==== Bugfixes + +*Affecting all Beats* + +- Relax validation of the X-Pack license UID value. {issue}11640[11640] +- Fix a parsing error with the X-Pack license check on 32-bit system. {issue}11650[11650] +- Fix OS family classification in `add_host_metadata` for Amazon Linux, Raspbian, and RedHat Linux. {issue}9134[9134] {pull}11494[11494] +- Fix false positives reported in the `host.containerized` field added by `add_host_metadata`. {pull}11494[11494] +- Fix the add_host_metadata's `host.id` field on older Linux versions. {pull}11494[11494] + +*Auditbeat* + +- Package dataset: dlopen versioned librpm shared objects. {pull}11565[11565] +- Package dataset: Nullify Librpm's rpmsqEnable. {pull}11628[11628] + +*Filebeat* + +- Don't apply multiline rules in Logstash json logs. {pull}11346[11346] +- Fix goroutine leak happening when harvesters are dynamically stopped. {pull}11263[11263] +- Fix initialization of the TCP input logger. {pull}11605[11605] + +*Metricbeat* + +- Prevent the docker/memory metricset from processing invalid events before container start {pull}11676[11676] + +==== Added + +*Auditbeat* + +- Add support to the system package dataset for the SUSE OS family. {pull}11634[11634] + [[release-notes-6.7.1]] === Beats version 6.7.1 https://github.com/elastic/beats/compare/v6.7.0...v6.7.1[View commits] diff --git a/_beats/CHANGELOG.next.asciidoc b/_beats/CHANGELOG.next.asciidoc index 8c77bb1164c..e6a461feb28 100644 --- a/_beats/CHANGELOG.next.asciidoc +++ b/_beats/CHANGELOG.next.asciidoc @@ -22,9 +22,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Filebeat* -- Modify apache/error dataset to follow ECS. {pull}8963[8963] -- Rename many `traefik.access.*` fields to map to ECS. {pull}9005[9005] -- Fix parsing of GC entries in elasticsearch server log. {issue}9513[9513] {pull}9810[9810] - Add read_buffer configuration option. {pull}11739[11739] - `convert_timezone` option is removed and locale is always added to the event so timezone is used when parsing the timestamp, this behaviour can be overriden with processors. {pull}12410[12410] @@ -37,8 +34,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Metricbeat* - Add new option `OpMultiplyBuckets` to scale histogram buckets to avoid decimal points in final events {pull}10994[10994] -- Change cloud.provider from ec2 to aws and from gce to gcp in add_cloud_metadata to align with ECS. {issue}10775[10775] {pull}11687[11687] - system/raid metricset now uses /sys/block instead of /proc/mdstat for data. {pull}11613[11613] +- kubernetes.container.cpu.limit.cores and kubernetes.container.cpu.requests.cores are now floats. {issue}11975[11975] *Packetbeat* @@ -47,8 +44,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Winlogbeat* -- Adjust Winlogbeat fields to map to ECS. {pull}10333[10333] - *Functionbeat* ==== Bugfixes @@ -60,35 +55,28 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] - decode_json_field: process objects and arrays only {pull}11312[11312] - decode_json_field: do not process arrays when flag not set. {pull}11318[11318] -- Report faulting file when config reload fails. {pull}[11304]11304 +- Report faulting file when config reload fails. {pull}11304[11304] - Fix a typo in libbeat/outputs/transport/client.go by updating `c.conn.LocalAddr()` to `c.conn.RemoteAddr()`. {pull}11242[11242] - Management configuration backup file will now have a timestamps in their name. {pull}11034[11034] - [CM] Parse enrollment_token response correctly {pull}11648[11648] - Not hiding error in case of http failure using elastic fetcher {pull}11604[11604] -- Relax validation of the X-Pack license UID value. {issue}11640[11640] -- Fix a parsing error with the X-Pack license check on 32-bit system. {issue}11650[11650] - Escape BOM on JsonReader before trying to decode line {pull}11661[11661] -- Fix ILM policy always being overwritten. {pull}11671[11671] -- Fix template always being overwritten. {pull}11671[11671] - Fix matching of string arrays in contains condition. {pull}11691[11691] -- Fix formatting for `event.duration`, "human readable" was not working well for this. {pull}11675[11675] -- Fix initialization of the TCP input logger. {pull}11605[11605] -- Fix flaky service_integration_windows_test test by introducing a confidence factor and enriching the error message with more service details. {issue}8880[8880] and {issue}7977[7977] - Replace wmi queries with win32 api calls as they were consuming CPU resources {issue}3249[3249] and {issue}11840[11840] - Fix a race condition with the Kafka pipeline client, it is possible that `Close()` get called before `Connect()` . {issue}11945[11945] - Fix queue.spool.write.flush.events config type. {pull}12080[12080] - Fixed a memory leak when using the add_process_metadata processor under Windows. {pull}12100[12100] - Fix of docker json parser for missing "log" jsonkey in docker container's log {issue}11464[11464] - Fixed Beat ID being reported by GET / API. {pull}12180[12180] +- Fixed setting bulk max size in kafka output. {pull}12254[12254] - Add host.os.codename to fields.yml. {pull}12261[12261] - Fix `@timestamp` being duplicated in events if `@timestamp` is set in a processor (or by any code utilizing `PutValue()` on a `beat.Event`). +- Fix leak in script processor when using Javascript functions in a processor chain. {pull}12600[12600] +- Add additional nil pointer checks to Docker client code to deal with vSphere Integrated Containers {pull}12628[12628] *Auditbeat* -- Package dataset: dlopen versioned librpm shared objects. {pull}11565[11565] -- Package dataset: Nullify Librpm's rpmsqEnable. {pull}11628[11628] -- Package dataset: Log error when Homebrew is not installed. {pull}11667[11667] - Process dataset: Fixed a memory leak under Windows. {pull}12100[12100] - Login dataset: Fix re-read of utmp files. {pull}12028[12028] - Package dataset: Fixed a crash inside librpm after Auditbeat has been running for a while. {issue}12147[12147] {pull}12168[12168] @@ -98,6 +86,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Package dataset: Auto-detect package directories. {pull}12289[12289] - Package dataset: Improve dpkg parsing. {pull}12325[12325] - System module: Start system module without host ID. {pull}12373[12373] +- Host dataset: Fix reboot detection logic. {pull}12591[12591] +- Add syscalls used by librpm for the system/package dataset to the default Auditbeat seccomp policy. {issue}12578[12578] {pull}12617[12617] *Filebeat* @@ -105,8 +95,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Cover empty request data, url and version in Apache2 module{pull}10730[10730] - Fix registry entries not being cleaned due to race conditions. {pull}10747[10747] - Improve detection of file deletion on Windows. {pull}10747[10747] -- Fix goroutine leak happening when harvesters are dynamically stopped. {pull}11263[11263] -- Fix `add_docker_metadata` source matching, using `log.file.path` field now. {pull}11577[11577] - Add missing Kubernetes metadata fields to Filebeat CoreDNS module, and fix a documentation error. {pull}11591[11591] - Reduce memory usage if long lines are truncated to fit `max_bytes` limit. The line buffer is copied into a smaller buffer now. This allows the runtime to release unused memory earlier. {pull}11524[11524] - Fix memory leak in Filebeat pipeline acker. {pull}12063[12063] @@ -114,14 +102,14 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix goroutine leak on non-explicit finalization of log input. {pull}12164[12164] - Skipping unparsable log entries from docker json reader {pull}12268[12268] - Parse timezone in PostgreSQL logs as part of the timestamp {pull}12338[12338] -- Require client_auth by default when ssl is enabled for tcp input {pull}12333[12333] -- Require certificate authorities, certificate file, and key when SSL is enabled for the TCP input. {pull}12355[12355] - Load correct pipelines when system module is configured in modules.d. {pull}12340[12340] +- Fix timezone offset parsing in system/syslog. {pull}12529[12529] +- When TLS is configured for the TCP input and a `certificate_authorities` is configured we now default to `required` for the `client_authentication`. {pull}12584[12584] *Heartbeat* -- Fix NPE on some monitor configuration errors. {pull}11910[11910] - Fix NPEs / resource leaks when executing config checks. {pull}11165[11165] +- Fix duplicated IPs on `mode: all` monitors. {pull}12458[12458] *Journalbeat* @@ -129,9 +117,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Metricbeat* -- Add _bucket to histogram metrics in Prometheus Collector {pull}11578[11578] -- Prevent the docker/memory metricset from processing invalid events before container start {pull}11676[11676] -- Change `add_cloud_metadata` processor to not overwrite `cloud` field when it already exist in the event. {pull}11612[11612] {issue}11305[11305] - Change diskio metrics retrieval method (only for Windows) from wmi query to DeviceIOControl function using the IOCTL_DISK_PERFORMANCE control code {pull}11635[11635] - Call GetMetricData api per region instead of per instance. {issue}11820[11820] {pull}11882[11882] - Update documentation with cloudwatch:ListMetrics permission. {pull}11987[11987] @@ -142,15 +127,18 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Change some field type from scaled_float to long in aws module. {pull}11982[11982] - Fixed RabbitMQ `queue` metricset gathering when `consumer_utilisation` is set empty at the metrics source {pull}12089[12089] - Fix direction of incoming IPv6 sockets. {pull}12248[12248] +- Refactored Windows perfmon metricset: replaced method to retrieve counter paths with PdhExpandWildCardPathW, separated code by responsibility, removed unused functions {pull}12212[12212] - Validate that kibana/status metricset cannot be used when xpack is enabled. {pull}12264[12264] - Ignore prometheus metrics when their values are NaN or Inf. {pull}12084[12084] {issue}10849[10849] - In the kibana/stats metricset, only log error (don't also index it) if xpack is enabled. {pull}12265[12265] -- Require client_auth by default when ssl is enabled for module http metricset server{pull}12333[12333] +- Fix an issue listing all processes when run under Windows as a non-privileged user. {issue}12301[12301] {pull}12475[12475] +- The `elasticsearch/index_summary` metricset gracefully handles an empty Elasticsearch cluster when `xpack.enabled: true` is set. {pull}12489[12489] {issue}12487[12487] +- When TLS is configured for the http metricset and a `certificate_authorities` is configured we now default to `required` for the `client_authentication`. {pull}12584[12584] +- Reuse connections in PostgreSQL metricsets. {issue}12504[12504] {pull}12603[12603] *Packetbeat* - Prevent duplicate packet loss error messages in HTTP events. {pull}10709[10709] -- Avoid reporting unknown MongoDB opcodes more than once. {pull}10878[10878] - Fixed a memory leak when using process monitoring under Windows. {pull}12100[12100] - Improved debug logging efficiency in PGQSL module. {issue}12150[12150] @@ -164,6 +152,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Affecting all Beats* +- Decouple Debug logging from fail_on_error logic for rename, copy, truncate processors {pull}12451[12451] - Add an option to append to existing logs rather than always rotate on start. {pull}11953[11953] - Add `network` condition to processors for matching IP addresses against CIDRs. {pull}10743[10743] - Add if/then/else support to processors. {pull}10744[10744] @@ -173,7 +162,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - New processor: `copy_fields`. {pull}11303[11303] - Add `error.message` to events when `fail_on_error` is set in `rename` and `copy_fields` processors. {pull}11303[11303] - New processor: `truncate_fields`. {pull}11297[11297] -- Allow a beat to ship monitoring data directly to an Elasticsearch monitoring clsuter. {pull}9260[9260] +- Allow a beat to ship monitoring data directly to an Elasticsearch monitoring cluster. {pull}9260[9260] - Updated go-seccomp-bpf library to v1.1.0 which updates syscall lists for Linux v5.0. {pull}NNNN[NNNN] - Add `add_observer_metadata` processor. {pull}11394[11394] - Add `decode_csv_fields` processor. {pull}11753[11753] @@ -182,12 +171,13 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add number of goroutines to reported metrics. {pull}12135[12135] - Add `proxy_disable` output flag to explicitly ignore proxy environment variables. {issue}11713[11713] {pull}12243[12243] - Processor `add_cloud_metadata` adds fields `cloud.account.id` and `cloud.image.id` for AWS EC2. {pull}12307[12307] +- Add configurable bulk_flush_frequency in kafka output. {pull}12254[12254] +- Add `decode_base64_field` processor for decoding base64 field. {pull}11914[11914] +- Add aws overview dashboard. {issue}11007[11007] {pull}12175[12175] *Auditbeat* - Auditd module: Add `event.outcome` and `event.type` for ECS. {pull}11432[11432] -- Package: Enable suse. {pull}11634[11634] -- Add support to the system package dataset for the SUSE OS family. {pull}11634[11634] - Process: Add file hash of process executable. {pull}11722[11722] - Socket: Add network.transport and network.community_id. {pull}12231[12231] - Host: Fill top-level host fields. {pull}12259[12259] @@ -216,6 +206,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - `container` and `docker` inputs now support reading of labels and env vars written by docker JSON file logging driver. {issue}8358[8358] - Add specific date processor to convert timezones so same pipeline can be used when convert_timezone is enabled or disabled. {pull}12253[12253] - Add MSSQL module {pull}12079[12079] +- Add ISO8601 date parsing support for system module. {pull}12568[12568] {pull}12578[12579] +- Use correct OS path separator in `add_kubernetes_metadata` to support Windows nodes. {pull}9205[9205] *Heartbeat* @@ -244,6 +236,12 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Always report Pod UID in the `pod` metricset. {pull}12345[12345] - Add Vsphere Virtual Machine operating system to `os` field in Vsphere virtualmachine module. {pull}12391[12391] - Add validation for elasticsearch and kibana modules' metricsets when xpack.enabled is set to true. {pull}12386[12386] +- Add support for metricbeat modules based on existing modules (a.k.a. light modules) {issue}12270[12270] {pull}12465[12465] +- Add a system/entropy metricset {pull}12450[12450] +- Allow redis URL format in redis hosts config. {pull}12408[12408] +- Add tags into ec2 metricset. {issue}[12263]12263 {pull}12372[12372] +- Add `beat` module. {pull}12181[12181] {pull}12615[12615] +- Collect tags for cloudwatch metricset in aws module. {issue}[12263]12263 {pull}12480[12480] *Packetbeat* @@ -276,8 +274,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Winlogbeat* -- Close handle on signalEvent. {pull}9838[9838] - *Functionbeat* ==== Known Issue diff --git a/_beats/dev-tools/cmd/module_include_list/module_include_list.go b/_beats/dev-tools/cmd/module_include_list/module_include_list.go index e5fc651d745..cbd943aa3ef 100644 --- a/_beats/dev-tools/cmd/module_include_list/module_include_list.go +++ b/_beats/dev-tools/cmd/module_include_list/module_include_list.go @@ -32,7 +32,7 @@ import ( "github.com/pkg/errors" - "github.com/elastic/beats/dev-tools/mage" + devtools "github.com/elastic/beats/dev-tools/mage" "github.com/elastic/beats/licenses" ) @@ -91,7 +91,7 @@ func main() { } // Get the current directories Go import path. - repo, err := mage.GetProjectRepoInfo() + repo, err := devtools.GetProjectRepoInfo() if err != nil { log.Fatalf("Failed to determine import path: %v", err) } @@ -99,19 +99,18 @@ func main() { // Build import paths. var imports []string for _, dir := range dirs { - // Skip dirs that have no .go files. - goFiles, err := filepath.Glob(filepath.Join(dir, "*.go")) - if err != nil { - log.Fatal("Failed checking for .go files in package dir: %v", err) - } - if len(goFiles) == 0 { - continue - } - // Skip packages without an init() function because that cannot register // anything as a side-effect of being imported (e.g. filebeat/input/file). var foundInitMethod bool + goFiles, err := filepath.Glob(filepath.Join(dir, "*.go")) + if err != nil { + log.Fatalf("Failed checking for .go files in package dir: %v", err) + } for _, f := range goFiles { + // Skip test files + if strings.HasSuffix(f, "_test.go") { + continue + } if hasInitMethod(f) { foundInitMethod = true break @@ -124,7 +123,7 @@ func main() { importDir := dir if filepath.IsAbs(dir) { // Make it relative to the current package if it's absolute. - importDir, err = filepath.Rel(mage.CWD(), dir) + importDir, err = filepath.Rel(devtools.CWD(), dir) if err != nil { log.Fatalf("Failure creating import for dir=%v: %v", dir, err) } @@ -168,7 +167,7 @@ var Template = template.Must(template.New("normalizations").Funcs(map[string]int }).Parse(` {{ .License | trim }} -// Code generated by beats/dev-tools/module_include_list/module_include_list.go - DO NOT EDIT. +// Code generated by beats/dev-tools/cmd/module_include_list/module_include_list.go - DO NOT EDIT. package {{ .Package }} @@ -202,7 +201,7 @@ func findModuleAndDatasets() ([]string, error) { var dirs []string for _, moduleDir := range moduleDirs { // Find modules and datasets as indicated by the _meta dir. - metaDirs, err := mage.FindFiles( + metaDirs, err := devtools.FindFiles( filepath.Join(moduleDir, "*/_meta"), filepath.Join(moduleDir, "*/*/_meta"), ) @@ -220,7 +219,7 @@ func findModuleAndDatasets() ([]string, error) { // findImports expands the given import values in case they contain globs. func findImports() ([]string, error) { - return mage.FindFiles(importDirs...) + return devtools.FindFiles(importDirs...) } // hasInitMethod returns true if the file contains 'func init()'. diff --git a/_beats/dev-tools/packaging/package_test.go b/_beats/dev-tools/packaging/package_test.go index e57b9576af0..08d6e16fa04 100644 --- a/_beats/dev-tools/packaging/package_test.go +++ b/_beats/dev-tools/packaging/package_test.go @@ -58,11 +58,12 @@ var ( ) var ( - files = flag.String("files", "../build/distributions/*/*", "filepath glob containing package files") - modules = flag.Bool("modules", false, "check modules folder contents") - modulesd = flag.Bool("modules.d", false, "check modules.d folder contents") - monitorsd = flag.Bool("monitors.d", false, "check monitors.d folder contents") - rootOwner = flag.Bool("root-owner", false, "expect root to own package files") + files = flag.String("files", "../build/distributions/*/*", "filepath glob containing package files") + modules = flag.Bool("modules", false, "check modules folder contents") + modulesd = flag.Bool("modules.d", false, "check modules.d folder contents") + monitorsd = flag.Bool("monitors.d", false, "check monitors.d folder contents") + rootOwner = flag.Bool("root-owner", false, "expect root to own package files") + rootUserContainer = flag.Bool("root-user-container", false, "expect root in container user") ) func TestRPM(t *testing.T) { @@ -181,19 +182,27 @@ func checkDocker(t *testing.T, file string) { } checkDockerEntryPoint(t, p, info) + checkDockerLabels(t, p, info, file) + checkDockerUser(t, p, info, *rootUserContainer) + checkConfigPermissionsWithMode(t, p, os.FileMode(0640)) + checkManifestPermissionsWithMode(t, p, os.FileMode(0640)) checkModulesPresent(t, "", p) checkModulesDPresent(t, "", p) } // Verify that the main configuration file is installed with a 0600 file mode. func checkConfigPermissions(t *testing.T, p *packageFile) { + checkConfigPermissionsWithMode(t, p, expectedConfigMode) +} + +func checkConfigPermissionsWithMode(t *testing.T, p *packageFile, expectedMode os.FileMode) { t.Run(p.Name+" config file permissions", func(t *testing.T) { for _, entry := range p.Contents { if configFilePattern.MatchString(entry.File) { mode := entry.Mode.Perm() - if expectedConfigMode != mode { + if expectedMode != mode { t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedConfigMode, mode) + entry.File, expectedMode, mode) } return } @@ -229,13 +238,17 @@ func checkConfigOwner(t *testing.T, p *packageFile, expectRoot bool) { // Verify that the modules manifest.yml files are installed with a 0644 file mode. func checkManifestPermissions(t *testing.T, p *packageFile) { + checkManifestPermissionsWithMode(t, p, expectedManifestMode) +} + +func checkManifestPermissionsWithMode(t *testing.T, p *packageFile, expectedMode os.FileMode) { t.Run(p.Name+" manifest file permissions", func(t *testing.T) { for _, entry := range p.Contents { if manifestFilePattern.MatchString(entry.File) { mode := entry.Mode.Perm() - if expectedManifestMode != mode { + if expectedMode != mode { t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedManifestMode, mode) + entry.File, expectedMode, mode) } } } @@ -382,6 +395,35 @@ func checkDockerEntryPoint(t *testing.T, p *packageFile, info *dockerInfo) { }) } +func checkDockerLabels(t *testing.T, p *packageFile, info *dockerInfo, file string) { + vendor := info.Config.Labels["org.label-schema.vendor"] + if vendor != "Elastic" { + return + } + t.Run(fmt.Sprintf("%s labels", p.Name), func(t *testing.T) { + expectedLicense := "Elastic License" + ossPrefix := strings.Join([]string{ + info.Config.Labels["org.label-schema.name"], + "oss", + info.Config.Labels["org.label-schema.version"], + }, "-") + if strings.HasPrefix(filepath.Base(file), ossPrefix) { + expectedLicense = "ASL 2.0" + } + if license, present := info.Config.Labels["license"]; !present || license != expectedLicense { + t.Errorf("unexpected license label: %s", license) + } + }) +} + +func checkDockerUser(t *testing.T, p *packageFile, info *dockerInfo, expectRoot bool) { + t.Run(fmt.Sprintf("%s user", p.Name), func(t *testing.T) { + if expectRoot != (info.Config.User == "root") { + t.Errorf("unexpected docker user: %s", info.Config.User) + } + }) +} + // Helpers type packageFile struct { @@ -408,7 +450,6 @@ func getFiles(t *testing.T, pattern *regexp.Regexp) []string { files = append(files, f) } } - return files } @@ -640,8 +681,10 @@ func readDockerManifest(r io.Reader) (*dockerManifest, error) { type dockerInfo struct { Config struct { - WorkingDir string Entrypoint []string + Labels map[string]string + User string + WorkingDir string } `json:"config"` } diff --git a/_beats/dev-tools/packaging/templates/common/magefile.go.tmpl b/_beats/dev-tools/packaging/templates/common/magefile.go.tmpl index c86079fac87..c09fc4eb1e2 100644 --- a/_beats/dev-tools/packaging/templates/common/magefile.go.tmpl +++ b/_beats/dev-tools/packaging/templates/common/magefile.go.tmpl @@ -10,42 +10,42 @@ import ( "github.com/magefile/mage/mg" "github.com/magefile/mage/sh" - "github.com/elastic/beats/dev-tools/mage" + devtools "github.com/elastic/beats/dev-tools/mage" ) func init() { - mage.BeatDescription = "One sentence description of the Beat." + devtools.BeatDescription = "One sentence description of the Beat." } // Build builds the Beat binary. func Build() error { - return mage.Build(mage.DefaultBuildArgs()) + return devtools.Build(devtools.DefaultBuildArgs()) } // GolangCrossBuild build the Beat binary inside of the golang-builder. // Do not use directly, use crossBuild instead. func GolangCrossBuild() error { - return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) + return devtools.GolangCrossBuild(devtools.DefaultGolangCrossBuildArgs()) } // BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). func BuildGoDaemon() error { - return mage.BuildGoDaemon() + return devtools.BuildGoDaemon() } // CrossBuild cross-builds the beat for all target platforms. func CrossBuild() error { - return mage.CrossBuild() + return devtools.CrossBuild() } // CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. func CrossBuildGoDaemon() error { - return mage.CrossBuildGoDaemon() + return devtools.CrossBuildGoDaemon() } // Clean cleans all generated files and build artifacts. func Clean() error { - return mage.Clean() + return devtools.Clean() } // Package packages the Beat for distribution. @@ -55,16 +55,16 @@ func Package() { start := time.Now() defer func() { fmt.Println("package ran for", time.Since(start)) }() - mage.UseCommunityBeatPackaging() + devtools.UseCommunityBeatPackaging() mg.Deps(Update) mg.Deps(CrossBuild, CrossBuildGoDaemon) - mg.SerialDeps(mage.Package, TestPackages) + mg.SerialDeps(devtools.Package, TestPackages) } // TestPackages tests the generated packages (i.e. file modes, owners, groups). func TestPackages() error { - return mage.TestPackages() + return devtools.TestPackages() } // Update updates the generated files (aka make update). @@ -74,19 +74,19 @@ func Update() error { // Fields generates a fields.yml for the Beat. func Fields() error { - return mage.GenerateFieldsYAML() + return devtools.GenerateFieldsYAML() } // GoTestUnit executes the Go unit tests. // Use TEST_COVERAGE=true to enable code coverage profiling. // Use RACE_DETECTOR=true to enable the race detector. func GoTestUnit(ctx context.Context) error { - return mage.GoTest(ctx, mage.DefaultGoTestUnitArgs()) + return devtools.GoTest(ctx, devtools.DefaultGoTestUnitArgs()) } // GoTestIntegration executes the Go integration tests. // Use TEST_COVERAGE=true to enable code coverage profiling. // Use RACE_DETECTOR=true to enable the race detector. func GoTestIntegration(ctx context.Context) error { - return mage.GoTest(ctx, mage.DefaultGoTestIntegrationArgs()) + return devtools.GoTest(ctx, devtools.DefaultGoTestIntegrationArgs()) } diff --git a/_beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl b/_beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl index 4aecfc56cb8..bc6dd97ba1b 100644 --- a/_beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl +++ b/_beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl @@ -11,7 +11,7 @@ $workdir = Split-Path $MyInvocation.MyCommand.Path # Create the new service. New-Service -name {{.BeatName}} ` -displayName {{.BeatName | title}} ` - -binaryPathName "`"$workdir\{{.BeatName}}.exe`" -c `"$workdir\{{.BeatName}}.yml`" -path.home `"$workdir`" -path.data `"C:\ProgramData\{{.BeatName}}`" -path.logs `"C:\ProgramData\{{.BeatName}}\logs`"" + -binaryPathName "`"$workdir\{{.BeatName}}.exe`" -c `"$workdir\{{.BeatName}}.yml`" -path.home `"$workdir`" -path.data `"C:\ProgramData\{{.BeatName}}`" -path.logs `"C:\ProgramData\{{.BeatName}}\logs`" -E logging.files.redirect_stderr=true" # Attempt to set the service to delayed start using sc config. Try { diff --git a/_beats/libbeat/_meta/fields.common.yml b/_beats/libbeat/_meta/fields.common.yml index ddeb57838ba..e421c317cba 100644 --- a/_beats/libbeat/_meta/fields.common.yml +++ b/_beats/libbeat/_meta/fields.common.yml @@ -1,4 +1,5 @@ - key: beat + anchor: beat-common title: Beat description: > Contains common beat fields available in all event types. diff --git a/_beats/libbeat/magefile.go b/_beats/libbeat/magefile.go index 61290e0835c..f254a58218e 100644 --- a/_beats/libbeat/magefile.go +++ b/_beats/libbeat/magefile.go @@ -22,34 +22,39 @@ package main import ( "context" - "github.com/elastic/beats/dev-tools/mage" + devtools "github.com/elastic/beats/dev-tools/mage" ) // Build builds the Beat binary. func Build() error { - return mage.Build(mage.DefaultBuildArgs()) + return devtools.Build(devtools.DefaultBuildArgs()) } // Clean cleans all generated files and build artifacts. func Clean() error { - return mage.Clean() + return devtools.Clean() } // Fields generates a fields.yml for the Beat. func Fields() error { - return mage.GenerateFieldsYAML("processors") + return devtools.GenerateFieldsYAML("processors") } // GoTestUnit executes the Go unit tests. // Use TEST_COVERAGE=true to enable code coverage profiling. // Use RACE_DETECTOR=true to enable the race detector. func GoTestUnit(ctx context.Context) error { - return mage.GoTest(ctx, mage.DefaultGoTestUnitArgs()) + return devtools.GoTest(ctx, devtools.DefaultGoTestUnitArgs()) } // GoTestIntegration executes the Go integration tests. // Use TEST_COVERAGE=true to enable code coverage profiling. // Use RACE_DETECTOR=true to enable the race detector. func GoTestIntegration(ctx context.Context) error { - return mage.GoTest(ctx, mage.DefaultGoTestIntegrationArgs()) + return devtools.GoTest(ctx, devtools.DefaultGoTestIntegrationArgs()) +} + +// Config generates example and reference configuration for libbeat. +func Config() error { + return devtools.Config(devtools.ShortConfigType|devtools.ReferenceConfigType, devtools.ConfigFileParams{}, ".") } diff --git a/_beats/libbeat/processors/script/javascript/module/processor/chain.go b/_beats/libbeat/processors/script/javascript/module/processor/chain.go index f86300c213b..dd61022c29c 100644 --- a/_beats/libbeat/processors/script/javascript/module/processor/chain.go +++ b/_beats/libbeat/processors/script/javascript/module/processor/chain.go @@ -83,7 +83,7 @@ func (b *chainBuilder) Add(call goja.FunctionCall) goja.Value { case *beatProcessor: b.procs = append(b.procs, v.p) case func(goja.FunctionCall) goja.Value: - b.procs = append(b.procs, &jsProcessor{fn: v}) + b.procs = append(b.procs, newJSProcessor(v)) default: panic(b.runtime.NewGoError(errors.Errorf("arg0 must be a processor object, but got %T", a0.Export()))) } @@ -119,9 +119,12 @@ type jsProcessor struct { call goja.FunctionCall } +func newJSProcessor(fn jsFunction) *jsProcessor { + return &jsProcessor{fn: fn, call: goja.FunctionCall{Arguments: make([]goja.Value, 1)}} +} + func (p *jsProcessor) run(event javascript.Event) error { - p.call.Arguments = p.call.Arguments[0:] - p.call.Arguments = append(p.call.Arguments, event.JSObject()) + p.call.Arguments[0] = event.JSObject() p.fn(p.call) return nil } diff --git a/_beats/libbeat/processors/script/javascript/module/processor/processor.go b/_beats/libbeat/processors/script/javascript/module/processor/processor.go index 096cadadf0f..4322a4cfbd4 100644 --- a/_beats/libbeat/processors/script/javascript/module/processor/processor.go +++ b/_beats/libbeat/processors/script/javascript/module/processor/processor.go @@ -54,6 +54,7 @@ var constructors = map[string]processors.Constructor{ "CommunityID": communityid.New, "Convert": convert.New, "CopyFields": actions.NewCopyFields, + "DecodeBase64Field": actions.NewDecodeBase64Field, "DecodeCSVField": decode_csv_fields.NewDecodeCSVField, "DecodeJSONFields": actions.NewDecodeJSONFields, "Dissect": dissect.NewProcessor, diff --git a/_beats/libbeat/scripts/Makefile b/_beats/libbeat/scripts/Makefile index 22af70a3eda..20e68ea16f2 100755 --- a/_beats/libbeat/scripts/Makefile +++ b/_beats/libbeat/scripts/Makefile @@ -321,31 +321,15 @@ coverage-report: fields: mage @mage fields +.PHONY: config +config: mage + @mage config + ifndef EXCLUDE_COMMON_UPDATE_TARGET .PHONY: update -update: python-env fields collect ## @build Update expects the most recent version of libbeat in the GOPATH +update: python-env fields collect config ## @build Update expects the most recent version of libbeat in the GOPATH @echo "Updating generated files for ${BEAT_NAME}" - @mkdir -p _meta - @# Update config files. - @cat _meta/beat.yml ${ES_BEATS}/libbeat/_meta/config.yml | sed -e "s/beatname/${BEAT_NAME}/g;s/beat-index-prefix/${BEAT_INDEX_PREFIX}/g" > ${BEAT_NAME}.yml - ## The line below allows beats to add a post-processor script that alters the config in arbitrary ways - @if test -f scripts/post_process_config.py; then scripts/post_process_config.py ${BEAT_NAME}.yml; fi -ifneq (,$(wildcard _meta/beat.docker.yml)) - @cat _meta/beat.docker.yml ${ES_BEATS}/libbeat/_meta/config.docker.yml > ${BEAT_NAME}.docker.yml - @chmod 0640 ${BEAT_NAME}.yml ${BEAT_NAME}.docker.yml -endif - - @# Update reference config files. -ifeq ($(BEAT_REF_YAML),true) - @if [ -e _meta/beat.reference.yml ]; then \ - cat _meta/beat.reference.yml ${ES_BEATS}/libbeat/_meta/config.reference.yml | sed -e "s/beatname/${BEAT_NAME}/g;s/beat-index-prefix/${BEAT_INDEX_PREFIX}/g" > ${BEAT_NAME}.reference.yml ; \ - else \ - cat _meta/beat.yml ${ES_BEATS}/libbeat/_meta/config.reference.yml | sed -e "s/beatname/${BEAT_NAME}/g;s/beat-index-prefix/${BEAT_INDEX_PREFIX}/g" > ${BEAT_NAME}.reference.yml ; \ - fi; - @chmod 0640 ${BEAT_NAME}.reference.yml -endif - ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) mkdir -p include go run ${ES_BEATS}/dev-tools/cmd/asset/asset.go -license $(LICENSE) -pkg include -in fields.yml -out include/fields.go $(BEAT_NAME) @@ -367,7 +351,7 @@ endif endif .PHONY: docs -docs: ## @build Builds the documentation for the beat +docs: ## @build Builds the documents for the beat @if [ -d $(XPACK_DIR) ]; then \ sh ${ES_BEATS}/script/build_docs.sh ${BEAT_NAME} ${BEAT_PATH}/docs ${BUILD_DIR} ${XPACK_DIR}; \ else \ @@ -375,7 +359,7 @@ docs: ## @build Builds the documentation for the beat fi .PHONY: docs-preview -docs-preview: ## @build Previews the documentation for the beat in the browser +docs-preview: ## @build Preview the documents for the beat in the browser PREVIEW=1 $(MAKE) docs ### SETUP commands ### diff --git a/_beats/libbeat/scripts/generate_fields_docs.py b/_beats/libbeat/scripts/generate_fields_docs.py index 4355fe32ba0..06fdd2399ea 100644 --- a/_beats/libbeat/scripts/generate_fields_docs.py +++ b/_beats/libbeat/scripts/generate_fields_docs.py @@ -13,11 +13,15 @@ def document_fields(output, section, sections, path): output.write("{}\n".format(section["prefix"])) # Intermediate level titles - if "description" in section and "prefix" not in section and "anchor" not in section: + if ("description" in section and "prefix" not in section and + "anchor" not in section): output.write("[float]\n") if "description" in section: - output.write("== {} fields\n\n".format(section["name"])) + if "anchor" in section: + output.write("== {} fields\n\n".format(section["name"])) + else: + output.write("=== {}\n\n".format(section["name"])) output.write("{}\n\n".format(section["description"])) if "fields" not in section or not section["fields"]: @@ -51,6 +55,8 @@ def document_field(output, field, field_path): if "deprecated" in field: output.write("\ndeprecated[{}]\n\n".format(field["deprecated"])) + if "description" in field: + output.write("{}\n\n".format(field["description"])) if "type" in field: output.write("type: {}\n\n".format(field["type"])) if "example" in field: @@ -61,8 +67,6 @@ def document_field(output, field, field_path): output.write("required: {}\n\n".format(field["required"])) if "path" in field: output.write("alias to: {}\n\n".format(field["path"])) - if "description" in field: - output.write("{}\n\n".format(field["description"])) if "index" in field: if not field["index"]: @@ -72,10 +76,12 @@ def document_field(output, field, field_path): if not field["enabled"]: output.write("{}\n\n".format("Object is not enabled.")) + output.write("--\n\n") + if "multi_fields" in field: for subfield in field["multi_fields"]: - document_field(output, subfield, field_path + "." + subfield["name"]) - output.write("--\n\n") + document_field(output, subfield, field_path + "." + + subfield["name"]) def fields_to_asciidoc(input, output, beat): @@ -113,8 +119,9 @@ def fields_to_asciidoc(input, output, beat): for field in section["fields"]: name = field["name"] if name in fields: - assert field["type"] == fields[name]["type"], 'field "{}" redefined with different type "{}"'.format( - name, field["type"]) + assert field["type"] == (fields[name]["type"], + 'field "{}" redefined with different type "{}"'.format( + name, field["type"])) fields[name].update(field) else: fields[name] = field @@ -146,8 +153,10 @@ def fields_to_asciidoc(input, output, beat): description="Generates the documentation for a Beat.") parser.add_argument("fields", help="Path to fields.yml") parser.add_argument("beattitle", help="The beat title") - parser.add_argument("es_beats", help="The path to the general beats folder") - parser.add_argument("--output_path", default="", dest="output_path", help="Output path, if different from path") + parser.add_argument("es_beats", + help="The path to the general beats folder") + parser.add_argument("--output_path", default="", dest="output_path", + help="Output path, if different from path") args = parser.parse_args() diff --git a/_beats/script/build_docs.sh b/_beats/script/build_docs.sh index 3224b2c710c..b085233911e 100755 --- a/_beats/script/build_docs.sh +++ b/_beats/script/build_docs.sh @@ -37,5 +37,5 @@ do params="$params --resource=${resource_dir}" fi - $docs_dir/build_docs $params --doc "$index" --out "$dest_dir" + $docs_dir/build_docs.pl $params --doc "$index" -out "$dest_dir" done diff --git a/_beats/vendor/vendor.json b/_beats/vendor/vendor.json index c73a4b6640a..143025ed106 100644 --- a/_beats/vendor/vendor.json +++ b/_beats/vendor/vendor.json @@ -175,6 +175,14 @@ "version": "v2.0.0-preview.5", "versionExact": "v2.0.0-preview.5" }, + { + "checksumSHA1": "hKCG2tJrxNuV9sHh8TWDQ643i8Y=", + "path": "github.com/aws/aws-sdk-go-v2/aws/arn", + "revision": "d52522b5f4b95591ff6528d7c54923951aadf099", + "revisionTime": "2018-09-27T22:51:20Z", + "version": "v2.0.0-preview.5", + "versionExact": "v2.0.0-preview.5" + }, { "checksumSHA1": "DVN6AdXnfTwEOLJwCOhFqJAEF1E=", "path": "github.com/aws/aws-sdk-go-v2/aws/awserr", @@ -431,6 +439,22 @@ "version": "v2.0.0-preview.5", "versionExact": "v2.0.0-preview.5" }, + { + "checksumSHA1": "Vebj6WNIEJVmgAePYvcknvwkE6w=", + "path": "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi", + "revision": "d52522b5f4b95591ff6528d7c54923951aadf099", + "revisionTime": "2018-09-27T22:51:20Z", + "version": "v2.0.0-preview.5", + "versionExact": "v2.0.0-preview.5" + }, + { + "checksumSHA1": "6zjMT1t8nDv2HRJDeUpFLurZdoE=", + "path": "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface", + "revision": "d52522b5f4b95591ff6528d7c54923951aadf099", + "revisionTime": "2018-09-27T22:51:20Z", + "version": "v2.0.0-preview.5", + "versionExact": "v2.0.0-preview.5" + }, { "checksumSHA1": "/1ueZe/ATSjk0EEVbEkkROXC/hk=", "path": "github.com/aws/aws-sdk-go-v2/service/s3", @@ -898,6 +922,15 @@ "version": "v0.4.0", "versionExact": "v0.4.0" }, + { + "checksumSHA1": "c54eehjtxPjBUbM4aQuDPgc7G9Q=", + "path": "github.com/elastic/go-lookslike", + "revision": "807124eb9fc6684949aa99744577175fd6bac4fd", + "revisionTime": "2019-06-17T15:05:19Z", + "tree": true, + "version": "v0.2.0", + "versionExact": "v0.2.0" + }, { "checksumSHA1": "3jizmlZPCyo6FAZY8Trk9jA8NH4=", "path": "github.com/elastic/go-lumber/client/v2", @@ -1246,44 +1279,44 @@ "revisionTime": "2018-08-31T13:10:45Z" }, { - "checksumSHA1": "c1rU7WNZ+1AwZcRPBWhPBHcbZjg=", + "checksumSHA1": "tuhGcluN3UtoiFBovqsep6aPx3s=", "path": "github.com/elastic/gosigar", - "revision": "1227b9d6877d126ad640087e44439d70dba2df4f", - "revisionTime": "2019-05-08T13:07:01Z", - "version": "v0.10.2", - "versionExact": "v0.10.2" + "revision": "99ed9cf55303a9d3936cb656b9a86a4a6e67b30a", + "revisionTime": "2019-05-27T11:32:19Z", + "version": "v0.10.3", + "versionExact": "v0.10.3" }, { "checksumSHA1": "TX9y4oPL5YmT4Gb/OU4GIPTdQB4=", "path": "github.com/elastic/gosigar/cgroup", - "revision": "1227b9d6877d126ad640087e44439d70dba2df4f", - "revisionTime": "2019-05-08T13:07:01Z", - "version": "v0.10.2", - "versionExact": "v0.10.2" + "revision": "99ed9cf55303a9d3936cb656b9a86a4a6e67b30a", + "revisionTime": "2019-05-27T11:32:19Z", + "version": "v0.10.3", + "versionExact": "v0.10.3" }, { "checksumSHA1": "hPqGM3DENaGfipEODoyZ4mKogTQ=", "path": "github.com/elastic/gosigar/sys", - "revision": "1227b9d6877d126ad640087e44439d70dba2df4f", - "revisionTime": "2019-05-08T13:07:01Z", - "version": "v0.10.2", - "versionExact": "v0.10.2" + "revision": "99ed9cf55303a9d3936cb656b9a86a4a6e67b30a", + "revisionTime": "2019-05-27T11:32:19Z", + "version": "v0.10.3", + "versionExact": "v0.10.3" }, { "checksumSHA1": "mLq5lOyD0ZU39ysXuf1ETOLJ+f0=", "path": "github.com/elastic/gosigar/sys/linux", - "revision": "1227b9d6877d126ad640087e44439d70dba2df4f", - "revisionTime": "2019-05-08T13:07:01Z", - "version": "v0.10.2", - "versionExact": "v0.10.2" + "revision": "99ed9cf55303a9d3936cb656b9a86a4a6e67b30a", + "revisionTime": "2019-05-27T11:32:19Z", + "version": "v0.10.3", + "versionExact": "v0.10.3" }, { "checksumSHA1": "R70u1XUHH/t1pquvHEFDeUFtkFk=", "path": "github.com/elastic/gosigar/sys/windows", - "revision": "1227b9d6877d126ad640087e44439d70dba2df4f", - "revisionTime": "2019-05-08T13:07:01Z", - "version": "v0.10.2", - "versionExact": "v0.10.2" + "revision": "99ed9cf55303a9d3936cb656b9a86a4a6e67b30a", + "revisionTime": "2019-05-27T11:32:19Z", + "version": "v0.10.3", + "versionExact": "v0.10.3" }, { "checksumSHA1": "Klc34HULvwvY4cGA/D8HmqtXLqw=", diff --git a/_meta/beat.yml b/_meta/beat.yml index 2e39ad59b59..b763f17b84c 100644 --- a/_meta/beat.yml +++ b/_meta/beat.yml @@ -4,7 +4,7 @@ apm-server: # Defines the host and port the server is listening on. use "unix:/path/to.sock" to listen on a unix domain socket. - host: "localhost:8200" + host: "{{ .listen_hostport }}" # Maximum permitted size in bytes of a request's header accepted by the server to be processed. #max_header_size: 1048576 @@ -315,7 +315,7 @@ output.elasticsearch: # Scheme and port can be left out and will be set to the default (http and 9200) # In case you specify and additional path, the scheme is required: http://localhost:9200/path # IPv6 addresses should always be defined as: https://[2001:db8::1]:9200 - hosts: ["localhost:9200"] + hosts: ["{{ .elasticsearch_hostport }}"] # Boolean flag to enable or disable the output module. #enabled: true diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index 2c6d3e9cb1a..5ac7d71dc61 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -17,7 +17,7 @@ grouped in the following categories: * <> * <> * <> -* <> +* <> * <> * <> * <> @@ -37,34 +37,34 @@ Fields common to various APM events. *`processor.name`*:: + -- -type: keyword - Processor name. +type: keyword + -- *`processor.event`*:: + -- -type: keyword - Processor event. +type: keyword + -- *`timestamp.us`*:: + -- -type: long - Timestamp of the event in microseconds since Unix epoch. +type: long + -- [float] -== url fields +=== url A complete Url, with scheme, host and path. @@ -73,103 +73,103 @@ A complete Url, with scheme, host and path. *`url.scheme`*:: + -- -type: keyword - The protocol of the request, e.g. "https:". +type: keyword + -- *`url.full`*:: + -- -type: keyword - The full, possibly agent-assembled URL of the request, e.g https://example.com:443/search?q=elasticsearch#top. +type: keyword + -- *`url.domain`*:: + -- -type: keyword - The hostname of the request, e.g. "example.com". +type: keyword + -- *`url.port`*:: + -- -type: long - The port of the request, e.g. 443. +type: long + -- *`url.path`*:: + -- -type: keyword - The path of the request, e.g. "/search". +type: keyword + -- *`url.query`*:: + -- -type: keyword - The query string of the request, e.g. "q=elasticsearch". +type: keyword + -- *`url.fragment`*:: + -- -type: keyword - A fragment specifying a location in a web page , e.g. "top". +type: keyword + -- *`http.version`*:: + -- -type: keyword - The http version of the request leading to this event. +type: keyword + -- *`http.request.method`*:: + -- -type: keyword - The http method of the request leading to this event. +type: keyword + -- *`http.request.headers`*:: + -- -type: object - The canonical headers of the monitored HTTP request. +type: object + Object is not enabled. -- @@ -178,31 +178,31 @@ Object is not enabled. *`http.response.status_code`*:: + -- -type: long - The status code of the HTTP response. +type: long + -- *`http.response.finished`*:: + -- -type: boolean - Used by the Node agent to indicate when in the response life cycle an error has occurred. +type: boolean + -- *`http.response.headers`*:: + -- -type: object - The canonical headers of the monitored HTTP response. +type: object + Object is not enabled. -- @@ -210,15 +210,15 @@ Object is not enabled. *`labels`*:: + -- -type: object - A flat mapping of user-defined labels with string, boolean or number values. +type: object + -- [float] -== service fields +=== service Service fields. @@ -227,135 +227,137 @@ Service fields. *`service.name`*:: + -- -type: keyword - Immutable unique name of the service emitting this event. +type: keyword + -- *`service.version`*:: + -- -type: keyword - Version of the service emitting this event. +type: keyword + -- *`service.environment`*:: + -- -type: keyword - Service environment. +type: keyword + -- *`service.language.name`*:: + -- -type: keyword - Name of the programming language used. +type: keyword + -- *`service.language.version`*:: + -- -type: keyword - Version of the programming language used. +type: keyword + -- *`service.runtime.name`*:: + -- -type: keyword - Name of the runtime used. +type: keyword + -- *`service.runtime.version`*:: + -- -type: keyword - Version of the runtime used. +type: keyword + -- *`service.framework.name`*:: + -- -type: keyword - Name of the framework used. +type: keyword + -- *`service.framework.version`*:: + -- -type: keyword - Version of the framework used. +type: keyword + -- *`transaction.id`*:: + -- -type: keyword - The transaction ID. +type: keyword + -- *`transaction.sampled`*:: + -- -type: boolean - Transactions that are 'sampled' will include all available information. Transactions that are not sampled will not have spans or context. +type: boolean + -- *`transaction.type`*:: + -- -type: keyword - Keyword of specific relevance in the service's domain (eg. 'request', 'backgroundjob', etc) +type: keyword + -- *`transaction.name`*:: + -- -type: keyword - Generic designation of a transaction in the scope of a single service (eg. 'GET /users/:id'). +type: keyword + +-- + *`transaction.name.text`*:: + -- @@ -363,10 +365,8 @@ type: text -- --- - [float] -== duration fields +=== duration None @@ -387,7 +387,7 @@ type: long -- [float] -== self_time fields +=== self_time Portion of the transaction's duration where no direct child was running @@ -409,7 +409,7 @@ type: long -- [float] -== breakdown fields +=== breakdown Counter for collected breakdowns for the transaction @@ -426,25 +426,25 @@ type: long *`span.type`*:: + -- -type: keyword - Keyword of specific relevance in the service's domain (eg: 'db.postgresql.query', 'template.erb', 'cache', etc). +type: keyword + -- *`span.subtype`*:: + -- -type: keyword - A further sub-division of the type (e.g. postgresql, elasticsearch) +type: keyword + -- [float] -== self_time fields +=== self_time Portion of the span's duration where no direct child was running @@ -469,57 +469,57 @@ type: long *`trace.id`*:: + -- -type: keyword - The ID of the trace to which the event belongs to. +type: keyword + -- *`parent.id`*:: + -- -type: keyword - The ID of the parent event. +type: keyword + -- *`agent.name`*:: + -- -type: keyword - Name of the agent used. +type: keyword + -- *`agent.version`*:: + -- -type: keyword - Version of the agent used. +type: keyword + -- *`agent.ephemeral_id`*:: + -- -type: keyword - The Ephemeral ID identifies a running process. +type: keyword + -- [float] -== container fields +=== container Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. @@ -528,15 +528,15 @@ Container fields are used for meta information about the specific container that *`container.id`*:: + -- -type: keyword - Unique container id. +type: keyword + -- [float] -== kubernetes fields +=== kubernetes Kubernetes metadata reported by agents @@ -545,47 +545,47 @@ Kubernetes metadata reported by agents *`kubernetes.namespace`*:: + -- -type: keyword - Kubernetes namespace +type: keyword + -- *`kubernetes.node.name`*:: + -- -type: keyword - Kubernetes node name +type: keyword + -- *`kubernetes.pod.name`*:: + -- -type: keyword - Kubernetes pod name +type: keyword + -- *`kubernetes.pod.uid`*:: + -- -type: keyword - Kubernetes Pod UID +type: keyword + -- [float] -== host fields +=== host Optional host fields. @@ -594,35 +594,35 @@ Optional host fields. *`host.architecture`*:: + -- -type: keyword - The architecture of the host the event was recorded on. +type: keyword + -- *`host.hostname`*:: + -- -type: keyword - The hostname of the host the event was recorded on. +type: keyword + -- *`host.ip`*:: + -- -type: ip - IP of the host that records the event. +type: ip + -- [float] -== os fields +=== os The OS fields contain information about the operating system. @@ -631,15 +631,15 @@ The OS fields contain information about the operating system. *`host.os.platform`*:: + -- -type: keyword - The platform of the host the event was recorded on. +type: keyword + -- [float] -== process fields +=== process Information pertaining to the running process where the data was collected @@ -648,139 +648,139 @@ Information pertaining to the running process where the data was collected *`process.args`*:: + -- -type: keyword - Process arguments. May be filtered to protect sensitive information. +type: keyword + -- *`process.pid`*:: + -- -type: long - Numeric process ID of the service process. +type: long + -- *`process.ppid`*:: + -- -type: long - Numeric ID of the service's parent process. +type: long + -- *`process.title`*:: + -- -type: keyword - Service process title. +type: keyword + -- *`observer.listening`*:: + -- -type: keyword - Address the server is listening on. +type: keyword + -- *`observer.hostname`*:: + -- -type: keyword - Hostname of the APM Server. +type: keyword + -- *`observer.version`*:: + -- -type: keyword - APM Server version. +type: keyword + -- *`observer.version_major`*:: + -- -type: byte - Major version number of the observer +type: byte + -- *`observer.type`*:: + -- -type: keyword - The type will be set to `apm-server`. +type: keyword + -- *`user.name`*:: + -- -type: keyword - The username of the logged in user. +type: keyword + -- *`user.id`*:: + -- -type: keyword - Identifier of the logged in user. +type: keyword + -- *`user.email`*:: + -- -type: keyword - Email of the logged in user. +type: keyword + -- *`client.ip`*:: + -- -type: ip - IP of the user where the event is recorded, typically a web browser. This is obtained from the X-Forwarded-For header, of which the first entry is the IP of the original client. This value however might not be necessarily trusted, as it can be forged by a malicious user. +type: ip + -- [float] -== user_agent fields +=== user_agent The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. @@ -789,51 +789,51 @@ The user_agent fields normally come from a browser request. They often show up i *`user_agent.original`*:: + -- +Unparsed version of the user_agent. + + type: keyword example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 -Unparsed version of the user_agent. - +-- *`user_agent.original.text`*:: + -- -type: text - Software agent acting in behalf of a user, eg. a web browser / OS combination. --- +type: text -- *`user_agent.name`*:: + -- -type: keyword +Name of the user agent. -example: Safari -Name of the user agent. +type: keyword +example: Safari -- *`user_agent.version`*:: + -- -type: keyword +Version of the user agent. -example: 12.0 -Version of the user agent. +type: keyword +example: 12.0 -- [float] -== device fields +=== device Information concerning the device. @@ -842,17 +842,17 @@ Information concerning the device. *`user_agent.device.name`*:: + -- -type: keyword +Name of the device. -example: iPhone -Name of the device. +type: keyword +example: iPhone -- [float] -== os fields +=== os The OS fields contain information about the operating system. @@ -861,82 +861,82 @@ The OS fields contain information about the operating system. *`user_agent.os.platform`*:: + -- -type: keyword +Operating system platform (such centos, ubuntu, windows). -example: darwin -Operating system platform (such centos, ubuntu, windows). +type: keyword +example: darwin -- *`user_agent.os.name`*:: + -- -type: keyword +Operating system name, without the version. -example: Mac OS X -Operating system name, without the version. +type: keyword +example: Mac OS X -- *`user_agent.os.full`*:: + -- -type: keyword +Operating system name, including the version or code name. -example: Mac OS Mojave -Operating system name, including the version or code name. +type: keyword +example: Mac OS Mojave -- *`user_agent.os.family`*:: + -- -type: keyword +OS family (such as redhat, debian, freebsd, windows). -example: debian -OS family (such as redhat, debian, freebsd, windows). +type: keyword +example: debian -- *`user_agent.os.version`*:: + -- -type: keyword +Operating system version as a raw string. -example: 10.14.1 -Operating system version as a raw string. +type: keyword +example: 10.14.1 -- *`user_agent.os.kernel`*:: + -- -type: keyword +Operating system kernel version as a raw string. -example: 4.4.0-112-generic -Operating system kernel version as a raw string. +type: keyword +example: 4.4.0-112-generic -- *`experimental`*:: + -- -type: object - Additional experimental data sent by the agents. +type: object + -- [[exported-fields-apm-error]] @@ -946,7 +946,7 @@ Error-specific data for APM [float] -== error fields +=== error Data captured by an agent representing an event occurring in a monitored service. @@ -955,34 +955,34 @@ Data captured by an agent representing an event occurring in a monitored service *`error.id`*:: + -- -type: keyword - The ID of the error. +type: keyword + -- *`error.culprit`*:: + -- -type: keyword - Function call which was the primary perpetrator of this event. +type: keyword + -- *`error.grouping_key`*:: + -- -type: keyword - GroupingKey of the logged error for use in grouping. +type: keyword + -- [float] -== exception fields +=== exception Information about the originally thrown error. @@ -991,28 +991,28 @@ Information about the originally thrown error. *`error.exception.code`*:: + -- -type: keyword - The error code set when the error happened, e.g. database error code. +type: keyword + -- *`error.exception.message`*:: + -- -type: text - The original error message. +type: text + -- *`error.exception.module`*:: + -- -type: keyword - The module namespace of the original error. +type: keyword + -- *`error.exception.type`*:: @@ -1025,14 +1025,14 @@ type: keyword *`error.exception.handled`*:: + -- -type: boolean - Indicator whether the error was caught somewhere in the code or not. +type: boolean + -- [float] -== log fields +=== log Additional information added by logging the error. @@ -1041,38 +1041,38 @@ Additional information added by logging the error. *`error.log.level`*:: + -- -type: keyword - The severity of the record. +type: keyword + -- *`error.log.logger_name`*:: + -- -type: keyword - The name of the logger instance used. +type: keyword + -- *`error.log.message`*:: + -- -type: text - The additionally logged error message. +type: text + -- *`error.log.param_message`*:: + -- -type: keyword - A parametrized message. E.g. 'Could not connect to %s'. The property message is still required, and should be equal to the param_message, but with placeholders replaced. In some situations the param_message is used to group errors together. +type: keyword + -- [[exported-fields-apm-sourcemap]] @@ -1083,7 +1083,7 @@ Sourcemap files enriched with metadata [float] -== service fields +=== service Service fields. @@ -1092,31 +1092,31 @@ Service fields. *`sourcemap.service.name`*:: + -- -type: keyword - The name of the service this sourcemap belongs to. +type: keyword + -- *`sourcemap.service.version`*:: + -- -type: keyword - Service version. +type: keyword + -- *`sourcemap.bundle_filepath`*:: + -- -type: keyword - Location of the sourcemap relative to the file requesting it. +type: keyword + -- [[exported-fields-apm-span]] @@ -1136,63 +1136,63 @@ format: url *`span.id`*:: + -- -type: keyword - The ID of the span stored as hex encoded string. +type: keyword + -- *`span.name`*:: + -- -type: keyword - Generic designation of a span in the scope of a transaction. +type: keyword + -- *`span.action`*:: + -- -type: keyword - The specific kind of event within the sub-type represented by the span (e.g. query, connect) +type: keyword + -- *`span.start.us`*:: + -- -type: long - Offset relative to the transaction's timestamp identifying the start of the span, in microseconds. +type: long + -- *`span.duration.us`*:: + -- -type: long - Duration of the span, in microseconds. +type: long + -- *`span.sync`*:: + -- -type: boolean - Indicates whether the span was executed synchronously or asynchronously. +type: boolean + -- [[exported-fields-apm-transaction]] @@ -1203,7 +1203,7 @@ Transaction-specific data for APM [float] -== duration fields +=== duration None @@ -1211,31 +1211,31 @@ None *`transaction.duration.us`*:: + -- -type: long - Total duration of this transaction, in microseconds. +type: long + -- *`transaction.result`*:: + -- -type: keyword - The result of the transaction. HTTP status code for HTTP-related transactions. +type: keyword + -- *`transaction.marks`*:: + -- -type: object - A user-defined mapping of groups of marks in milliseconds. +type: object + -- *`transaction.marks.*.*`*:: @@ -1249,13 +1249,13 @@ type: object *`transaction.span_count.dropped`*:: + -- -type: long - The total amount of dropped spans for this transaction. +type: long + -- -[[exported-fields-beat]] +[[exported-fields-beat-common]] == Beat fields Contains common beat fields available in all event types. @@ -1265,10 +1265,10 @@ Contains common beat fields available in all event types. *`agent.hostname`*:: + -- -type: keyword - Hostname of the agent. +type: keyword + -- *`beat.timezone`*:: @@ -1283,15 +1283,15 @@ alias to: event.timezone *`fields`*:: + -- -type: object - Contains user configurable fields. +type: object + -- [float] -== error fields +=== error Error fields containing additional info in case of errors. @@ -1300,11 +1300,11 @@ Error fields containing additional info in case of errors. *`error.type`*:: + -- -type: keyword - Error type. +type: keyword + -- *`beat.name`*:: @@ -1328,10 +1328,10 @@ alias to: agent.hostname *`timeseries.instance`*:: + -- -type: keyword - Time series instance id +type: keyword + -- [[exported-fields-cloud]] @@ -1344,21 +1344,21 @@ Metadata from cloud providers added by the add_cloud_metadata processor. *`cloud.project.id`*:: + -- -example: project-x - Name of the project in Google Cloud. +example: project-x + -- *`cloud.image.id`*:: + -- -example: ami-abcd1234 - Image ID for the cloud instance. +example: ami-abcd1234 + -- *`meta.cloud.provider`*:: @@ -1462,11 +1462,11 @@ alias to: container.name *`docker.container.labels`*:: + -- -type: object - Image labels. +type: object + -- [[exported-fields-ecs]] @@ -1478,58 +1478,58 @@ ECS Fields. *`@timestamp`*:: + -- +Date/time when the event originated. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. +Required field for all events. + type: date example: 2016-05-23T08:05:34.853Z required: True -Date/time when the event originated. -This is the date/time extracted from the event, typically representing when the event was generated by the source. -If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. -Required field for all events. - -- *`labels`*:: + -- -type: object - -example: {'application': 'foo-bar', 'env': 'production'} - Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. +type: object + +example: {'application': 'foo-bar', 'env': 'production'} + -- *`message`*:: + -- -type: text - -example: Hello World - For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. +type: text + +example: Hello World + -- *`tags`*:: + -- +List of keywords used to tag each event. + type: keyword example: ["production", "env2"] -List of keywords used to tag each event. - -- [float] -== agent fields +=== agent The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. @@ -1538,65 +1538,65 @@ Examples include Beats. Agents may also run on observers. ECS agent.* fields sha *`agent.ephemeral_id`*:: + -- +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + type: keyword example: 8a4f500f -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. - -- *`agent.id`*:: + -- +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. + type: keyword example: 8a4f500d -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - -- *`agent.name`*:: + -- -type: keyword - -example: foo - Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. +type: keyword + +example: foo + -- *`agent.type`*:: + -- +Type of the agent. +The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. + type: keyword example: filebeat -Type of the agent. -The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - -- *`agent.version`*:: + -- +Version of the agent. + type: keyword example: 6.0.0-rc2 -Version of the agent. - -- [float] -== client fields +=== client A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. @@ -1606,236 +1606,236 @@ Client / server representations can add semantic context to an exchange, which i *`client.address`*:: + -- -type: keyword - Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +type: keyword + -- *`client.bytes`*:: + -- +Bytes sent from the client to the server. + type: long example: 184 format: bytes -Bytes sent from the client to the server. - -- *`client.domain`*:: + -- -type: keyword - Client domain. +type: keyword + -- *`client.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`client.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`client.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`client.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`client.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`client.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`client.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`client.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`client.ip`*:: + -- -type: ip - IP address of the client. Can be one or multiple IPv4 or IPv6 addresses. +type: ip + -- *`client.mac`*:: + -- -type: keyword - MAC address of the client. +type: keyword + -- *`client.packets`*:: + -- +Packets sent from the client to the server. + type: long example: 12 -Packets sent from the client to the server. - -- *`client.port`*:: + -- +Port of the client. + type: long format: string -Port of the client. - -- *`client.user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`client.user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`client.user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`client.user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`client.user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`client.user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`client.user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== cloud fields +=== cloud Fields related to the cloud or infrastructure the events are coming from. @@ -1843,81 +1843,81 @@ Fields related to the cloud or infrastructure the events are coming from. *`cloud.account.id`*:: + -- +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. + type: keyword example: 666777888999 -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. - -- *`cloud.availability_zone`*:: + -- +Availability zone in which this host is running. + type: keyword example: us-east-1c -Availability zone in which this host is running. - -- *`cloud.instance.id`*:: + -- +Instance ID of the host machine. + type: keyword example: i-1234567890abcdef0 -Instance ID of the host machine. - -- *`cloud.instance.name`*:: + -- -type: keyword - Instance name of the host machine. +type: keyword + -- *`cloud.machine.type`*:: + -- +Machine type of the host machine. + type: keyword example: t2.medium -Machine type of the host machine. - -- *`cloud.provider`*:: + -- +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + type: keyword example: aws -Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. - -- *`cloud.region`*:: + -- +Region in which this host is running. + type: keyword example: us-east-1 -Region in which this host is running. - -- [float] -== container fields +=== container Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. @@ -1926,61 +1926,61 @@ These fields help correlate data based containers from any runtime. *`container.id`*:: + -- -type: keyword - Unique container id. +type: keyword + -- *`container.image.name`*:: + -- -type: keyword - Name of the image the container was built on. +type: keyword + -- *`container.image.tag`*:: + -- -type: keyword - Container image tag. +type: keyword + -- *`container.labels`*:: + -- -type: object - Image labels. +type: object + -- *`container.name`*:: + -- -type: keyword - Container name. +type: keyword + -- *`container.runtime`*:: + -- +Runtime managing this container. + type: keyword example: docker -Runtime managing this container. - -- [float] -== destination fields +=== destination Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. @@ -1989,236 +1989,236 @@ Destination fields are usually populated in conjunction with source fields. *`destination.address`*:: + -- -type: keyword - Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +type: keyword + -- *`destination.bytes`*:: + -- +Bytes sent from the destination to the source. + type: long example: 184 format: bytes -Bytes sent from the destination to the source. - -- *`destination.domain`*:: + -- -type: keyword - Destination domain. +type: keyword + -- *`destination.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`destination.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`destination.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`destination.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`destination.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`destination.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`destination.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`destination.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`destination.ip`*:: + -- -type: ip - IP address of the destination. Can be one or multiple IPv4 or IPv6 addresses. +type: ip + -- *`destination.mac`*:: + -- -type: keyword - MAC address of the destination. +type: keyword + -- *`destination.packets`*:: + -- +Packets sent from the destination to the source. + type: long example: 12 -Packets sent from the destination to the source. - -- *`destination.port`*:: + -- +Port of the destination. + type: long format: string -Port of the destination. - -- *`destination.user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`destination.user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`destination.user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`destination.user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`destination.user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`destination.user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`destination.user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== ecs fields +=== ecs Meta-information specific to ECS. @@ -2226,19 +2226,19 @@ Meta-information specific to ECS. *`ecs.version`*:: + -- +ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. +When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + type: keyword example: 1.0.0 required: True -ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. -When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. - -- [float] -== error fields +=== error These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. @@ -2247,32 +2247,32 @@ Use them for errors that happen while fetching events or in cases where the even *`error.code`*:: + -- -type: keyword - Error code describing the error. +type: keyword + -- *`error.id`*:: + -- -type: keyword - Unique identifier for the error. +type: keyword + -- *`error.message`*:: + -- -type: text - Error message. +type: text + -- [float] -== event fields +=== event The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. @@ -2281,205 +2281,205 @@ A log is defined as an event containing details of something that happened. Log *`event.action`*:: + -- +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + type: keyword example: user-password-change -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. - -- *`event.category`*:: + -- +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + type: keyword example: user-management -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. - -- *`event.created`*:: + -- -type: date - event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. +type: date + -- *`event.dataset`*:: + -- +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. + type: keyword example: stats -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. - -- *`event.duration`*:: + -- +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. + type: long format: duration -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. - -- *`event.end`*:: + -- -type: date - event.end contains the date when the event ended or when the activity was last observed. +type: date + -- *`event.hash`*:: + -- +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. + type: keyword example: 123456789012345678901234567890ABCD -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. - -- *`event.id`*:: + -- +Unique ID to describe the event. + type: keyword example: 8a4f500d -Unique ID to describe the event. - -- *`event.kind`*:: + -- +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + type: keyword example: state -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. - -- *`event.module`*:: + -- +Name of the module this data is coming from. +This information is coming from the modules used in Beats or Logstash. + type: keyword example: mysql -Name of the module this data is coming from. -This information is coming from the modules used in Beats or Logstash. - -- *`event.original`*:: + -- +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + type: keyword example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. - -- *`event.outcome`*:: + -- +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + type: keyword example: success -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. - -- *`event.risk_score`*:: + -- -type: float - Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: float + -- *`event.risk_score_norm`*:: + -- -type: float - Normalized risk score or priority of the event, on a scale of 0 to 100. This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: float + -- *`event.severity`*:: + -- +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. + type: long example: 7 format: string -Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - -- *`event.start`*:: + -- -type: date - event.start contains the date when the event started or when the activity was first observed. +type: date + -- *`event.timezone`*:: + -- -type: keyword - This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +type: keyword + -- *`event.type`*:: + -- -type: keyword - Reserved for future usage. Please avoid using this field for user data. +type: keyword + -- [float] -== file fields +=== file A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. @@ -2488,136 +2488,136 @@ File objects can be associated with host events, network events, and/or file eve *`file.ctime`*:: + -- -type: date - Last time file metadata changed. +type: date + -- *`file.device`*:: + -- -type: keyword - Device that is the source of the file. +type: keyword + -- *`file.extension`*:: + -- +File extension. +This should allow easy filtering by file extensions. + type: keyword example: png -File extension. -This should allow easy filtering by file extensions. - -- *`file.gid`*:: + -- -type: keyword - Primary group ID (GID) of the file. +type: keyword + -- *`file.group`*:: + -- -type: keyword - Primary group name of the file. +type: keyword + -- *`file.inode`*:: + -- -type: keyword - Inode representing the file in the filesystem. +type: keyword + -- *`file.mode`*:: + -- +Mode of the file in octal representation. + type: keyword example: 416 -Mode of the file in octal representation. - -- *`file.mtime`*:: + -- -type: date - Last time file content was modified. +type: date + -- *`file.owner`*:: + -- -type: keyword - File owner's username. +type: keyword + -- *`file.path`*:: + -- -type: keyword - Path to the file. +type: keyword + -- *`file.size`*:: + -- -type: long - File size in bytes (field is only added when `type` is `file`). +type: long + -- *`file.target_path`*:: + -- -type: keyword - Target path for symlinks. +type: keyword + -- *`file.type`*:: + -- -type: keyword - File type (file, dir, or symlink). +type: keyword + -- *`file.uid`*:: + -- -type: keyword - The user ID (UID) or security identifier (SID) of the file owner. +type: keyword + -- [float] -== geo fields +=== geo Geo fields can carry data about a specific location related to an event. This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. @@ -2626,95 +2626,95 @@ This geolocation information can be derived from techniques such as Geo IP, or b *`geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- [float] -== group fields +=== group The group fields are meant to represent groups that are relevant to the event. @@ -2722,23 +2722,23 @@ The group fields are meant to represent groups that are relevant to the event. *`group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- [float] -== host fields +=== host A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. @@ -2747,299 +2747,299 @@ ECS host.* fields should be populated with details about the host on which the e *`host.architecture`*:: + -- +Operating system architecture. + type: keyword example: x86_64 -Operating system architecture. - -- *`host.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`host.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`host.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`host.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`host.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`host.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`host.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`host.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`host.hostname`*:: + -- -type: keyword - Hostname of the host. It normally contains what the `hostname` command returns on the host machine. +type: keyword + -- *`host.id`*:: + -- -type: keyword - Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. +type: keyword + -- *`host.ip`*:: + -- -type: ip - Host ip address. +type: ip + -- *`host.mac`*:: + -- -type: keyword - Host mac address. +type: keyword + -- *`host.name`*:: + -- -type: keyword - Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +type: keyword + -- *`host.os.family`*:: + -- +OS family (such as redhat, debian, freebsd, windows). + type: keyword example: debian -OS family (such as redhat, debian, freebsd, windows). - -- *`host.os.full`*:: + -- +Operating system name, including the version or code name. + type: keyword example: Mac OS Mojave -Operating system name, including the version or code name. - -- *`host.os.kernel`*:: + -- +Operating system kernel version as a raw string. + type: keyword example: 4.4.0-112-generic -Operating system kernel version as a raw string. - -- *`host.os.name`*:: + -- +Operating system name, without the version. + type: keyword example: Mac OS X -Operating system name, without the version. - -- *`host.os.platform`*:: + -- +Operating system platform (such centos, ubuntu, windows). + type: keyword example: darwin -Operating system platform (such centos, ubuntu, windows). - -- *`host.os.version`*:: + -- +Operating system version as a raw string. + type: keyword example: 10.14.1 -Operating system version as a raw string. - -- *`host.type`*:: + -- -type: keyword - Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +type: keyword + -- *`host.user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`host.user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`host.user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`host.user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`host.user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`host.user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`host.user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== http fields +=== http Fields related to HTTP activity. Use the `url` field set to store the url of the request. @@ -3047,126 +3047,126 @@ Fields related to HTTP activity. Use the `url` field set to store the url of the *`http.request.body.bytes`*:: + -- +Size in bytes of the request body. + type: long example: 887 format: bytes -Size in bytes of the request body. - -- *`http.request.body.content`*:: + -- +The full HTTP request body. + type: keyword example: Hello world -The full HTTP request body. - -- *`http.request.bytes`*:: + -- +Total size in bytes of the request (body and headers). + type: long example: 1437 format: bytes -Total size in bytes of the request (body and headers). - -- *`http.request.method`*:: + -- +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + type: keyword example: get, post, put -HTTP request method. -The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". - -- *`http.request.referrer`*:: + -- +Referrer for this HTTP request. + type: keyword example: https://blog.example.com/ -Referrer for this HTTP request. - -- *`http.response.body.bytes`*:: + -- +Size in bytes of the response body. + type: long example: 887 format: bytes -Size in bytes of the response body. - -- *`http.response.body.content`*:: + -- +The full HTTP response body. + type: keyword example: Hello world -The full HTTP response body. - -- *`http.response.bytes`*:: + -- +Total size in bytes of the response (body and headers). + type: long example: 1437 format: bytes -Total size in bytes of the response (body and headers). - -- *`http.response.status_code`*:: + -- +HTTP response status code. + type: long example: 404 format: string -HTTP response status code. - -- *`http.version`*:: + -- +HTTP version. + type: keyword example: 1.1 -HTTP version. - -- [float] -== log fields +=== log Fields which are specific to log events. @@ -3174,30 +3174,30 @@ Fields which are specific to log events. *`log.level`*:: + -- +Original log level of the log event. +Some examples are `warn`, `error`, `i`. + type: keyword example: err -Original log level of the log event. -Some examples are `warn`, `error`, `i`. - -- *`log.original`*:: + -- -type: keyword - -example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. +type: keyword + +example: Sep 19 08:26:10 localhost My log + -- [float] -== network fields +=== network The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. @@ -3206,48 +3206,44 @@ The network.* fields should be populated with details about the network activity *`network.application`*:: + -- +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + type: keyword example: aim -A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". - -- *`network.bytes`*:: + -- +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + type: long example: 368 format: bytes -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. - -- *`network.community_id`*:: + -- +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. + type: keyword example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. - -- *`network.direction`*:: + -- -type: keyword - -example: inbound - Direction of the network traffic. Recommended values are: * inbound @@ -3259,91 +3255,95 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. +type: keyword + +example: inbound + -- *`network.forwarded_ip`*:: + -- +Host IP address when the source IP address is the proxy. + type: ip example: 192.1.1.2 -Host IP address when the source IP address is the proxy. - -- *`network.iana_number`*:: + -- +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. + type: keyword example: 6 -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - -- *`network.name`*:: + -- +Name given by operators to sections of their network. + type: keyword example: Guest Wifi -Name given by operators to sections of their network. - -- *`network.packets`*:: + -- +Total packets transferred in both directions. +If `source.packets` and `destination.packets` are known, `network.packets` is their sum. + type: long example: 24 -Total packets transferred in both directions. -If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- *`network.protocol`*:: + -- +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + type: keyword example: http -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". - -- *`network.transport`*:: + -- +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + type: keyword example: tcp -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". - -- *`network.type`*:: + -- +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + type: keyword example: ipv4 -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". - -- [float] -== observer fields +=== observer An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. @@ -3352,227 +3352,227 @@ This could be a custom hardware appliance or a server that has been configured t *`observer.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`observer.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`observer.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`observer.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`observer.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`observer.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`observer.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`observer.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`observer.hostname`*:: + -- -type: keyword - Hostname of the observer. +type: keyword + -- *`observer.ip`*:: + -- -type: ip - IP address of the observer. +type: ip + -- *`observer.mac`*:: + -- -type: keyword - MAC address of the observer +type: keyword + -- *`observer.os.family`*:: + -- +OS family (such as redhat, debian, freebsd, windows). + type: keyword example: debian -OS family (such as redhat, debian, freebsd, windows). - -- *`observer.os.full`*:: + -- +Operating system name, including the version or code name. + type: keyword example: Mac OS Mojave -Operating system name, including the version or code name. - -- *`observer.os.kernel`*:: + -- +Operating system kernel version as a raw string. + type: keyword example: 4.4.0-112-generic -Operating system kernel version as a raw string. - -- *`observer.os.name`*:: + -- +Operating system name, without the version. + type: keyword example: Mac OS X -Operating system name, without the version. - -- *`observer.os.platform`*:: + -- +Operating system platform (such centos, ubuntu, windows). + type: keyword example: darwin -Operating system platform (such centos, ubuntu, windows). - -- *`observer.os.version`*:: + -- +Operating system version as a raw string. + type: keyword example: 10.14.1 -Operating system version as a raw string. - -- *`observer.serial_number`*:: + -- -type: keyword - Observer serial number. +type: keyword + -- *`observer.type`*:: + -- +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. + type: keyword example: firewall -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. - -- *`observer.vendor`*:: + -- -type: keyword - observer vendor information. +type: keyword + -- *`observer.version`*:: + -- -type: keyword - Observer version. +type: keyword + -- [float] -== organization fields +=== organization The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. @@ -3581,23 +3581,23 @@ These fields help you arrange or filter data stored in an index by one or multip *`organization.id`*:: + -- -type: keyword - Unique identifier for the organization. +type: keyword + -- *`organization.name`*:: + -- -type: keyword - Organization name. +type: keyword + -- [float] -== os fields +=== os The OS fields contain information about the operating system. @@ -3605,71 +3605,71 @@ The OS fields contain information about the operating system. *`os.family`*:: + -- +OS family (such as redhat, debian, freebsd, windows). + type: keyword example: debian -OS family (such as redhat, debian, freebsd, windows). - -- *`os.full`*:: + -- +Operating system name, including the version or code name. + type: keyword example: Mac OS Mojave -Operating system name, including the version or code name. - -- *`os.kernel`*:: + -- +Operating system kernel version as a raw string. + type: keyword example: 4.4.0-112-generic -Operating system kernel version as a raw string. - -- *`os.name`*:: + -- +Operating system name, without the version. + type: keyword example: Mac OS X -Operating system name, without the version. - -- *`os.platform`*:: + -- +Operating system platform (such centos, ubuntu, windows). + type: keyword example: darwin -Operating system platform (such centos, ubuntu, windows). - -- *`os.version`*:: + -- +Operating system version as a raw string. + type: keyword example: 10.14.1 -Operating system version as a raw string. - -- [float] -== process fields +=== process These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. @@ -3678,111 +3678,111 @@ These fields can help you correlate metrics information with a process id/name f *`process.args`*:: + -- +Array of process arguments. +May be filtered to protect sensitive information. + type: keyword example: ['ssh', '-l', 'user', '10.0.0.16'] -Array of process arguments. -May be filtered to protect sensitive information. - -- *`process.executable`*:: + -- +Absolute path to the process executable. + type: keyword example: /usr/bin/ssh -Absolute path to the process executable. - -- *`process.name`*:: + -- +Process name. +Sometimes called program name or similar. + type: keyword example: ssh -Process name. -Sometimes called program name or similar. - -- *`process.pid`*:: + -- +Process id. + type: long example: 4242 format: string -Process id. - -- *`process.ppid`*:: + -- +Parent process' pid. + type: long example: 4241 format: string -Parent process' pid. - -- *`process.start`*:: + -- +The time the process started. + type: date example: 2016-05-23T08:05:34.853Z -The time the process started. - -- *`process.thread.id`*:: + -- +Thread ID. + type: long example: 4242 format: string -Thread ID. - -- *`process.title`*:: + -- -type: keyword - Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. +type: keyword + -- *`process.working_directory`*:: + -- +The working directory of the process. + type: keyword example: /home/alice -The working directory of the process. - -- [float] -== related fields +=== related This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. @@ -3792,14 +3792,14 @@ A concrete example is IP addresses, which can be under host, observer, source, d *`related.ip`*:: + -- -type: ip - All of the IPs seen on your event. +type: ip + -- [float] -== server fields +=== server A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. @@ -3809,236 +3809,236 @@ Client / server representations can add semantic context to an exchange, which i *`server.address`*:: + -- -type: keyword - Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +type: keyword + -- *`server.bytes`*:: + -- +Bytes sent from the server to the client. + type: long example: 184 format: bytes -Bytes sent from the server to the client. - -- *`server.domain`*:: + -- -type: keyword - Server domain. +type: keyword + -- *`server.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`server.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`server.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`server.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`server.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`server.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`server.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`server.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`server.ip`*:: + -- -type: ip - IP address of the server. Can be one or multiple IPv4 or IPv6 addresses. +type: ip + -- *`server.mac`*:: + -- -type: keyword - MAC address of the server. +type: keyword + -- *`server.packets`*:: + -- +Packets sent from the server to the client. + type: long example: 12 -Packets sent from the server to the client. - -- *`server.port`*:: + -- +Port of the server. + type: long format: string -Port of the server. - -- *`server.user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`server.user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`server.user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`server.user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`server.user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`server.user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`server.user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== service fields +=== service The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. @@ -4047,78 +4047,78 @@ These fields help you find and correlate logs for a specific service and version *`service.ephemeral_id`*:: + -- +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. + type: keyword example: 8a4f500f -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. - -- *`service.id`*:: + -- -type: keyword - -example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 - Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. +type: keyword + +example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 + -- *`service.name`*:: + -- -type: keyword - -example: elasticsearch-metrics - Name of the service data is collected from. The name of the service is normally user given. This allows if two instances of the same service are running on the same machine they can be differentiated by the `service.name`. Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +type: keyword + +example: elasticsearch-metrics + -- *`service.state`*:: + -- -type: keyword - Current state of the service. +type: keyword + -- *`service.type`*:: + -- -type: keyword - -example: elasticsearch - The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. +type: keyword + +example: elasticsearch + -- *`service.version`*:: + -- +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. + type: keyword example: 3.2.4 -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. - -- [float] -== source fields +=== source Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. @@ -4127,236 +4127,236 @@ Source fields are usually populated in conjunction with destination fields. *`source.address`*:: + -- -type: keyword - Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +type: keyword + -- *`source.bytes`*:: + -- +Bytes sent from the source to the destination. + type: long example: 184 format: bytes -Bytes sent from the source to the destination. - -- *`source.domain`*:: + -- -type: keyword - Source domain. +type: keyword + -- *`source.geo.city_name`*:: + -- +City name. + type: keyword example: Montreal -City name. - -- *`source.geo.continent_name`*:: + -- +Name of the continent. + type: keyword example: North America -Name of the continent. - -- *`source.geo.country_iso_code`*:: + -- +Country ISO code. + type: keyword example: CA -Country ISO code. - -- *`source.geo.country_name`*:: + -- +Country name. + type: keyword example: Canada -Country name. - -- *`source.geo.location`*:: + -- +Longitude and latitude. + type: geo_point example: { "lon": -73.614830, "lat": 45.505918 } -Longitude and latitude. - -- *`source.geo.name`*:: + -- -type: keyword - -example: boston-dc - User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. +type: keyword + +example: boston-dc + -- *`source.geo.region_iso_code`*:: + -- +Region ISO code. + type: keyword example: CA-QC -Region ISO code. - -- *`source.geo.region_name`*:: + -- +Region name. + type: keyword example: Quebec -Region name. - -- *`source.ip`*:: + -- -type: ip - IP address of the source. Can be one or multiple IPv4 or IPv6 addresses. +type: ip + -- *`source.mac`*:: + -- -type: keyword - MAC address of the source. +type: keyword + -- *`source.packets`*:: + -- +Packets sent from the source to the destination. + type: long example: 12 -Packets sent from the source to the destination. - -- *`source.port`*:: + -- +Port of the source. + type: long format: string -Port of the source. - -- *`source.user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`source.user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`source.user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`source.user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`source.user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`source.user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`source.user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== url fields +=== url URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. @@ -4364,113 +4364,113 @@ URL fields provide support for complete or partial URLs, and supports the breaki *`url.domain`*:: + -- +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + type: keyword example: www.elastic.co -Domain of the url, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - -- *`url.fragment`*:: + -- -type: keyword - Portion of the url after the `#`, such as "top". The `#` is not part of the fragment. +type: keyword + -- *`url.full`*:: + -- +If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + type: keyword example: https://www.elastic.co:443/search?q=elasticsearch#top -If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- *`url.original`*:: + -- -type: keyword - -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch - Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. +type: keyword + +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + -- *`url.password`*:: + -- -type: keyword - Password of the request. +type: keyword + -- *`url.path`*:: + -- -type: keyword - Path of the request, such as "/search". +type: keyword + -- *`url.port`*:: + -- +Port of the request, such as 443. + type: long example: 443 format: string -Port of the request, such as 443. - -- *`url.query`*:: + -- -type: keyword - The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. +type: keyword + -- *`url.scheme`*:: + -- +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. + type: keyword example: https -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. - -- *`url.username`*:: + -- -type: keyword - Username of the request. +type: keyword + -- [float] -== user fields +=== user The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. @@ -4479,73 +4479,73 @@ Fields can have one entry or multiple entries. If a user has more than one id, p *`user.email`*:: + -- -type: keyword - User email address. +type: keyword + -- *`user.full_name`*:: + -- +User's full name, if available. + type: keyword example: Albert Einstein -User's full name, if available. - -- *`user.group.id`*:: + -- -type: keyword - Unique identifier for the group on the system/platform. +type: keyword + -- *`user.group.name`*:: + -- -type: keyword - Name of the group. +type: keyword + -- *`user.hash`*:: + -- -type: keyword - Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. +type: keyword + -- *`user.id`*:: + -- -type: keyword - One or multiple unique identifiers of the user. +type: keyword + -- *`user.name`*:: + -- +Short name or login of the user. + type: keyword example: albert -Short name or login of the user. - -- [float] -== user_agent fields +=== user_agent The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. @@ -4554,111 +4554,111 @@ They often show up in web service logs coming from the parsed user agent string. *`user_agent.device.name`*:: + -- +Name of the device. + type: keyword example: iPhone -Name of the device. - -- *`user_agent.name`*:: + -- +Name of the user agent. + type: keyword example: Safari -Name of the user agent. - -- *`user_agent.original`*:: + -- +Unparsed version of the user_agent. + type: keyword example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 -Unparsed version of the user_agent. - -- *`user_agent.os.family`*:: + -- +OS family (such as redhat, debian, freebsd, windows). + type: keyword example: debian -OS family (such as redhat, debian, freebsd, windows). - -- *`user_agent.os.full`*:: + -- +Operating system name, including the version or code name. + type: keyword example: Mac OS Mojave -Operating system name, including the version or code name. - -- *`user_agent.os.kernel`*:: + -- +Operating system kernel version as a raw string. + type: keyword example: 4.4.0-112-generic -Operating system kernel version as a raw string. - -- *`user_agent.os.name`*:: + -- +Operating system name, without the version. + type: keyword example: Mac OS X -Operating system name, without the version. - -- *`user_agent.os.platform`*:: + -- +Operating system platform (such centos, ubuntu, windows). + type: keyword example: darwin -Operating system platform (such centos, ubuntu, windows). - -- *`user_agent.os.version`*:: + -- +Operating system version as a raw string. + type: keyword example: 10.14.1 -Operating system version as a raw string. - -- *`user_agent.version`*:: + -- +Version of the user agent. + type: keyword example: 12.0 -Version of the user agent. - -- [[exported-fields-host-processor]] @@ -4672,34 +4672,34 @@ Info collected for the host machine. *`host.containerized`*:: + -- -type: boolean - If the host is a container. +type: boolean + -- *`host.os.build`*:: + -- -type: keyword +OS build information. -example: 18D109 -OS build information. +type: keyword +example: 18D109 -- *`host.os.codename`*:: + -- -type: keyword +OS codename, if any. -example: stretch -OS codename, if any. +type: keyword +example: stretch -- @@ -4714,111 +4714,111 @@ Kubernetes metadata added by the kubernetes processor *`kubernetes.pod.name`*:: + -- -type: keyword - Kubernetes pod name +type: keyword + -- *`kubernetes.pod.uid`*:: + -- -type: keyword - Kubernetes Pod UID +type: keyword + -- *`kubernetes.namespace`*:: + -- -type: keyword - Kubernetes namespace +type: keyword + -- *`kubernetes.node.name`*:: + -- -type: keyword - Kubernetes node name +type: keyword + -- *`kubernetes.labels`*:: + -- -type: object - Kubernetes labels map +type: object + -- *`kubernetes.annotations`*:: + -- -type: object - Kubernetes annotations map +type: object + -- *`kubernetes.replicaset.name`*:: + -- -type: keyword - Kubernetes replicaset name +type: keyword + -- *`kubernetes.deployment.name`*:: + -- -type: keyword - Kubernetes deployment name +type: keyword + -- *`kubernetes.statefulset.name`*:: + -- -type: keyword - Kubernetes statefulset name +type: keyword + -- *`kubernetes.container.name`*:: + -- -type: keyword - Kubernetes container name +type: keyword + -- *`kubernetes.container.image`*:: + -- -type: keyword - Kubernetes container image +type: keyword + -- [[exported-fields-process]] @@ -4846,14 +4846,14 @@ System status metrics, like CPU and memory usage, that are collected from the op [float] -== system fields +=== system `system` contains local system metrics. [float] -== cpu fields +=== cpu `cpu` contains local CPU stats. @@ -4862,17 +4862,17 @@ System status metrics, like CPU and memory usage, that are collected from the op *`system.cpu.total.norm.pct`*:: + -- -type: scaled_float +The percentage of CPU time spent by the process since the last event. This value is normalized by the number of CPU cores and it ranges from 0 to 100%. -format: percent -The percentage of CPU time spent by the process since the last event. This value is normalized by the number of CPU cores and it ranges from 0 to 100%. +type: scaled_float +format: percent -- [float] -== memory fields +=== memory `memory` contains local memory stats. @@ -4881,17 +4881,17 @@ The percentage of CPU time spent by the process since the last event. This value *`system.memory.total`*:: + -- -type: long +Total memory. -format: bytes -Total memory. +type: long +format: bytes -- [float] -== actual fields +=== actual Actual memory used and free. @@ -4900,24 +4900,24 @@ Actual memory used and free. *`system.memory.actual.free`*:: + -- -type: long +Actual free memory in bytes. It is calculated based on the OS. On Linux it consists of the free memory plus caches and buffers. On OSX it is a sum of free memory and the inactive memory. On Windows, it is equal to `system.memory.free`. -format: bytes -Actual free memory in bytes. It is calculated based on the OS. On Linux it consists of the free memory plus caches and buffers. On OSX it is a sum of free memory and the inactive memory. On Windows, it is equal to `system.memory.free`. +type: long +format: bytes -- [float] -== process fields +=== process `process` contains process metadata, CPU metrics, and memory metrics. [float] -== cpu fields +=== cpu `cpu` contains local CPU stats. @@ -4926,17 +4926,17 @@ Actual free memory in bytes. It is calculated based on the OS. On Linux it consi *`system.process.cpu.total.norm.pct`*:: + -- -type: scaled_float +The percentage of CPU time spent by the process since the last event. This value is normalized by the number of CPU cores and it ranges from 0 to 100%. -format: percent -The percentage of CPU time spent by the process since the last event. This value is normalized by the number of CPU cores and it ranges from 0 to 100%. +type: scaled_float +format: percent -- [float] -== memory fields +=== memory Memory-specific statistics per process. @@ -4944,24 +4944,24 @@ Memory-specific statistics per process. *`system.process.memory.size`*:: + -- -type: long +The total virtual memory the process has. -format: bytes -The total virtual memory the process has. +type: long +format: bytes -- *`system.process.memory.rss.bytes`*:: + -- -type: long +The Resident Set Size. The amount of memory the process occupied in main memory (RAM). -format: bytes -The Resident Set Size. The amount of memory the process occupied in main memory (RAM). +type: long +format: bytes -- diff --git a/include/fields.go b/include/fields.go index bf62993c241..1e3cf4a052c 100644 --- a/include/fields.go +++ b/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/magefile.go b/magefile.go index a6c52b7d528..8bc44fa6469 100644 --- a/magefile.go +++ b/magefile.go @@ -84,6 +84,37 @@ func Clean() error { return mage.Clean() } +func Config() error { + if err := mage.Config(mage.ShortConfigType, shortConfigFileParams(), "."); err != nil { + return err + } + return mage.Config(mage.DockerConfigType, dockerConfigFileParams(), ".") +} + +func shortConfigFileParams() mage.ConfigFileParams { + return mage.ConfigFileParams{ + ShortParts: []string{ + mage.OSSBeatDir("_meta/beat.yml"), + }, + ExtraVars: map[string]interface{}{ + "elasticsearch_hostport": "localhost:9200", + "listen_hostport": "localhost:" + beater.DefaultPort, + }, + } +} + +func dockerConfigFileParams() mage.ConfigFileParams { + return mage.ConfigFileParams{ + DockerParts: []string{ + mage.OSSBeatDir("_meta/beat.yml"), + }, + ExtraVars: map[string]interface{}{ + "elasticsearch_hostport": "elasticsearch:9200", + "listen_hostport": "0.0.0.0:" + beater.DefaultPort, + }, + } +} + // Package packages the Beat for distribution. // Use SNAPSHOT=true to build snapshots. // Use PLATFORMS to control the target platforms. diff --git a/vendor/github.com/elastic/beats/NOTICE.txt b/vendor/github.com/elastic/beats/NOTICE.txt index dfd8cb6e913..9a4197588cb 100644 --- a/vendor/github.com/elastic/beats/NOTICE.txt +++ b/vendor/github.com/elastic/beats/NOTICE.txt @@ -678,6 +678,16 @@ Copyright 2017-2018 Elasticsearch B.V. This product includes software developed at Elasticsearch, B.V. (https://www.elastic.co/). +-------------------------------------------------------------------- +Dependency: github.com/elastic/go-lookslike +Version: v0.2.0 +Revision: 807124eb9fc6684949aa99744577175fd6bac4fd +License type (autodetected): Apache-2.0 +./vendor/github.com/elastic/go-lookslike/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/elastic/go-lumber Revision: 616041e345fc33c97bc0eb0fa6b388aa07bca3e1 @@ -765,8 +775,8 @@ Elasticsearch, B.V. (https://www.elastic.co/). -------------------------------------------------------------------- Dependency: github.com/elastic/gosigar -Version: v0.10.2 -Revision: 1227b9d6877d126ad640087e44439d70dba2df4f +Version: v0.10.3 +Revision: 99ed9cf55303a9d3936cb656b9a86a4a6e67b30a License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/gosigar/LICENSE: -------------------------------------------------------------------- diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/config.go b/vendor/github.com/elastic/beats/dev-tools/mage/config.go index 68061ef3691..955812d9af0 100644 --- a/vendor/github.com/elastic/beats/dev-tools/mage/config.go +++ b/vendor/github.com/elastic/beats/dev-tools/mage/config.go @@ -38,6 +38,21 @@ var ( shortTemplate = filepath.Join("build", BeatName+".yml.tmpl") referenceTemplate = filepath.Join("build", BeatName+".reference.yml.tmpl") dockerTemplate = filepath.Join("build", BeatName+".docker.yml.tmpl") + + defaultConfigFileParams = ConfigFileParams{ + ShortParts: []string{ + OSSBeatDir("_meta/beat.yml"), + LibbeatDir("_meta/config.yml.tmpl"), + }, + ReferenceParts: []string{ + OSSBeatDir("_meta/beat.reference.yml"), + LibbeatDir("_meta/config.reference.yml.tmpl"), + }, + DockerParts: []string{ + OSSBeatDir("_meta/beat.docker.yml"), + LibbeatDir("_meta/config.docker.yml"), + }, + } ) // ConfigFileType is a bitset that indicates what types of config files to @@ -73,18 +88,33 @@ type ConfigFileParams struct { ExtraVars map[string]interface{} } +// Empty checks if configuration files are set. +func (c ConfigFileParams) Empty() bool { + return len(c.ShortParts) == len(c.ReferenceDeps) && len(c.ReferenceParts) == len(c.DockerParts) && len(c.DockerParts) == 0 +} + // Config generates config files. Set DEV_OS and DEV_ARCH to change the target // host for the generated configs. Defaults to linux/amd64. func Config(types ConfigFileType, args ConfigFileParams, targetDir string) error { + if args.Empty() { + args = defaultConfigFileParams + } + if err := makeConfigTemplates(types, args); err != nil { return errors.Wrap(err, "failed making config templates") } params := map[string]interface{}{ - "GOOS": EnvOr("DEV_OS", "linux"), - "GOARCH": EnvOr("DEV_ARCH", "amd64"), - "Reference": false, - "Docker": false, + "GOOS": EnvOr("DEV_OS", "linux"), + "GOARCH": EnvOr("DEV_ARCH", "amd64"), + "Reference": false, + "Docker": false, + "ExcludeConsole": false, + "ExcludeFileOutput": false, + "ExcludeKafka": false, + "ExcludeLogstash": false, + "ExcludeRedis": false, + "UseObserverProcessor": false, } for k, v := range args.ExtraVars { params[k] = v diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/fmt.go b/vendor/github.com/elastic/beats/dev-tools/mage/fmt.go index 7f6a839d621..1632a8a3a4f 100644 --- a/vendor/github.com/elastic/beats/dev-tools/mage/fmt.go +++ b/vendor/github.com/elastic/beats/dev-tools/mage/fmt.go @@ -112,7 +112,7 @@ func PythonAutopep8() error { } // AddLicenseHeaders adds license headers to .go files. It applies the -// appropriate license header based on the value of mage.BeatLicense. +// appropriate license header based on the value of devtools.BeatLicense. func AddLicenseHeaders() error { fmt.Println(">> fmt - go-licenser: Adding missing headers") diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go b/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go index 0c92ccee4c8..c14a1431483 100644 --- a/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go +++ b/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go @@ -97,9 +97,10 @@ func (b packageBuilder) Build() error { } type testPackagesParams struct { - HasModules bool - HasMonitorsD bool - HasModulesD bool + HasModules bool + HasMonitorsD bool + HasModulesD bool + HasRootUserContainer bool } // TestPackagesOption defines a option to the TestPackages target. @@ -126,6 +127,13 @@ func WithModulesD() func(params *testPackagesParams) { } } +// WithRootUserContainer allows root when checking user in container +func WithRootUserContainer() func(params *testPackagesParams) { + return func(params *testPackagesParams) { + params.HasRootUserContainer = true + } +} + // TestPackages executes the package tests on the produced binaries. These tests // inspect things like file ownership and mode. func TestPackages(options ...TestPackagesOption) error { @@ -156,9 +164,14 @@ func TestPackages(options ...TestPackagesOption) error { args = append(args, "--modules.d") } + if params.HasRootUserContainer { + args = append(args, "--root-user-container") + } + if BeatUser == "root" { args = append(args, "-root-owner") } + args = append(args, "-files", MustExpand("{{.PWD}}/build/distributions/*")) if out, err := goTest(args...); err != nil { diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/settings.go b/vendor/github.com/elastic/beats/dev-tools/mage/settings.go index 57f731ece1e..07db69cca2c 100644 --- a/vendor/github.com/elastic/beats/dev-tools/mage/settings.go +++ b/vendor/github.com/elastic/beats/dev-tools/mage/settings.go @@ -415,7 +415,7 @@ func getBuildVariableSources() *BuildVariableSources { return buildVariableSources } - panic(errors.Errorf("magefile must call mage.SetBuildVariableSources() "+ + panic(errors.Errorf("magefile must call devtools.SetBuildVariableSources() "+ "because it is not an elastic beat (repo=%+v)", repo.RootImportPath)) } diff --git a/vendor/github.com/elastic/beats/filebeat/generator/generator.go b/vendor/github.com/elastic/beats/filebeat/generator/generator.go deleted file mode 100644 index 40df8311ede..00000000000 --- a/vendor/github.com/elastic/beats/filebeat/generator/generator.go +++ /dev/null @@ -1,113 +0,0 @@ -// 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 generator - -import ( - "bytes" - "fmt" - "io/ioutil" - "os" - "path" -) - -// DirExists check that directory exists -func DirExists(dir string) bool { - if _, err := os.Stat(dir); !os.IsNotExist(err) { - return true - } - - return false -} - -// CreateDirectories create directories in baseDir -func CreateDirectories(baseDir string, directories ...string) error { - for _, d := range directories { - p := path.Join(baseDir, d) - err := os.MkdirAll(p, 0750) - if err != nil { - return err - } - } - - return nil -} - -// CopyTemplates copy templates from source, make replacement in template content and save it to dest -func CopyTemplates(src, dest string, templates []string, replace map[string]string) error { - for _, template := range templates { - err := copyTemplate(path.Join(src, template), path.Join(dest, template), replace) - if err != nil { - return err - } - } - - return nil -} - -// AppendTemplate read template, make replacement in content and append it to dest -func AppendTemplate(template, dest string, replace map[string]string) error { - c, err := readTemplate(template, replace) - if err != nil { - return err - } - - f, err := os.OpenFile(dest, os.O_WRONLY|os.O_APPEND, 0644) - if err == nil { - _, err = f.Write(c) - } - if err != nil { - return fmt.Errorf("cannot append template: %v", err) - } - - return nil -} - -func copyTemplate(template, dest string, replace map[string]string) error { - c, err := readTemplate(template, replace) - if err != nil { - return err - } - - err = ioutil.WriteFile(dest, c, 0644) - if err != nil { - return fmt.Errorf("cannot copy template: %v", err) - } - - return nil -} - -func readTemplate(template string, replace map[string]string) ([]byte, error) { - c, err := ioutil.ReadFile(template) - if err != nil { - return []byte{}, fmt.Errorf("cannot read template: %v", err) - } - - for oldV, newV := range replace { - c = bytes.Replace(c, []byte("{"+oldV+"}"), []byte(newV), -1) - } - - return c, nil -} - -// RenameConfigYml renames config.yml to the name of the fileset, otherwise Filebeat refuses to start -func RenameConfigYml(modulesPath, module, fileset string) error { - old := path.Join(modulesPath, "module", module, fileset, "config", "config.yml") - new := path.Join(modulesPath, "module", module, fileset, "config", fileset+".yml") - - return os.Rename(old, new) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go index 40a9d7cc1a5..d9c1235f5fc 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go @@ -74,14 +74,19 @@ func GetHintAsList(hints common.MapStr, key, config string) []string { // GetProcessors gets processor definitions from the hints and returns a list of configs as a MapStr func GetProcessors(hints common.MapStr, key string) []common.MapStr { - rawProcs := GetHintMapStr(hints, key, "processors") - if rawProcs == nil { + return GetConfigs(hints, key, "processors") +} + +// GetConfigs takes in a key and returns a list of configs as a slice of MapStr +func GetConfigs(hints common.MapStr, key, name string) []common.MapStr { + raw := GetHintMapStr(hints, key, name) + if raw == nil { return nil } var words, nums []string - for key := range rawProcs { + for key := range raw { if _, err := strconv.Atoi(key); err != nil { words = append(words, key) continue @@ -94,7 +99,7 @@ func GetProcessors(hints common.MapStr, key string) []common.MapStr { var configs []common.MapStr for _, key := range nums { - rawCfg, _ := rawProcs[key] + rawCfg, _ := raw[key] if config, ok := rawCfg.(common.MapStr); ok { configs = append(configs, config) } @@ -102,7 +107,7 @@ func GetProcessors(hints common.MapStr, key string) []common.MapStr { for _, word := range words { configs = append(configs, common.MapStr{ - word: rawProcs[word], + word: raw[word], }) } diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go index a8e7769750f..55ee0312bf3 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go @@ -98,12 +98,11 @@ type Runner interface { // Reloader is used to register and reload modules type Reloader struct { - pipeline beat.Pipeline - runnerFactory RunnerFactory - config DynamicConfig - path string - done chan struct{} - wg sync.WaitGroup + pipeline beat.Pipeline + config DynamicConfig + path string + done chan struct{} + wg sync.WaitGroup } // NewReloader creates new Reloader instance for the given config diff --git a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go b/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go index 74906926c5c..fb862957094 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go +++ b/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go @@ -334,9 +334,12 @@ func (w *watcher) listContainers(options types.ContainerListOptions) ([]*Contain var result []*Container for _, c := range containers { var ipaddresses []string - for _, net := range c.NetworkSettings.Networks { - if net.IPAddress != "" { - ipaddresses = append(ipaddresses, net.IPAddress) + if c.NetworkSettings != nil { + // Handle alternate platforms like VMWare's VIC that might not have this data. + for _, net := range c.NetworkSettings.Networks { + if net.IPAddress != "" { + ipaddresses = append(ipaddresses, net.IPAddress) + } } } diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go index ff4d682b663..5280838c318 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go @@ -27,6 +27,14 @@ import ( "github.com/elastic/go-seccomp-bpf" ) +// PolicyChangeType specifies the type of change to make to a seccomp policy. +type PolicyChangeType uint8 + +const ( + // AddSyscall changes a policy by adding a syscall. + AddSyscall PolicyChangeType = iota +) + var ( defaultPolicy *seccomp.Policy registeredPolicy *seccomp.Policy @@ -134,3 +142,29 @@ func getPolicy(c *common.Config) (*seccomp.Policy, error) { return policy, nil } + +// ModifyDefaultPolicy modifies the syscalls in the default policy. Any callers +// of this function must first check the architecture because policies are +// architecture specific. +func ModifyDefaultPolicy(changeType PolicyChangeType, syscalls ...string) error { + if defaultPolicy == nil { + return errors.New("no default policy exists (check the architecture)") + } + + switch changeType { + case AddSyscall: + list := defaultPolicy.Syscalls[0].Names + for _, newSyscall := range syscalls { + for _, existingSyscall := range list { + if newSyscall == existingSyscall { + break + } + + list = append(list, newSyscall) + } + } + defaultPolicy.Syscalls[0].Names = list + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go index 79d4722049f..8e0e668faa8 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go @@ -91,9 +91,14 @@ func LoadTLSServerConfig(config *ServerConfig) (*TLSConfig, error) { }, nil } +// Unpack unpacks the TLS Server configuration. func (c *ServerConfig) Unpack(cfg common.Config) error { - clientAuthKey := "client_authentication" - if !cfg.HasField(clientAuthKey) { + const clientAuthKey = "client_authentication" + const ca = "certificate_authorities" + + // When we have explicitely defined the `certificate_authorities` in the configuration we default + // to `required` for the `client_authentication`, when CA is not defined we should set to `none`. + if cfg.HasField(ca) && !cfg.HasField(clientAuthKey) { cfg.SetString(clientAuthKey, -1, "required") } type serverCfg ServerConfig diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go index 6cec53a27b4..544bacc7ec6 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go @@ -483,7 +483,7 @@ func (procStats *Stats) getSingleProcess(pid int, newProcs ProcsMap) *Process { err = process.getDetails(procStats.isWhitelistedEnvVar) if err != nil { - logp.Err("Error getting process details. pid=%d: %v", process.Pid, err) + logp.Debug("processes", "Error getting details for process %s with pid=%d: %v", process.Name, process.Pid, err) return nil } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go index b042a3038be..7a3d7208b08 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go @@ -37,26 +37,27 @@ import ( ) type kafkaConfig struct { - Hosts []string `config:"hosts" validate:"required"` - TLS *tlscommon.Config `config:"ssl"` - Timeout time.Duration `config:"timeout" validate:"min=1"` - Metadata metaConfig `config:"metadata"` - Key *fmtstr.EventFormatString `config:"key"` - Partition map[string]*common.Config `config:"partition"` - KeepAlive time.Duration `config:"keep_alive" validate:"min=0"` - MaxMessageBytes *int `config:"max_message_bytes" validate:"min=1"` - RequiredACKs *int `config:"required_acks" validate:"min=-1"` - BrokerTimeout time.Duration `config:"broker_timeout" validate:"min=1"` - Compression string `config:"compression"` - CompressionLevel int `config:"compression_level"` - Version kafka.Version `config:"version"` - BulkMaxSize int `config:"bulk_max_size"` - MaxRetries int `config:"max_retries" validate:"min=-1,nonzero"` - ClientID string `config:"client_id"` - ChanBufferSize int `config:"channel_buffer_size" validate:"min=1"` - Username string `config:"username"` - Password string `config:"password"` - Codec codec.Config `config:"codec"` + Hosts []string `config:"hosts" validate:"required"` + TLS *tlscommon.Config `config:"ssl"` + Timeout time.Duration `config:"timeout" validate:"min=1"` + Metadata metaConfig `config:"metadata"` + Key *fmtstr.EventFormatString `config:"key"` + Partition map[string]*common.Config `config:"partition"` + KeepAlive time.Duration `config:"keep_alive" validate:"min=0"` + MaxMessageBytes *int `config:"max_message_bytes" validate:"min=1"` + RequiredACKs *int `config:"required_acks" validate:"min=-1"` + BrokerTimeout time.Duration `config:"broker_timeout" validate:"min=1"` + Compression string `config:"compression"` + CompressionLevel int `config:"compression_level"` + Version kafka.Version `config:"version"` + BulkMaxSize int `config:"bulk_max_size"` + BulkFlushFrequency time.Duration `config:"bulk_flush_frequency"` + MaxRetries int `config:"max_retries" validate:"min=-1,nonzero"` + ClientID string `config:"client_id"` + ChanBufferSize int `config:"channel_buffer_size" validate:"min=1"` + Username string `config:"username"` + Password string `config:"password"` + Codec codec.Config `config:"codec"` } type metaConfig struct { @@ -81,10 +82,11 @@ var compressionModes = map[string]sarama.CompressionCodec{ func defaultConfig() kafkaConfig { return kafkaConfig{ - Hosts: nil, - TLS: nil, - Timeout: 30 * time.Second, - BulkMaxSize: 2048, + Hosts: nil, + TLS: nil, + Timeout: 30 * time.Second, + BulkMaxSize: 2048, + BulkFlushFrequency: 0, Metadata: metaConfig{ Retry: metaRetryConfig{ Max: 3, @@ -209,6 +211,12 @@ func newSaramaConfig(config *kafkaConfig) (*sarama.Config, error) { // configure per broker go channel buffering k.ChannelBufferSize = config.ChanBufferSize + // configure bulk size + k.Producer.Flush.MaxMessages = config.BulkMaxSize + if config.BulkFlushFrequency > 0 { + k.Producer.Flush.Frequency = config.BulkFlushFrequency + } + // configure client ID k.ClientID = config.ClientID diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/copy_fields.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/copy_fields.go index ec82cfa3e02..af5709d54e1 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/copy_fields.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/copy_fields.go @@ -72,12 +72,14 @@ func (f *copyFields) Run(event *beat.Event) (*beat.Event, error) { for _, field := range f.config.Fields { err := f.copyField(field.From, field.To, event.Fields) - if err != nil && f.config.FailOnError { + if err != nil { errMsg := fmt.Errorf("Failed to copy fields in copy_fields processor: %s", err) logp.Debug("copy_fields", errMsg.Error()) - event.Fields = backup - event.PutValue("error.message", errMsg.Error()) - return event, err + if f.config.FailOnError { + event.Fields = backup + event.PutValue("error.message", errMsg.Error()) + return event, err + } } } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_base64_field.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_base64_field.go new file mode 100644 index 00000000000..e56daa4335d --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_base64_field.go @@ -0,0 +1,139 @@ +// 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 actions + +import ( + "encoding/base64" + "fmt" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/processors/checks" +) + +const ( + processorName = "decode_base64_field" +) + +type decodeBase64Field struct { + log *logp.Logger + + config base64Config +} + +type base64Config struct { + fromTo `config:"field"` + IgnoreMissing bool `config:"ignore_missing"` + FailOnError bool `config:"fail_on_error"` +} + +var ( + defaultBase64Config = base64Config{ + IgnoreMissing: false, + FailOnError: true, + } +) + +func init() { + processors.RegisterPlugin(processorName, + checks.ConfigChecked(NewDecodeBase64Field, + checks.RequireFields("field"), + checks.AllowedFields("field", "when"))) +} + +// NewDecodeBase64Field construct a new decode_base64_field processor. +func NewDecodeBase64Field(c *common.Config) (processors.Processor, error) { + config := defaultBase64Config + + log := logp.NewLogger(processorName) + + err := c.Unpack(&config) + if err != nil { + return nil, fmt.Errorf("fail to unpack the %s configuration: %s", processorName, err) + } + + return &decodeBase64Field{ + log: log, + config: config, + }, nil +} + +func (f *decodeBase64Field) Run(event *beat.Event) (*beat.Event, error) { + var backup common.MapStr + // Creates a copy of the event to revert in case of failure + if f.config.FailOnError { + backup = event.Fields.Clone() + } + + err := f.decodeField(f.config.From, f.config.To, event.Fields) + if err != nil && f.config.FailOnError { + errMsg := fmt.Errorf("failed to decode base64 fields in processor: %v", err) + f.log.Debug("decode base64", errMsg.Error()) + event.Fields = backup + _, _ = event.PutValue("error.message", errMsg.Error()) + return event, err + } + + return event, nil +} + +func (f decodeBase64Field) String() string { + return fmt.Sprintf("%s=%+v", processorName, f.config.fromTo) +} + +func (f *decodeBase64Field) decodeField(from string, to string, fields common.MapStr) error { + value, err := fields.GetValue(from) + if err != nil { + // Ignore ErrKeyNotFound errors + if f.config.IgnoreMissing && errors.Cause(err) == common.ErrKeyNotFound { + return nil + } + return fmt.Errorf("could not fetch value for key: %s, Error: %s", from, err) + } + + text, ok := value.(string) + if !ok { + return fmt.Errorf("invalid type for `from`, expecting a string received %T", value) + } + + decodedData, err := base64.StdEncoding.DecodeString(text) + if err != nil { + return fmt.Errorf("error trying to unmarshal %s: %v", text, err) + } + + field := to + // If to is empty + if to == "" || from == to { + // Deletion must happen first to support cases where a becomes a.b + if err = fields.Delete(from); err != nil { + return fmt.Errorf("could not delete key: %s, %+v", from, err) + } + + field = from + } + + if _, err = fields.Put(field, string(decodedData)); err != nil { + return fmt.Errorf("could not put value: %s: %v, %v", decodedData, field, err) + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go index 2a94b9f834e..c0c8f778745 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go @@ -76,12 +76,14 @@ func (f *renameFields) Run(event *beat.Event) (*beat.Event, error) { for _, field := range f.config.Fields { err := f.renameField(field.From, field.To, event.Fields) - if err != nil && f.config.FailOnError { + if err != nil { errMsg := fmt.Errorf("Failed to rename fields in processor: %s", err) logp.Debug("rename", errMsg.Error()) - event.Fields = backup - event.PutValue("error.message", errMsg.Error()) - return event, err + if f.config.FailOnError { + event.Fields = backup + event.PutValue("error.message", errMsg.Error()) + return event, err + } } } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/truncate_fields.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/truncate_fields.go index d924da381a5..ca87eb35c5e 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/truncate_fields.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/truncate_fields.go @@ -85,10 +85,12 @@ func (f *truncateFields) Run(event *beat.Event) (*beat.Event, error) { for _, field := range f.config.Fields { event, err := f.truncateSingleField(field, event) - if err != nil && f.config.FailOnError { + if err != nil { logp.Debug("truncate_fields", "Failed to truncate fields: %s", err) - event.Fields = backup - return event, err + if f.config.FailOnError { + event.Fields = backup + return event, err + } } } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go b/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go deleted file mode 100644 index 87a1ac2c0bd..00000000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go +++ /dev/null @@ -1,88 +0,0 @@ -// 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 testing - -// ChanClient implements Client interface, forwarding published events to some -import ( - "github.com/elastic/beats/libbeat/beat" -) - -type TestPublisher struct { - client beat.Client -} - -// given channel only. -type ChanClient struct { - done chan struct{} - Channel chan beat.Event -} - -func PublisherWithClient(client beat.Client) beat.Pipeline { - return &TestPublisher{client} -} - -func (pub *TestPublisher) Connect() (beat.Client, error) { - return pub.client, nil -} - -func (pub *TestPublisher) ConnectWith(_ beat.ClientConfig) (beat.Client, error) { - return pub.client, nil -} - -func (pub *TestPublisher) SetACKHandler(_ beat.PipelineACKHandler) error { - panic("Not supported") -} - -func NewChanClient(bufSize int) *ChanClient { - return NewChanClientWith(make(chan beat.Event, bufSize)) -} - -func NewChanClientWith(ch chan beat.Event) *ChanClient { - if ch == nil { - ch = make(chan beat.Event, 1) - } - c := &ChanClient{ - done: make(chan struct{}), - Channel: ch, - } - return c -} - -func (c *ChanClient) Close() error { - close(c.done) - return nil -} - -// PublishEvent will publish the event on the channel. Options will be ignored. -// Always returns true. -func (c *ChanClient) Publish(event beat.Event) { - select { - case <-c.done: - case c.Channel <- event: - } -} - -func (c *ChanClient) PublishAll(event []beat.Event) { - for _, e := range event { - c.Publish(e) - } -} - -func (c *ChanClient) ReceiveEvent() beat.Event { - return <-c.Channel -} diff --git a/vendor/github.com/elastic/gosigar/CHANGELOG.md b/vendor/github.com/elastic/gosigar/CHANGELOG.md index 04051fed8e8..0ce0fad6f1f 100644 --- a/vendor/github.com/elastic/gosigar/CHANGELOG.md +++ b/vendor/github.com/elastic/gosigar/CHANGELOG.md @@ -12,6 +12,11 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Deprecated +## [0.10.3] + +### Fixed +- ProcState.Get() doesn't fail under Windows when it cannot obtain process ownership information. #121 + ## [0.10.2] ### Fixed diff --git a/vendor/github.com/elastic/gosigar/sigar_windows.go b/vendor/github.com/elastic/gosigar/sigar_windows.go index 66f294e9c14..fc868daf3fc 100644 --- a/vendor/github.com/elastic/gosigar/sigar_windows.go +++ b/vendor/github.com/elastic/gosigar/sigar_windows.go @@ -194,10 +194,11 @@ func (self *ProcState) Get(pid int) error { errs = append(errs, errors.Wrap(err, "getParentPid failed")) } - self.Username, err = getProcCredName(pid) - if err != nil { - errs = append(errs, errors.Wrap(err, "getProcCredName failed")) - } + // getProcCredName will often fail when run as a non-admin user. This is + // caused by strict ACL of the process token belonging to other users. + // Instead of failing completely, ignore this error and still return most + // data with an empty Username. + self.Username, _ = getProcCredName(pid) if len(errs) > 0 { errStrs := make([]string, 0, len(errs)) @@ -274,6 +275,8 @@ func getProcCredName(pid int) (string, error) { if err != nil { return "", errors.Wrapf(err, "OpenProcessToken failed for pid=%v", pid) } + // Close token to prevent handle leaks. + defer token.Close() // Find the token user. tokenUser, err := token.GetTokenUser() @@ -281,12 +284,6 @@ func getProcCredName(pid int) (string, error) { return "", errors.Wrapf(err, "GetTokenInformation failed for pid=%v", pid) } - // Close token to prevent handle leaks. - err = token.Close() - if err != nil { - return "", errors.Wrapf(err, "failed while closing process token handle for pid=%v", pid) - } - // Look up domain account by SID. account, domain, _, err := tokenUser.User.Sid.LookupAccount("") if err != nil { diff --git a/vendor/vendor.json b/vendor/vendor.json index d4a029963ab..7f92e1bb8b9 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -15,29 +15,29 @@ "checksumSHA1": "eruIVA8JnsB23rVKjETHvqJ0sj8=", "origin": "github.com/elastic/beats/vendor/github.com/DataDog/zstd", "path": "github.com/DataDog/zstd", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "AzjRkOQtVBTwIw4RJLTygFhJs3s=", "origin": "github.com/elastic/beats/vendor/github.com/Microsoft/go-winio", "path": "github.com/Microsoft/go-winio", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Yn3uTky/UjksI76cPRAxXomzMKM=", "origin": "github.com/elastic/beats/vendor/github.com/Shopify/sarama", "path": "github.com/Shopify/sarama", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Te1xRugxHQMAg7EvbIUuPWm8fvU=", "origin": "github.com/elastic/beats/vendor/github.com/StackExchange/wmi", "path": "github.com/StackExchange/wmi", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ZWu+JUivE3zS4FZvVktFAWhj3FQ=", @@ -50,238 +50,238 @@ "checksumSHA1": "dvabztWVQX8f6oMLRyv4dLH+TGY=", "origin": "github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew", "path": "github.com/davecgh/go-spew/spew", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Gj+xR1VgFKKmFXYOJMnAczC3Znk=", "origin": "github.com/elastic/beats/vendor/github.com/docker/distribution/digestset", "path": "github.com/docker/distribution/digestset", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "2Fe4D6PGaVE2he4fUeenLmhC1lE=", "origin": "github.com/elastic/beats/vendor/github.com/docker/distribution/reference", "path": "github.com/docker/distribution/reference", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "jYj/NYT4pL27gVSrKmPZT+8/kMs=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api", "path": "github.com/docker/docker/api", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "KMFpbV3mlrbc41d2DYnq05QYpSc=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types", "path": "github.com/docker/docker/api/types", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "jVJDbe0IcyjoKc2xbohwzQr+FF0=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/blkiodev", "path": "github.com/docker/docker/api/types/blkiodev", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "AeSC0BOu1uapkGqfSXtfVSpwJzs=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container", "path": "github.com/docker/docker/api/types/container", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "4XuWn5+wgYwUsw604jvYMklq4Hc=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/events", "path": "github.com/docker/docker/api/types/events", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "J2OKngfI3vgswudr9PZVUFcRRu0=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/filters", "path": "github.com/docker/docker/api/types/filters", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "yeB781yxPhnN6OXQ9/qSsyih3ek=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/image", "path": "github.com/docker/docker/api/types/image", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "UK+VdM648oWzyqE4OqttgmPqjoA=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/mount", "path": "github.com/docker/docker/api/types/mount", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Gskp+nvbVe8Gk1xPLHylZvNmqTg=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/network", "path": "github.com/docker/docker/api/types/network", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "r2vWq7Uc3ExKzMqYgH0b4AKjLKY=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/registry", "path": "github.com/docker/docker/api/types/registry", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "VTxWyFud/RedrpllGdQonVtGM/A=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/strslice", "path": "github.com/docker/docker/api/types/strslice", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ZaizCpJ3eBcfR9ywpLaJd4AhM9k=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm", "path": "github.com/docker/docker/api/types/swarm", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "B7ZwKzrv3t3Vlox6/bYMHhMjsM8=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/time", "path": "github.com/docker/docker/api/types/time", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "uDPQ3nHsrvGQc9tg/J9OSC4N5dQ=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/versions", "path": "github.com/docker/docker/api/types/versions", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "IBJy2zPEnYmcFJ3lM1eiRWnCxTA=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume", "path": "github.com/docker/docker/api/types/volume", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "c6OyeEvpQDvVLhrJSxgjEZv1tF8=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/client", "path": "github.com/docker/docker/client", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "jmo/t2zXAxirEPoFucNPXA/1SEc=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils", "path": "github.com/docker/docker/pkg/ioutils", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ndnAFCfsGC3upNQ6jAEwzxcurww=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/pkg/longpath", "path": "github.com/docker/docker/pkg/longpath", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "3u2xJnbqYSxOP3kOORetQD7P1Co=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/pkg/mount", "path": "github.com/docker/docker/pkg/mount", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "pJKv3tUCjeTBn0FZkYN0K2ru+/w=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system", "path": "github.com/docker/docker/pkg/system", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "8I0Ez+aUYGpsDEVZ8wN/Ztf6Zqs=", "origin": "github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig", "path": "github.com/docker/docker/pkg/tlsconfig", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "JbiWTzH699Sqz25XmDlsARpMN9w=", "origin": "github.com/elastic/beats/vendor/github.com/docker/go-connections/nat", "path": "github.com/docker/go-connections/nat", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "jUfDG3VQsA2UZHvvIXncgiddpYA=", "origin": "github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets", "path": "github.com/docker/go-connections/sockets", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "c6lDGNwTm5mYq18IHP+lqYpk8xU=", "origin": "github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig", "path": "github.com/docker/go-connections/tlsconfig", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ambe8F4AofPxChCJssXXwWphQQ8=", "origin": "github.com/elastic/beats/vendor/github.com/docker/go-units", "path": "github.com/docker/go-units", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "sNAU9ojYVUhO6dVXey6T3JhRQpw=", "origin": "github.com/elastic/beats/vendor/github.com/docker/libtrust", "path": "github.com/docker/libtrust", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "rhLUtXvcmouYuBwOq9X/nYKzvNg=", "origin": "github.com/elastic/beats/vendor/github.com/dustin/go-humanize", "path": "github.com/dustin/go-humanize", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "y2Kh4iPlgCPXSGTCcFpzePYdzzg=", "origin": "github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/breaker", "path": "github.com/eapache/go-resiliency/breaker", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "WHl96RVZlOOdF4Lb1OOadMpw8ls=", "origin": "github.com/elastic/beats/vendor/github.com/eapache/go-xerial-snappy", "path": "github.com/eapache/go-xerial-snappy", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "oCCs6kDanizatplM5e/hX76busE=", "origin": "github.com/elastic/beats/vendor/github.com/eapache/queue", "path": "github.com/eapache/queue", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { - "checksumSHA1": "JuxP2wamSuhm2WEP8AeIbK+xrF8=", + "checksumSHA1": "7SjLB4xhlgzNRVljXzZEJvGn6dg=", "path": "github.com/elastic/beats/dev-tools/mage", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, @@ -296,808 +296,808 @@ { "checksumSHA1": "y34pfVnTprxa4BvLKfiBbqTJaGA=", "path": "github.com/elastic/beats/libbeat/api", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "3cMzsLhs9W65wKpzZLiSB4i73mc=", "path": "github.com/elastic/beats/libbeat/asset", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "3QCinbruNd0S4uBtNpFywQ4kmCU=", "path": "github.com/elastic/beats/libbeat/autodiscover", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ZCQyqZn3NFfAJo//PSd1YASvytY=", "path": "github.com/elastic/beats/libbeat/autodiscover/appenders/config", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "AF5yw29Gr+bUiKZHN0A3fVL8Tw4=", + "checksumSHA1": "LHy7KWf5lNa9M85ebQtJKRFQw+0=", "path": "github.com/elastic/beats/libbeat/autodiscover/builder", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "IifZH9hzzPymGV2XQfQ/tFR4uSE=", "path": "github.com/elastic/beats/libbeat/autodiscover/meta", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "lyGZ3jvaIfkAZmCbYkamyYCz2KI=", "path": "github.com/elastic/beats/libbeat/autodiscover/providers/docker", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "vWLWQPyxoIfGa+m4pRg6TS6gekQ=", "path": "github.com/elastic/beats/libbeat/autodiscover/providers/jolokia", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "/ecMQ0YFWBSSL/JHWPs+iiqV3IY=", "path": "github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "eaKz8KWZXYHpLvBCIRN3V8J7G18=", "path": "github.com/elastic/beats/libbeat/autodiscover/template", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ldjoS4Y7jxFPmmQOWMllMM3W7hY=", "path": "github.com/elastic/beats/libbeat/beat", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "w4SiL0W6Mvxp/LLj1e3JPtIFwPY=", + "checksumSHA1": "KVxsbOXQ8vUIJIlYipruy2QpbW8=", "path": "github.com/elastic/beats/libbeat/cfgfile", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "/IuTlhYU7mcJKhOHniR06bWGnxg=", "path": "github.com/elastic/beats/libbeat/cloudid", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "zA1Uuf+IChUjmlB691X8I+TdgfE=", "path": "github.com/elastic/beats/libbeat/cmd", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "l9PsZkJM8PP1OXDp5CeIvfpjHYc=", "path": "github.com/elastic/beats/libbeat/cmd/export", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "pTS57uHlrK/55FKouhGM3LdGtw4=", "path": "github.com/elastic/beats/libbeat/cmd/instance", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "UjCBCC1dZP15Z/uCStwNcD+EXK4=", "path": "github.com/elastic/beats/libbeat/cmd/test", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "HYbEC5+GAikcGt9BCLHF0281fK0=", "path": "github.com/elastic/beats/libbeat/common", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "lFYRu/M9CL6/povZOeBYui9/laI=", "path": "github.com/elastic/beats/libbeat/common/atomic", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "O5lD0j+tTM5lZkSzPE9KaxiHTeY=", "path": "github.com/elastic/beats/libbeat/common/backoff", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Fxbw/7lPbh9dY3HH5k8sc4PU6Yo=", "path": "github.com/elastic/beats/libbeat/common/bus", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "zRpP/UzB/wFQNLceGdVgC4QqviM=", "path": "github.com/elastic/beats/libbeat/common/cfgtype", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "d0pIynyart5HMe7IKw3wtIH2R48=", "path": "github.com/elastic/beats/libbeat/common/cfgwarn", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "gagye6XHCqSCAVjpdJAGSOd06Uw=", "path": "github.com/elastic/beats/libbeat/common/cli", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "gdwyi9COCtqBmtaZpxIUVXX56sU=", + "checksumSHA1": "EM+Dvt2qBABXFdyMB4qOEYxsoig=", "path": "github.com/elastic/beats/libbeat/common/docker", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Gxdi0z5FpIG68TQBD+zho4pEBlU=", "path": "github.com/elastic/beats/libbeat/common/dtfmt", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "6BdfNN/UBPRdCSz6XSS6to/72q0=", "path": "github.com/elastic/beats/libbeat/common/file", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "vSs1uzCmbsEzpBPxA4whpJviEBY=", "path": "github.com/elastic/beats/libbeat/common/flowhash", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "pt4OCbyb9z7fgJEidmOx6mua0h8=", "path": "github.com/elastic/beats/libbeat/common/fmtstr", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "K8hsg9OHpVHm7A43uq+TdX5DRc4=", "path": "github.com/elastic/beats/libbeat/common/jsontransform", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "syBGSam2yNQZRz41QgXaAOWWQn4=", "path": "github.com/elastic/beats/libbeat/common/kafka", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "/0orukOMfUZKhGiGDaMcVcEf5xA=", "path": "github.com/elastic/beats/libbeat/common/kubernetes", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "uaZwROAnUXCKJ4QzZhnv9Je7HtM=", "path": "github.com/elastic/beats/libbeat/common/match", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "jLi8S5eaG9uPawGF105+Z8dkesc=", "path": "github.com/elastic/beats/libbeat/common/reload", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "uMo9yaQAFfFG9iOsmdhQokffvpc=", "path": "github.com/elastic/beats/libbeat/common/safemapstr", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "witIXFOKuvojhOsOxxCZqJrOT14=", "path": "github.com/elastic/beats/libbeat/common/schema", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "uffmniMUvoDPoH/udr7ogkh062E=", "path": "github.com/elastic/beats/libbeat/common/schema/mapstriface", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "tZSvsfUQvhPhFjowAUkRntjtuCc=", + "checksumSHA1": "TMU+Vym+z6wc53twlw9TEiHuTw0=", "path": "github.com/elastic/beats/libbeat/common/seccomp", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "idXNC65t9dEVukD08AM6/L2p/RE=", "path": "github.com/elastic/beats/libbeat/common/streambuf", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "IQGJeUodp0fl4Zy8W1rBzWtWSWA=", "path": "github.com/elastic/beats/libbeat/common/terminal", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "1tWOslrNWtH4x8c5G5GqFN89z9Y=", + "checksumSHA1": "6D8hWST/j4pcvfB6ysjTQy5XpFM=", "path": "github.com/elastic/beats/libbeat/common/transport/tlscommon", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "zJeKN9i9aUdmF1huapIf7t+L8kw=", "path": "github.com/elastic/beats/libbeat/conditions", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "+WIlZ8aTqgqOUo6eO0+C15m0kHg=", "path": "github.com/elastic/beats/libbeat/dashboards", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Tn+4O4FlSxSOxGF9qkH363wQCtA=", "path": "github.com/elastic/beats/libbeat/feature", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Qe3OwrLlg7ZrkPcbPI36pwTgJxQ=", "path": "github.com/elastic/beats/libbeat/generator/fields", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "2XpB9HIEKmoPsHSQiUL+G/zKJlw=", "path": "github.com/elastic/beats/libbeat/idxmgmt", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "E5dtUHinuJGdXgCS061Cl2L4Qq0=", "path": "github.com/elastic/beats/libbeat/idxmgmt/ilm", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "krdjLK+gZhQpyqW24pQygLa57/I=", "path": "github.com/elastic/beats/libbeat/keystore", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "aslx5xyt1vzjHAlldVASNoqNT3s=", "path": "github.com/elastic/beats/libbeat/kibana", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "M9fvDb47TOddNlFTxXhQFd8fVXg=", "path": "github.com/elastic/beats/libbeat/logp", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "bM+Zvy63NmXBfPQZYZmWBCo/UIk=", "path": "github.com/elastic/beats/libbeat/logp/configure", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "F/nzOXIrS9ui9wBLhuYa6M0fDEw=", "path": "github.com/elastic/beats/libbeat/management", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "9sFFk/wFg5g2UwMqCrjhF3lI56A=", "path": "github.com/elastic/beats/libbeat/mapping", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "/qNmzEvnTPNTKsZG8NgDzJZ+6f8=", "path": "github.com/elastic/beats/libbeat/metric/system/cpu", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ASezoo5ifdtv1UwROTGAu+VbNJA=", "path": "github.com/elastic/beats/libbeat/metric/system/host", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "lXmDdjbZAQJWerhniNifgiD+Fgs=", "path": "github.com/elastic/beats/libbeat/metric/system/memory", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "+cI2jq/bUsjqPA7RsN9SJ8nE4xc=", + "checksumSHA1": "9PwWx361Fk7/FNt/dcVppBCX1ko=", "path": "github.com/elastic/beats/libbeat/metric/system/process", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "S/E+o1HXx18DE7nzl4wSX0FapTA=", "path": "github.com/elastic/beats/libbeat/monitoring", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "+wdf9YlsiFYofUdPuovqskNoZnw=", "path": "github.com/elastic/beats/libbeat/monitoring/adapter", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "VNBF1uWUqTgAKqi7chDC63dpDno=", "path": "github.com/elastic/beats/libbeat/monitoring/report", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "7D3ybHghR/ySVkF76wx0DH18CIA=", "path": "github.com/elastic/beats/libbeat/monitoring/report/elasticsearch", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "tP83ba7tdmQ+vSBIyJ87/rf1/fA=", "path": "github.com/elastic/beats/libbeat/monitoring/report/log", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ueIlWpPNgtKmH9MINun26RPPY2k=", "path": "github.com/elastic/beats/libbeat/outputs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "CsWdZfYNuwBA2/RhAybzEf93qq4=", "path": "github.com/elastic/beats/libbeat/outputs/codec", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "dO9pXcIpo6PH5yxMbJUSb/BYbkc=", "path": "github.com/elastic/beats/libbeat/outputs/codec/format", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "DbeMJiVepl/K4NXgWHHc2KyCpg0=", "path": "github.com/elastic/beats/libbeat/outputs/codec/json", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "oGzibF8p3OLvTRGLoQi+ny7zN5A=", "path": "github.com/elastic/beats/libbeat/outputs/console", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "CSUrP/c2yumlCcUxWnt1TnVHAa8=", "path": "github.com/elastic/beats/libbeat/outputs/elasticsearch", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "tMYYeBk2SmTet6FUrltPtfeCY/U=", "path": "github.com/elastic/beats/libbeat/outputs/fileout", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "kaf/xZT++ss1iiPHmlenvvtAw6A=", + "checksumSHA1": "YjVEDpmuZKlVtx2Kvimd4yf+w7g=", "path": "github.com/elastic/beats/libbeat/outputs/kafka", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "0YSMsaDcPs65eNX2CJBtTy24aGg=", "path": "github.com/elastic/beats/libbeat/outputs/logstash", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "NJv+STaa3bEOeVra8WkEgOtzQic=", "path": "github.com/elastic/beats/libbeat/outputs/outil", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "FXa52r8DUyJyiSRI6SjErh6PHds=", "path": "github.com/elastic/beats/libbeat/outputs/redis", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ImdqSpCufsbWiNECpdZ0KeeQidM=", "path": "github.com/elastic/beats/libbeat/outputs/transport", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "qPVudVlj4dE+HHMe4WGlaf4mFCo=", "path": "github.com/elastic/beats/libbeat/outputs/transport/transptest", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "hb8M4qSLzgDXpQmdQfEyB7aChhI=", "path": "github.com/elastic/beats/libbeat/paths", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "OVd5zDYdT/3QK2zj1M+BMPP0AIo=", "path": "github.com/elastic/beats/libbeat/plugin", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ijGXJI2dp1xEwBpev6wYvp7xzcM=", "path": "github.com/elastic/beats/libbeat/processors", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { - "checksumSHA1": "a0AZnhUo8P57Sc7kTwYEq4eOv6M=", + "checksumSHA1": "boTTLS6YXAo5v/PkoBHPAhdktDQ=", "path": "github.com/elastic/beats/libbeat/processors/actions", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "0Nul9efwEiPUoOMxtkRlEnZUrko=", "path": "github.com/elastic/beats/libbeat/processors/add_cloud_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Oj8ierk7XV5oPrf9H2tN/BicGTQ=", "path": "github.com/elastic/beats/libbeat/processors/add_docker_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "9nSWuwXm1LZSR2QOK+Xf5QCErf0=", "path": "github.com/elastic/beats/libbeat/processors/add_host_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "+JS4JL7RPI5MHb5H0MYqNm3Twjs=", "path": "github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "YyD/0oAETx7KqXq85Z0mjkY/Xz4=", "path": "github.com/elastic/beats/libbeat/processors/add_locale", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "HCfnQCZk0UekKq+BwqEoxnK3Dxc=", "path": "github.com/elastic/beats/libbeat/processors/add_observer_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "LCBbhOT9n16YuQejCxmUpfggilA=", "path": "github.com/elastic/beats/libbeat/processors/add_process_metadata", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "noIlfwxobZPaPTt0Uf+iT5yuN7w=", "path": "github.com/elastic/beats/libbeat/processors/checks", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "P8hCKTh+cDccJgM/8bqxGOhHQis=", "path": "github.com/elastic/beats/libbeat/processors/communityid", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "7qZ0tJlvNNJK8RMSVnjlzqzUU8U=", "path": "github.com/elastic/beats/libbeat/processors/convert", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "GPOwd0zJ0tegXVcvzagvJMuw9qU=", "path": "github.com/elastic/beats/libbeat/processors/dissect", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "32dCS/48D7mQ16FLoSWZn3RRzXY=", "path": "github.com/elastic/beats/libbeat/processors/dns", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "67H5W0RjhK/Zi1JPk5xo5QTmZs4=", "path": "github.com/elastic/beats/libbeat/processors/extract_array", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Owf4WW+VipEnNs5kXzMQq5s2COo=", "path": "github.com/elastic/beats/libbeat/processors/timeseries", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "MF4OCAwVE7MC3Bh+6qx+QqsBvY8=", "path": "github.com/elastic/beats/libbeat/processors/util", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "7kYMLJJXmsDd9GyXgq9Z9eJdqrk=", "path": "github.com/elastic/beats/libbeat/publisher", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "3lRU4d8X4NyPiCAml4LjDm3o928=", "path": "github.com/elastic/beats/libbeat/publisher/includes", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "QcF/Zso0MmGc5GhvnTFke2zn4BE=", "path": "github.com/elastic/beats/libbeat/publisher/pipeline", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "NXTvrhwyd2ePPUdI6uc8rT52Idc=", "path": "github.com/elastic/beats/libbeat/publisher/processing", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "RaONy2th8fDi9BF5U+lYu5bto4Y=", "path": "github.com/elastic/beats/libbeat/publisher/queue", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "ZUwitg43Gan3j0V+ZjM+5Y/ibb8=", "path": "github.com/elastic/beats/libbeat/publisher/queue/memqueue", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "v95xjG+kkPpkqXJ259woykeh8hY=", "path": "github.com/elastic/beats/libbeat/publisher/queue/spool", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, @@ -1112,80 +1112,80 @@ { "checksumSHA1": "vZZFb4M2d2t7tG3n2UEQeTk/lEM=", "path": "github.com/elastic/beats/libbeat/scripts/cmd/global_fields", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "PqZjacjR7/w5mHFS9u7JXTc73dQ=", "path": "github.com/elastic/beats/libbeat/service", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "IuW/8q7gF37qFMZCSXZQ3gm2f8E=", "path": "github.com/elastic/beats/libbeat/template", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "Ifly/yeBS+Ok0/PKez4lSqzu8JI=", "path": "github.com/elastic/beats/libbeat/testing", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "9Kx3lCJSTPeXCsHnZrieI/zim1c=", "path": "github.com/elastic/beats/libbeat/version", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "YRKEeQXsNj81zjG9gpkCyVpLKJs=", "path": "github.com/elastic/beats/licenses", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "0Wx8UmXeA8oaxfE0x7WsJlxj1t8=", "path": "github.com/elastic/beats/x-pack/libbeat/cmd", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "C+vYoIHxHrOCVIDcX4ecmjteAeI=", "path": "github.com/elastic/beats/x-pack/libbeat/licenser", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "8Ab6ZmPx4ukgI12gc9QMAKjcYeU=", "path": "github.com/elastic/beats/x-pack/libbeat/management", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, { "checksumSHA1": "+MbkcWvWHEUkUO+75600/CgevtI=", "path": "github.com/elastic/beats/x-pack/libbeat/management/api", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z", + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z", "version": "master", "versionExact": "master" }, @@ -1193,526 +1193,526 @@ "checksumSHA1": "rXP3Wn/PiAk8DQLcy9Bjz7wT7Po=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/ecs/code/go/ecs", "path": "github.com/elastic/ecs/code/go/ecs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "3jizmlZPCyo6FAZY8Trk9jA8NH4=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-lumber/client/v2", "path": "github.com/elastic/go-lumber/client/v2", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "m6HLKpDAZlkTTQMqabf3aT6TQ/s=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-lumber/protocol/v2", "path": "github.com/elastic/go-lumber/protocol/v2", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "gaTQy94Osr6NoQhNntMqmWzL/4w=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-seccomp-bpf", "path": "github.com/elastic/go-seccomp-bpf", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "0A6V4lCcYqGVIs6pjejriMU7zpQ=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-seccomp-bpf/arch", "path": "github.com/elastic/go-seccomp-bpf/arch", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "W459MQNQ8qF6qmzLO/QLevTKZlU=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform", "path": "github.com/elastic/go-structform", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "BnoVvQlbw1jk1oveTVQtG+dhGRs=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/cborl", "path": "github.com/elastic/go-structform/cborl", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "xjEIhANt0tAq4FjndVCLQhCXkQo=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/gotype", "path": "github.com/elastic/go-structform/gotype", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "BIRSw/+jqs6VTgRx4MXJy453oGQ=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/internal/unsafe", "path": "github.com/elastic/go-structform/internal/unsafe", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "VPkz0hvtlbDDObJJZoTrjF2CN68=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/json", "path": "github.com/elastic/go-structform/json", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "zRLY43OHR3VYw3fu3XznhxziC4E=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/ubjson", "path": "github.com/elastic/go-structform/ubjson", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "QC8/6yQsm4f+zZo14ExnFtyiaXk=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-structform/visitors", "path": "github.com/elastic/go-structform/visitors", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "pdGPPNf1TeT3fTl8Uwl55hE9/G8=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo", "path": "github.com/elastic/go-sysinfo", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "GiZCjX17K265TtamGZZw4R2Jwbk=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/internal/registry", "path": "github.com/elastic/go-sysinfo/internal/registry", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "dVSTUnZHCLNd0tYIENqdj05RyI8=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/providers/darwin", "path": "github.com/elastic/go-sysinfo/providers/darwin", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "LWMXshdY44+JM7g09dA4tXMZ1rY=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/providers/linux", "path": "github.com/elastic/go-sysinfo/providers/linux", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "RWLvcP1w9ynKbuCqiW6prwd+EDU=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/providers/shared", "path": "github.com/elastic/go-sysinfo/providers/shared", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "13qV0fFj6P5m1/n1HsdByRW0Hk4=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/providers/windows", "path": "github.com/elastic/go-sysinfo/providers/windows", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "OHierbaoOHx79d73DuLrao43rIg=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-sysinfo/types", "path": "github.com/elastic/go-sysinfo/types", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "bNf3GDGhZh86bfCIMM5c5AYfo3g=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile", "path": "github.com/elastic/go-txfile", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "scDqDI8APDj/tB973/ehmPufSLc=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/dev-tools/lib/mage/gotool", "path": "github.com/elastic/go-txfile/dev-tools/lib/mage/gotool", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "/WzE2caCHChUpoRAlXDU5uLTU5I=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/dev-tools/lib/mage/mgenv", "path": "github.com/elastic/go-txfile/dev-tools/lib/mage/mgenv", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "kD/TFYofNqdOjb0nMN0w3LC/nNU=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/dev-tools/lib/mage/xbuild", "path": "github.com/elastic/go-txfile/dev-tools/lib/mage/xbuild", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "re2W5hqGml/Q8vnx+DT3ooUNWxo=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/cleanup", "path": "github.com/elastic/go-txfile/internal/cleanup", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "HjNNDapvfXgOJqs7l7pS3ho6SSI=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/invariant", "path": "github.com/elastic/go-txfile/internal/invariant", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "HLMF+V6Pt3YLUNOgmd2nR+vz9vM=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/iter", "path": "github.com/elastic/go-txfile/internal/iter", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "EAIqvdq5S3FNBoTBAI/U02AwTSU=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/strbld", "path": "github.com/elastic/go-txfile/internal/strbld", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "lejstOrGPfa+tJohvIOK/AjdLa4=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/vfs", "path": "github.com/elastic/go-txfile/internal/vfs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Wqp2VCpbcmfOFuZJrYkaxpvQQrE=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/internal/vfs/osfs", "path": "github.com/elastic/go-txfile/internal/vfs/osfs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "LYeqHmalUZgk3oOHtJyPOKlM/j4=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/pq", "path": "github.com/elastic/go-txfile/pq", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "fCx++6A9uzyCsDUanAIJb77u0MI=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-txfile/txerr", "path": "github.com/elastic/go-txfile/txerr", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "b91TSC0atoGVSMZdKuWTYsMOGiM=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg", "path": "github.com/elastic/go-ucfg", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "X+R/CD8SokJrmlxFTx2nSevRDhQ=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg/cfgutil", "path": "github.com/elastic/go-ucfg/cfgutil", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "/pq8HNEdzHmky9S9HSo1WofXQ4Y=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg/flag", "path": "github.com/elastic/go-ucfg/flag", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "esXpiQlEvTOUwsE0nNesso8albo=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg/internal/parse", "path": "github.com/elastic/go-ucfg/internal/parse", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "cfMNsyQm0gZOV0hRJrBSdKDQSBo=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg/json", "path": "github.com/elastic/go-ucfg/json", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "PJCBACDGPhnRAEqjGPMPCMjbj4o=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-ucfg/yaml", "path": "github.com/elastic/go-ucfg/yaml", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "rnd3qf1FE22X3MxXWbetqq6EoBk=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/go-windows", "path": "github.com/elastic/go-windows", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { - "checksumSHA1": "c1rU7WNZ+1AwZcRPBWhPBHcbZjg=", + "checksumSHA1": "tuhGcluN3UtoiFBovqsep6aPx3s=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/gosigar", "path": "github.com/elastic/gosigar", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "TX9y4oPL5YmT4Gb/OU4GIPTdQB4=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/gosigar/cgroup", "path": "github.com/elastic/gosigar/cgroup", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "hPqGM3DENaGfipEODoyZ4mKogTQ=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/gosigar/sys", "path": "github.com/elastic/gosigar/sys", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "mLq5lOyD0ZU39ysXuf1ETOLJ+f0=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/gosigar/sys/linux", "path": "github.com/elastic/gosigar/sys/linux", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "R70u1XUHH/t1pquvHEFDeUFtkFk=", "origin": "github.com/elastic/beats/vendor/github.com/elastic/gosigar/sys/windows", "path": "github.com/elastic/gosigar/sys/windows", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Klc34HULvwvY4cGA/D8HmqtXLqw=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s", "path": "github.com/ericchiang/k8s", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "y8fNiBLSoGojnUsGDsdLlsJYyqQ=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/apiextensions/v1beta1", "path": "github.com/ericchiang/k8s/apis/apiextensions/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "JxQ/zEWQSrncYNKifCuMctq+Tsw=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/apps/v1beta1", "path": "github.com/ericchiang/k8s/apis/apps/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "bjklGt/pc6kWOZewAw87Hchw5oY=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/authentication/v1", "path": "github.com/ericchiang/k8s/apis/authentication/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "LExhnM9Vn0LQoLQWszQ7aIxDxb4=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/authentication/v1beta1", "path": "github.com/ericchiang/k8s/apis/authentication/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "GM+PzOiBoq3cxx4h5RKVUb3UH60=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/authorization/v1", "path": "github.com/ericchiang/k8s/apis/authorization/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "zfr5oUVjbWRfvXi2LJiGMfFeDQY=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/authorization/v1beta1", "path": "github.com/ericchiang/k8s/apis/authorization/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "izkXNDp5a5WP45jU0hSfTrwyfvM=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/autoscaling/v1", "path": "github.com/ericchiang/k8s/apis/autoscaling/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "FryZuAxWn4Ig8zc913w9BdfYzvs=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/batch/v1", "path": "github.com/ericchiang/k8s/apis/batch/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ylo7Z8wyJD+tmICB7wsOVIBpO+U=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/batch/v2alpha1", "path": "github.com/ericchiang/k8s/apis/batch/v2alpha1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "+d8+mSdkdcPWQIpczXDZZW0lrjg=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/certificates/v1beta1", "path": "github.com/ericchiang/k8s/apis/certificates/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "S7AvxmCe/+WoFP/v9lZr0Mv66qg=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/core/v1", "path": "github.com/ericchiang/k8s/apis/core/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "cWPoP6XZN7WMnEVMPcgPgg3Aw9Q=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/extensions/v1beta1", "path": "github.com/ericchiang/k8s/apis/extensions/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "vaNrBPcGWeDd1rXl8+uN08uxWhE=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/imagepolicy/v1alpha1", "path": "github.com/ericchiang/k8s/apis/imagepolicy/v1alpha1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "UNTTH+Ppu4vImnF+bPkG3/NR3gg=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/meta/v1", "path": "github.com/ericchiang/k8s/apis/meta/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Mmyg9Wh+FCVR6fV8MGEKRxvqZ2k=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/policy/v1beta1", "path": "github.com/ericchiang/k8s/apis/policy/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "bvwYS/wrBkyAfvCjzMbi/vKamrQ=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/rbac/v1alpha1", "path": "github.com/ericchiang/k8s/apis/rbac/v1alpha1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "m1Tde18NwewnvJoOYL3uykNcBuM=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/rbac/v1beta1", "path": "github.com/ericchiang/k8s/apis/rbac/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "JirJkoeIkWJRNrbprsQvqwisxds=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/resource", "path": "github.com/ericchiang/k8s/apis/resource", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "rQZ69PjEClQQ+PGEHRKzkGVVQyw=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/settings/v1alpha1", "path": "github.com/ericchiang/k8s/apis/settings/v1alpha1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "pp0AetmPoKy7Rz0zNhBwUpExkbc=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/storage/v1", "path": "github.com/ericchiang/k8s/apis/storage/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "WeACcIrS4EkeBm8TTftwuVniaWk=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/apis/storage/v1beta1", "path": "github.com/ericchiang/k8s/apis/storage/v1beta1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Su6wSR8V8HL2QZsF8icJ0R9AFq8=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/runtime", "path": "github.com/ericchiang/k8s/runtime", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "8ETrRvIaXPfD21N7fa8kdbumL00=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/runtime/schema", "path": "github.com/ericchiang/k8s/runtime/schema", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "cMk3HE8/81ExHuEs0F5sZCclOFs=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/util/intstr", "path": "github.com/ericchiang/k8s/util/intstr", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "fobEKiMk5D7IGvCSwh4HdG1o98c=", "origin": "github.com/elastic/beats/vendor/github.com/ericchiang/k8s/watch/versioned", "path": "github.com/ericchiang/k8s/watch/versioned", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "AANTVr9CVVyzsgviODY6Wi2thuM=", "origin": "github.com/elastic/beats/vendor/github.com/fatih/color", "path": "github.com/fatih/color", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "2UmMbNHc8FBr98mJFN1k8ISOIHk=", "origin": "github.com/elastic/beats/vendor/github.com/garyburd/redigo/internal", "path": "github.com/garyburd/redigo/internal", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "507OiSqTxfGCje7xDT5eq9CCaNQ=", "origin": "github.com/elastic/beats/vendor/github.com/garyburd/redigo/redis", "path": "github.com/garyburd/redigo/redis", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ImX1uv6O09ggFeBPUJJ2nu7MPSA=", "origin": "github.com/elastic/beats/vendor/github.com/ghodss/yaml", "path": "github.com/ghodss/yaml", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "2VgF+qja44x3wPTp8U8TZEU6FWw=", "origin": "github.com/elastic/beats/vendor/github.com/go-ole/go-ole", "path": "github.com/go-ole/go-ole", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Q0ZOcJW0fqOefDzEdn+PJHOeSgI=", "origin": "github.com/elastic/beats/vendor/github.com/go-ole/go-ole/oleutil", "path": "github.com/go-ole/go-ole/oleutil", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "OFaReqy4hyrLlTTYFmcqkvidHsQ=", @@ -1744,15 +1744,15 @@ "checksumSHA1": "kBeNcaKk56FguvPSUCEaH6AxpRc=", "origin": "github.com/elastic/beats/vendor/github.com/golang/protobuf/proto", "path": "github.com/golang/protobuf/proto", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "p/8vSviYF91gFflhrt5vkyksroo=", "origin": "github.com/elastic/beats/vendor/github.com/golang/snappy", "path": "github.com/golang/snappy", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ERQ2s0ptrBg+jskQR/9IhaB3kVA=", @@ -1850,29 +1850,29 @@ "checksumSHA1": "40vJyUB4ezQSn/NSadsKEOrudMc=", "origin": "github.com/elastic/beats/vendor/github.com/inconshreveable/mousetrap", "path": "github.com/inconshreveable/mousetrap", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "l9wW52CYGbmO/NGwYZ/Op2QTmaA=", "origin": "github.com/elastic/beats/vendor/github.com/joeshaw/multierror", "path": "github.com/joeshaw/multierror", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "IH4jnWcj4d4h+hgsHsHOWg/F+rk=", "origin": "github.com/elastic/beats/vendor/github.com/jstemmer/go-junit-report/formatter", "path": "github.com/jstemmer/go-junit-report/formatter", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Tx9cQqKFUHzu1l6H2XEl8G7ivlI=", "origin": "github.com/elastic/beats/vendor/github.com/jstemmer/go-junit-report/parser", "path": "github.com/jstemmer/go-junit-report/parser", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "pa+ZwMzIv+u+BlL8Q2xgL9cQtJg=", @@ -1884,99 +1884,99 @@ "checksumSHA1": "KKxbAKrKrfd33YPpkNsDmTN3S+M=", "origin": "github.com/elastic/beats/vendor/github.com/klauspost/compress/flate", "path": "github.com/klauspost/compress/flate", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "+azPXaZpPF14YHRghNAer13ThQU=", "origin": "github.com/elastic/beats/vendor/github.com/klauspost/compress/zlib", "path": "github.com/klauspost/compress/zlib", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "R6zKqn31GjJH1G8W/api7fAW0RU=", "origin": "github.com/elastic/beats/vendor/github.com/klauspost/cpuid", "path": "github.com/klauspost/cpuid", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "BM6ZlNJmtKy3GBoWwg2X55gnZ4A=", "origin": "github.com/elastic/beats/vendor/github.com/klauspost/crc32", "path": "github.com/klauspost/crc32", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Aulh7C5SVOA4Jzt5eHNH6197Mbk=", "origin": "github.com/elastic/beats/vendor/github.com/konsorten/go-windows-terminal-sequences", "path": "github.com/konsorten/go-windows-terminal-sequences", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ASXhLVfIA2mzHf+7muYxT38JaHU=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage", "path": "github.com/magefile/mage", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "fHpo/9Tke6VFfZZAT+PRnoNOiiY=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/internal", "path": "github.com/magefile/mage/internal", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "RVSwuhHOfojhN74rfwRe4AktDIA=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/mage", "path": "github.com/magefile/mage/mage", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "irRTBkCBnOGMX+PZhOdHFUckgBY=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/mg", "path": "github.com/magefile/mage/mg", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "QGt/JRmNp+D+lO0hHZsUUyH7y5U=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/parse", "path": "github.com/magefile/mage/parse", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "4JzH55TcYdctQksrCafgKT8lZRU=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/sh", "path": "github.com/magefile/mage/sh", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "91U4Tlwnjdmwjd0w/XNw3+fxFKo=", "origin": "github.com/elastic/beats/vendor/github.com/magefile/mage/target", "path": "github.com/magefile/mage/target", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "qNkx9+OTwZI6aFv7K9zuFCGODUw=", "origin": "github.com/elastic/beats/vendor/github.com/mattn/go-colorable", "path": "github.com/mattn/go-colorable", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "U6lX43KDDlNOn+Z0Yyww+ZzHfFo=", "origin": "github.com/elastic/beats/vendor/github.com/mattn/go-isatty", "path": "github.com/mattn/go-isatty", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "AZtrc8Chiynrp48VQzRDH5vBR3M=", @@ -1988,36 +1988,36 @@ "checksumSHA1": "VsImZoqjaqgwK+u/4eIEzQhuRNM=", "origin": "github.com/elastic/beats/vendor/github.com/miekg/dns", "path": "github.com/miekg/dns", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "sWdAYPKyaT4SW8hNQNpRS0sU4lU=", "origin": "github.com/elastic/beats/vendor/github.com/mitchellh/hashstructure", "path": "github.com/mitchellh/hashstructure", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "2AyUkWjutec6p+470tgio8mYOxI=", "origin": "github.com/elastic/beats/vendor/github.com/opencontainers/go-digest", "path": "github.com/opencontainers/go-digest", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "eOMCORUm8KxiGSy0hBuQsMsxauo=", "origin": "github.com/elastic/beats/vendor/github.com/opencontainers/image-spec/specs-go", "path": "github.com/opencontainers/image-spec/specs-go", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "9YujSsJjiLGkQMzwWycsjqR340k=", "origin": "github.com/elastic/beats/vendor/github.com/opencontainers/image-spec/specs-go/v1", "path": "github.com/opencontainers/image-spec/specs-go/v1", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "JVGDxPn66bpe6xEiexs1r+y6jF0=", @@ -2029,15 +2029,15 @@ "checksumSHA1": "WmrPO1ovmQ7t7hs9yZGbr2SAoM4=", "origin": "github.com/elastic/beats/vendor/github.com/pierrec/lz4", "path": "github.com/pierrec/lz4", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "IT4sX58d+e8osXHV5U6YCSdB/uE=", "origin": "github.com/elastic/beats/vendor/github.com/pierrec/xxHash/xxHash32", "path": "github.com/pierrec/xxHash/xxHash32", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "e6T/9bM7ah7mQJVVIaTuCw/63Uo=", @@ -2049,50 +2049,50 @@ "checksumSHA1": "PdQm3s8DoVJ17Vk8n7o5iPa7PK0=", "origin": "github.com/elastic/beats/vendor/github.com/pkg/errors", "path": "github.com/pkg/errors", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "LuFv4/jlrmFNnDb/5SCSEPAM9vU=", "origin": "github.com/elastic/beats/vendor/github.com/pmezard/go-difflib/difflib", "path": "github.com/pmezard/go-difflib/difflib", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Etvt6mgzvD7ARf4Ux03LHfgSlzU=", "origin": "github.com/elastic/beats/vendor/github.com/prometheus/procfs", "path": "github.com/prometheus/procfs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "lv9rIcjbVEGo8AT1UCUZXhXrfQc=", "origin": "github.com/elastic/beats/vendor/github.com/prometheus/procfs/internal/util", "path": "github.com/prometheus/procfs/internal/util", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "EekY1iRG9JY74mDD0jsbFCWbAFs=", "origin": "github.com/elastic/beats/vendor/github.com/prometheus/procfs/nfs", "path": "github.com/prometheus/procfs/nfs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "yItvTQLUVqm/ArLEbvEhqG0T5a0=", "origin": "github.com/elastic/beats/vendor/github.com/prometheus/procfs/xfs", "path": "github.com/prometheus/procfs/xfs", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "LmajbO3+qtbE7JA0MQ29PXbmKNM=", "origin": "github.com/elastic/beats/vendor/github.com/rcrowley/go-metrics", "path": "github.com/rcrowley/go-metrics", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "bHjkZAUVoSZjoKxDquucwqdc6Hw=", @@ -2211,57 +2211,57 @@ "checksumSHA1": "1KA6FgHyBKaIqBbOMFYt5wkMap8=", "origin": "github.com/elastic/beats/vendor/github.com/sirupsen/logrus", "path": "github.com/sirupsen/logrus", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "1Z9bN43Wk647bMXb/yMDdVEYTHo=", "origin": "github.com/elastic/beats/vendor/github.com/sirupsen/logrus/terminal", "path": "github.com/sirupsen/logrus/terminal", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "e7mAb9jMke2ASQGZepFgOmfBFzM=", "origin": "github.com/elastic/beats/vendor/github.com/spf13/cobra", "path": "github.com/spf13/cobra", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "STxYqRb4gnlSr3mRpT+Igfdz/kM=", "origin": "github.com/elastic/beats/vendor/github.com/spf13/pflag", "path": "github.com/spf13/pflag", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "c6pbpF7eowwO59phRTpF8cQ80Z0=", "origin": "github.com/elastic/beats/vendor/github.com/stretchr/testify/assert", "path": "github.com/stretchr/testify/assert", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "wnEANt4k5X/KGwoFyfSSnpxULm4=", "origin": "github.com/elastic/beats/vendor/github.com/stretchr/testify/require", "path": "github.com/stretchr/testify/require", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "CpcG17Q/0k1g2uy8AL26Uu7TouU=", "origin": "github.com/elastic/beats/vendor/github.com/theckman/go-flock", "path": "github.com/theckman/go-flock", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "H7tCgNt2ajKK4FBJIDNlevu9MAc=", "origin": "github.com/elastic/beats/vendor/github.com/urso/go-bin", "path": "github.com/urso/go-bin", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "U0+8SV2wk6AxaWq1bypmI7k0IDI=", @@ -2435,92 +2435,92 @@ "checksumSHA1": "HedK9m8E8iyib4bIBtIX7xprOgo=", "origin": "github.com/elastic/beats/vendor/go.uber.org/atomic", "path": "go.uber.org/atomic", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "JDGx7hehaQunZySwPs7yvdUs2m8=", "origin": "github.com/elastic/beats/vendor/go.uber.org/multierr", "path": "go.uber.org/multierr", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "5BYbiKEkYykvfjSaNYDuQpBqglo=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap", "path": "go.uber.org/zap", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "HYo/9nwrY08NQA+2ItPOAH8IFW8=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/buffer", "path": "go.uber.org/zap/buffer", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "MuxOAtZEsJitlWBzhmpm2vGiHok=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/internal/bufferpool", "path": "go.uber.org/zap/internal/bufferpool", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "uC0L9eCSAYcCWNC8udJk/t1vvIU=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/internal/color", "path": "go.uber.org/zap/internal/color", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "b80CJExrVpXu3SA1iCQ6uLqTn2c=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/internal/exit", "path": "go.uber.org/zap/internal/exit", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "mRD6lujPvXPkbC3+byNwO/bNVu8=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/zapcore", "path": "go.uber.org/zap/zapcore", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "gyBmIfDZslmQGKnqisJ/p7oHbQc=", "origin": "github.com/elastic/beats/vendor/go.uber.org/zap/zaptest/observer", "path": "go.uber.org/zap/zaptest/observer", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "2LpxYGSf068307b7bhAuVjvzLLc=", "origin": "github.com/elastic/beats/vendor/golang.org/x/crypto/ed25519", "path": "golang.org/x/crypto/ed25519", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "0JTAFXPkankmWcZGQJGScLDiaN8=", "origin": "github.com/elastic/beats/vendor/golang.org/x/crypto/ed25519/internal/edwards25519", "path": "golang.org/x/crypto/ed25519/internal/edwards25519", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "1MGpGDQqnUoRpv7VEcQrXOBydXE=", "origin": "github.com/elastic/beats/vendor/golang.org/x/crypto/pbkdf2", "path": "golang.org/x/crypto/pbkdf2", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "6U7dCaxxIMjf5V02iWgyAwppczw=", "origin": "github.com/elastic/beats/vendor/golang.org/x/crypto/ssh/terminal", "path": "golang.org/x/crypto/ssh/terminal", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "RGFEeJVsaq+s5qGwd0MzXNMMFSU=", @@ -2532,78 +2532,78 @@ "checksumSHA1": "uX2McdP4VcQ6zkAF0Q4oyd0rFtU=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/bpf", "path": "golang.org/x/net/bpf", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "dr5+PfIRzXeN+l1VG+s0lea9qz8=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/context", "path": "golang.org/x/net/context", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "WHc3uByvGaMcnSoI21fhzYgbOgg=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/context/ctxhttp", "path": "golang.org/x/net/context/ctxhttp", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "TWcqN2+KUWtdqnu18rruwn14UEQ=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/http2", "path": "golang.org/x/net/http2", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ezWhc7n/FtqkLDQKeU2JbW+80tE=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/http2/hpack", "path": "golang.org/x/net/http2/hpack", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "RcrB7tgYS/GMW4QrwVdMOTNqIU8=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/idna", "path": "golang.org/x/net/idna", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "5JWn/wMC+EWNDKI/AYE4JifQF54=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/internal/iana", "path": "golang.org/x/net/internal/iana", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "YsXlbexuTtUXHyhSv927ILOkf6A=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/internal/socket", "path": "golang.org/x/net/internal/socket", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "zPTKyZ1C55w1fk1W+/qGE15jaek=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/ipv4", "path": "golang.org/x/net/ipv4", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "3L3n7qKMO9X8E1ibA5mExKvwbmI=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/ipv6", "path": "golang.org/x/net/ipv6", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "3xyuaSNmClqG4YWC7g0isQIbUTc=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/lex/httplex", "path": "golang.org/x/net/lex/httplex", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "whCSspa9pYarl527EuhPz91cbUE=", @@ -2615,8 +2615,8 @@ "checksumSHA1": "QEm/dePZ0lOnyOs+m22KjXfJ/IU=", "origin": "github.com/elastic/beats/vendor/golang.org/x/net/proxy", "path": "golang.org/x/net/proxy", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "uRlaEkyMCxyjj57KBa81GEfvCwg=", @@ -2640,78 +2640,78 @@ "checksumSHA1": "nc3RG2Qgzn2aup/3/4RusWr+X0g=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/unix", "path": "golang.org/x/sys/unix", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Hi7BmkvZh4plNNLGDHfPnCKy3i8=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/windows", "path": "golang.org/x/sys/windows", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "P9OIhD26uWlIST/me4TYnvseCoY=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry", "path": "golang.org/x/sys/windows/registry", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "Fes9OIPy6lS/ghzodqAbMlZZTTQ=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc", "path": "golang.org/x/sys/windows/svc", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "e9KJPWrdqg5PMkbE2w60Io8rY4M=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/debug", "path": "golang.org/x/sys/windows/svc/debug", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "uVlUSSKplihZG7N+QJ6fzDZ4Kh8=", "origin": "github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/eventlog", "path": "golang.org/x/sys/windows/svc/eventlog", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "CbpjEkkOeh0fdM/V8xKDdI0AA88=", "origin": "github.com/elastic/beats/vendor/golang.org/x/text/secure/bidirule", "path": "golang.org/x/text/secure/bidirule", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ziMb9+ANGRJSSIuxYdRbA+cDRBQ=", "origin": "github.com/elastic/beats/vendor/golang.org/x/text/transform", "path": "golang.org/x/text/transform", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "w8kDfZ1Ug+qAcVU0v8obbu3aDOY=", "origin": "github.com/elastic/beats/vendor/golang.org/x/text/unicode/bidi", "path": "golang.org/x/text/unicode/bidi", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "BCNYmf4Ek93G4lk5x3ucNi/lTwA=", "origin": "github.com/elastic/beats/vendor/golang.org/x/text/unicode/norm", "path": "golang.org/x/text/unicode/norm", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "vGfePfr0+weQUeTM/71mu+LCFuE=", "origin": "github.com/elastic/beats/vendor/golang.org/x/time/rate", "path": "golang.org/x/time/rate", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "1AaBS00YoGPd0fAjH1soKkj12J0=", @@ -2742,8 +2742,8 @@ "checksumSHA1": "AnXFEvmaJ7w2Q7hWPcLUmCbPgq0=", "origin": "github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil", "path": "golang.org/x/tools/go/buildutil", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "6lzLm5eIswP0fziPs74p+lb0QUo=", @@ -2781,8 +2781,8 @@ "checksumSHA1": "ZpAR2KupZto/mWf9zu5e6IKDWt0=", "origin": "github.com/elastic/beats/vendor/golang.org/x/tools/go/loader", "path": "golang.org/x/tools/go/loader", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "U4XmDuxzcmANbYDc10Gi7bv9v9o=", @@ -2895,15 +2895,15 @@ "checksumSHA1": "fALlQNY1fM99NesfLJ50KguWsio=", "origin": "github.com/elastic/beats/vendor/gopkg.in/yaml.v2", "path": "gopkg.in/yaml.v2", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" }, { "checksumSHA1": "ZDOewomjpADMDyjKRW5rP15519M=", "origin": "github.com/elastic/beats/vendor/howett.net/plist", "path": "howett.net/plist", - "revision": "b2c2bb0cc91aaca92f87d0307482691273cd26e3", - "revisionTime": "2019-06-07T06:36:52Z" + "revision": "bf7c3dccb61eab4838a326cb8463c5fcba0fb342", + "revisionTime": "2019-06-25T20:01:03Z" } ], "rootPath": "github.com/elastic/apm-server"