Skip to content

feat(new source): Add Windows Event Log source - #6

Closed
tot19 wants to merge 30 commits into
test-basefrom
windows-latest-runner
Closed

tot19 wants to merge 30 commits into
test-basefrom
windows-latest-runner

Conversation

@tot19

@tot19 tot19 commented Mar 3, 2026

Copy link
Copy Markdown
Owner

Summary

Test branch to run full CI suite with windows-latest runner. Do not merge.

Test plan

  • Full CI validation before submitting to upstream

🤖 Generated with Claude Code

vparfonov and others added 15 commits February 27, 2026 17:59
… fixes (vectordotdev#24662)

* Support scalars, nested objects, and arrays in structured data. Improve RFC compliance
- Support scalars, nested objects and arrays in structured data
- Fix UTF-8 safety: use character-based truncation (prevents panics)
- Fix RFC 3164: ignore structured data instead of prepending
- Add ASCII sanitization for RFC 3164 fields
- Add RFC 5424 SD-ID/PARAM-NAME validation

* add changelog file

* address PR review comments

 fix SD-ID use char count instead of byte length
 use workspace dependency for toml
 changelog with detailed breakdown

* explain array serialization in chngelog file

* Update check-spelling metadata with 'emojis'

* Fix markdown

* Fix markdown lint errors
Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.7.5 to 2.8.0.
- [Commits](BurntSushi/memchr@2.7.5...2.8.0)

---
updated-dependencies:
- dependency-name: memchr
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ectordotdev#24783)

Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [derive_more](https://github.com/JelteF/derive_more) from 2.0.1 to 2.1.1.
- [Release notes](https://github.com/JelteF/derive_more/releases)
- [Changelog](https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md)
- [Commits](JelteF/derive_more@v2.0.1...v2.1.1)

---
updated-dependencies:
- dependency-name: derive_more
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [evmap](https://github.com/jonhoo/evmap) from 10.0.2 to 11.0.0.
- [Commits](jonhoo/evmap@v10.0.2...v11.0.0)

---
updated-dependencies:
- dependency-name: evmap
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [smpl_jwt](https://github.com/durch/rust-jwt) from 0.8.0 to 0.9.0.
- [Commits](https://github.com/durch/rust-jwt/commits)

---
updated-dependencies:
- dependency-name: smpl_jwt
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [bytesize](https://github.com/bytesize-rs/bytesize) from 2.1.0 to 2.3.1.
- [Release notes](https://github.com/bytesize-rs/bytesize/releases)
- [Changelog](https://github.com/bytesize-rs/bytesize/blob/master/CHANGELOG.md)
- [Commits](bytesize-rs/bytesize@bytesize-v2.1.0...bytesize-v2.3.1)

---
updated-dependencies:
- dependency-name: bytesize
  dependency-version: 2.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Pavlos Rontidis <pavlos.rontidis@gmail.com>
…#24785)

* fix(ci): restrict GITHUB_TOKEN permissions in workflows

Apply principle of least privilege to workflow permissions to address 6 Token-Permissions security alerts. Changes include adding explicit contents: read, downgrading packages: write to packages: read where only image pulls are needed, and moving elevated permissions from workflow to job level where appropriate.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* manual fix of .github/workflows/ci-integration-review.yml

* manually fix statuses in .github/workflows/ci-integration-review.yml

* remove redundant line from .github/workflows/cla.yml

* manually fix .github/workflows/integration.yml

* attempt to fix .github/workflows/integration.yml

* attempt to fix ci-integration-review.yml

---------

Co-authored-by: Claude <noreply@anthropic.com>
* chore(deps): expose vrl functions flag

* chore: remove changelog

* chore(tests): update test behavior to include all vrl functions
… keys (vectordotdev#24824)

* wip dir secrets resolution fix

* add integration test for nested directory paths

* add changelog file

* fix spelling

* fix formatting

---------

Co-authored-by: Pavlos Rontidis <pavlos.rontidis@gmail.com>
…ctordotdev#24826)

* chore(dev): add codegen-units = 1 in Cargo.toml

* chore(internal docs): Delete obsolete LLVM/clang 9 RUSTFLAGS step

* Revert "chore(dev): add codegen-units = 1 in Cargo.toml"

This reverts commit dfdcf25.
* chore(docs): add new component docs guide

* revert unrelated Cargo.lock changes

* fix TOC changes

* add missing step to create md file

* simplify

* md style fixes

* review feedback
* docs(dev): specify Hugo download link

* Apply suggestion from @thomasqueirozb

Co-authored-by: Thomas <thomas.schneider@datadoghq.com>

* md linter fix

---------

Co-authored-by: Thomas <thomas.schneider@datadoghq.com>
tot19 and others added 7 commits March 3, 2026 16:30
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Style and formatting cleanup across all source files: consistent log
message punctuation, hoisted imports to module level, rustfmt
single-line struct variants, and removed redundant blank lines.

Maintainer review feedback:
- Emit keywords as hex string (0x...) to preserve unsigned bitmask
- Propagate flush_bookmarks() set_batch error instead of swallowing
- Remove 5 placeholder tests that inflated coverage
- Strengthen truncation test with real assertions
- Add missing fields to Vector namespace schema (level_value,
  provider_guid, version, qualifiers, string_inserts, event_data,
  user_data, task_name, opcode_name, keyword_names)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ent_log

Performance: build_xpath_query() now auto-generates XPath from only_event_ids
(e.g. *[System[EventID=4624 or EventID=4625]]) so the Windows API filters at
the source. Added early pre-filter in the drain loop after parse_system_section
to discard non-matching events before expensive metadata/message calls. Includes
4096-char length guard that falls back to wildcard for very large ID lists.

Tests: XPath generation unit tests, multi-filter interaction tests, config
validation boundary tests, integration test exercising XPath generation without
explicit event_query, and fixes for four pre-existing test assertion errors.

Docs: markdown page and changelog fragment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d run fmt

The `vdev check events` linter requires InternalEvent types with "Error"
in their name to log at error level. Promote WindowsEventLogParseError,
WindowsEventLogQueryError, and WindowsEventLogBookmarkError from warn!
to error! to satisfy this requirement.

Also widen the max_event_age integration test timing margins (2s→5s sleep,
1s→3s threshold) to reduce flakiness on slow CI, remove the redundant
integration test README, and apply rustfmt formatting fixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tot19
tot19 force-pushed the windows-latest-runner branch from 7f8e5f1 to 78d3ce1 Compare March 4, 2026 19:22
…ration

Move the windows_event_log config layer to compile on all platforms so
`make generate-component-docs` works on Linux/macOS. Runtime code stays
behind #[cfg(windows)] and build() returns an error on non-Windows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tot19
tot19 force-pushed the windows-latest-runner branch from 78d3ce1 to e74e17a Compare March 5, 2026 05:00
@tot19
tot19 force-pushed the windows-latest-runner branch from 816e418 to 86b8cd4 Compare March 5, 2026 05:32
tot19 and others added 5 commits March 9, 2026 20:17
Simplify changelog to single-line summary since generated docs cover
details. Add required CI check pattern (paths-filter + status gate) for
Windows integration workflow. Replace repeated #[cfg(windows)] with
cfg_if! blocks in mod.rs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t_log

- Fix field cap guard in parse_section: use OR instead of AND so the
  loop stops when either named_data or inserts reaches MAX_FIELDS
- Fix channel fallback in build_event: use the subscription channel
  parameter when the parsed system channel is empty
- Fix extract_message_from_event_data: check string_inserts (unnamed
  <Data> elements from eventcreate) before falling back to generic msg
- Fix checkpoint resume test: allow small overlap (up to batch_size)
  caused by timeout-based shutdown racing between send_batch/finalize
- Fix rejected ack test: also search string_inserts for marker event
  in case EvtFormatMessage is unavailable on the CI runner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Temporary diagnostic logging to identify why stress test gets 125/200
events on windows-2025-8core. Logs per-batch timings for wait, pull,
parse, send, and checkpoint phases to identify the bottleneck.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… source names

Each test now uses a unique provider name (e.g. VT_stress, VT_backlog)
for eventcreate and XPath filtering, preventing cross-test pollution
when tests run in parallel on multi-core CI runners. Also serializes
test execution via --test-threads=1 in the Makefile target.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…isolation

With per-test source names, phase 1 only receives 1 event (our test
event), so the old `second_run.len() < first_count` assertion fails
when first_count==1 and the second run correctly gets 1 new event.

Replace the count-based assertion with content-based checks: verify
phase1 event is NOT redelivered and phase2 event IS present.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tot19 tot19 closed this Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants