vectordotdev / vectordotdev/vector

Mezmo Sink: Log level/severity is not included

Open
#25,987 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
22.6k
Forks
2.3k
Avg merge
1d 7h
Merged PRs (30d)
146

Description

A note for the community
  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment
Problem

The level of the log is not included in /src/sinks/mezmo.rs. If I try to put a .level = "info" or ._level = "info" in a transform, it gets put into the meta object by the Mezmo sink.

What should be sent like:

{
  "lines": [
    {
      "line": "I am a warning",
      "app": "my-app",
      "level": "warning",
      "meta": {
        "subject": ["script"]
      }
    }
  ]
}

instead sends as:

{
  "lines": [
    {
      "line": "I am a warning",
      "app": "my-app",
      "meta": {
        "level": "warning",
        "subject": ["script"]
      }
    }
  ]
}

Because the level is in the meta object, the severity is not shown in the live tail and isn't filtered correctly (it's treated as if it has no level/severity. As a workaround, I am using encode_json like this:

payload = {
  "level": .level,
  "message": .message,
  "subject": .subject,
  "src_ip": .host
}
.message = encode_json(payload)
Configuration

Version

vector 0.57.0 (x86_64-unknown-linux-gnu 8832452 2026-07-14 20:58:30.491174540)

Debug Output

Example Data

No response

Additional Context

No response

References

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/sinks/mezmo.rs and compare the current payload with the expected JSON in the issue. Trace how the log level is handled versus other fields, then verify that a configured level is emitted as the top-level line level rather than inside meta; the resulting Mezmo payload should match the expected structure.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, observability-sre
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.