Skip to content

Log detail view displays wrong attribute names for attributes_number map entries #10932

@PumpkinSeed

Description

@PumpkinSeed

Bug description

The log detail panel in the Logs Explorer displays incorrect attribute names for entries stored in attributes_number. Custom numeric attribute keys are rendered under HTTP semantic convention names (e.g. port, code.lineno) instead of their actual keys. attributes_string entries display correctly.

The incorrectly displayed name is not consistent across page loads — the same attributes_number entry has appeared as code.lineno in one view and port in another, suggesting the UI is using positional index-based mapping rather than reading the actual map keys.

Proof that raw data is correct:

SELECT attributes_string, attributes_number
FROM signoz_logs.distributed_logs_v2
WHERE body = 'Sleeping until next execution'
ORDER BY timestamp DESC LIMIT 1
attributes_string: {'sleep':'5h1m51.86539086s'}
attributes_number: {'next_run':1776192000000000000}

ClickHouse stores the correct key next_run. The UI renders it as port or code.lineno.

Workaround: Converting all attributes to strings (so they go into attributes_string instead of attributes_number) displays them correctly. This confirms the bug is isolated to attributes_number map rendering.

Expected behavior

Attributes shown with their actual key names as stored in ClickHouse. next_run should display as next_run, not port or code.lineno.

How to reproduce

  1. Send a log entry via OTLP with a mix of numeric and string attributes:
slog.Info("Sleeping until next execution",
    slog.Time("next_run", next),              // stored in attributes_number as nanoseconds
    slog.String("sleep", duration.String()),   // stored in attributes_string
)
  1. Open the log entry in Logs Explorer detail view

Version information

  • Signoz version: v0.118.0 (also reproduced on v0.117.1)
  • Browser version: Brave 1.88.138 (Official Build) (64-bit) / Chromium: 146.0.7680.178
  • Your OS and version: Manjaro, 6.12.77-1-MANJARO
  • Your CPU Architecture(ARM/Intel): AMD64

Additional context

Logs are sent directly via OTLP from a Go service using otelslog bridge. The OTel Collector pipeline has no transform or attributes processors — only batch. The clickhouselogsexporter uses use_new_schema: true.

Image Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions