Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[APM - OpenTelemetry] Span Events and Logs support: enhancement requests #123256

Open
cyrille-leclerc opened this issue Jan 18, 2022 · 11 comments
Open
Labels
apm:logs apm:opentelemetry APM UI - OTEL Work enhancement New value added to drive a business result OpenTelemetry Team:APM All issues that need APM UI Team support

Comments

@cyrille-leclerc
Copy link
Contributor

cyrille-leclerc commented Jan 18, 2022

Kibana version

8.0-rc1

APM Server version (if applicable)

8.0-rc1

Elasticsearch version (if applicable)

8.0-rc1

Steps to Reproduce

Expected Behavior

Enhancement Requests on the Trace Logs Tab

Decreasing priority order priority

image

Actual Behavior

  • Current Trace Timeline tab
    image
  • Current Trace Metadata tab

image

  • Current Trace Logs tab
    image
@cyrille-leclerc cyrille-leclerc added the Team:APM All issues that need APM UI Team support label Jan 18, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/apm-ui (Team:apm)

@formgeist formgeist added Team:Unified observability Unified Observability Work to make the observability apps more consistent and eventually more unified as a user experience labels Jan 19, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/unified-observability (Team:Unified observability)

@formgeist formgeist added apm:logs enhancement New value added to drive a business result labels Jan 19, 2022
@formgeist
Copy link
Contributor

@cyrille-leclerc Thanks for creating this issue. I noticed there's a mix of APM and Logs embeddable enhancements, so I've added the @elastic/unified-observability team to the ticket as well as we'll probably need to extend the capabilities of this component as well.

I have some follow up questions;

Display attributes of span events

I'm not sure I understand what the expected experience will be? What do these span events look like and are they supposed to go in the Logs stream or the Trace waterfall/timeline?

Link to show log message details (the full json document), probably redirecting to Kibana Discover or opening a flyout.

There's an open issue already for adding the "View details" functionality to the Logs component - I assume this is similar? #111325 I think the only thing missing is the ability to View document in Discover.

Timestamp column should be collapsible

This is probably best achieved with a control option to show/hide the timestamp column in the embeddable. Collapsing columns are not supported in the Logs component at the moment.

Service.name column should be collapsible into a color code similarly to what we have in the timeline view

Yes, we have an open issue already for adding the service.name column and with an enhanced legend related to the Waterfall/Timeline #85947

Replace the computed "Message" column by the "log.message" column

I'm not familiar with the difference between the two - can you explain? I would expect message to be log.message.

@cyrille-leclerc
Copy link
Contributor Author

cyrille-leclerc commented Jan 19, 2022

Display attributes of span events
I'm not sure I understand what the expected experience will be? What do these span events look like and are they supposed to go in the Logs stream or the Trace waterfall/timeline?

The span event API looks like:

span.addEvent("order-creation", Attributes.of(
    "customer_id", 123456,
    "order_price", 654,
    "payment_method", "visa
    "shipping_method", "express",
    "shipping_country", "FR"));

Visualization today is

order-creation

Proposed style of visualization

(e) order-creation: customer_id=123456, order_price=654, payment_method=visa, shipping_method=express, shipping_country=FR

Where (e) could be an icon indicating it's a span event rather than an unstructured log message

See example of Jaeger visualization of span events

Replace the computed "Message" column by the "log.message" column

I'm not familiar with the difference between the two - can you explain? I would expect message to be log.message.

Messagewith upper case M is the combination of multiple fields, on the screenshot it is [${log.level}] ${log.message}]

Link to show log message details (the full json document), probably redirecting to Kibana Discover or opening a flyout.

There's an open issue already for adding the "View details" functionality to the Logs component - I assume this is similar? #111325 I think the only thing missing is the ability to View document in Discover.

LGTM

@formgeist
Copy link
Contributor

@cyrille-leclerc Thanks for added details. I've added this issue to our design board for planning 👍

@jasonrhodes
Copy link
Member

@elastic/infra-monitoring-ui we will want to look at this from the Logs UI logic side, working with @elastic/unified-observability to figure out how this will be used more generally

@axw
Copy link
Member

axw commented Jan 20, 2022

Where (e) could be an icon indicating it's a span event rather than an unstructured log message

There's currently nothing in the documents to distinguish span events; "span event" isn't something that exists in our model -- they're just log records.

"... rather than an unstructured log message" implies that everything that's not a span event is unstructured. That's not the case, there are plenty of structured logging libraries out there. Do they come under the same category as span events? How do we distinguish them?

@formgeist
Copy link
Contributor

After conversation with @Mpdreamz @axw and @cyrille-leclerc about how to best visualize these span events and their attributes, we decided on exploring the following concept;

If the log message contains some labels.* or numeric_labels.* fields, then we should display them in the log “message column”. If the “log.message” is quite long, then we can assume that the fields are less useful to be visualized on the default view.

We will prioritize exploring how to enhance the existing log message rows in the Logs UI to support this.

@jasonrhodes
Copy link
Member

It sounds like some of this is possible today with the existing Log Stream component in use. I'm going to un-assign this from our board while APM figures out what exactly it would like to do here, and if there are any features needed with the log stream, we will open a ticket to address them. Please reach out for anything you need!

@formgeist formgeist added the apm:opentelemetry APM UI - OTEL Work label Feb 8, 2022
@formgeist formgeist removed their assignment Mar 14, 2022
@rodrigc
Copy link
Contributor

rodrigc commented Apr 5, 2023

@jasonrhodes I filed https://support.elastic.co/cases/5008X00002Ly2fJQAR with Elastic, and they opened
Enhancement Request ER-18465 on this topic.

If you have access to track that ER inside Elastic, please let me know.

@felixbarny
Copy link
Member

Enhancements should probably be made in the Logs Explorer embeddable rather than the Logs UI embeddable. I think that is already better at displaying structured events.

cc @ruflin

@smith smith added OpenTelemetry and removed Unified Observability Work to make the observability apps more consistent and eventually more unified as a user experience Team:Unified observability labels Jul 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
apm:logs apm:opentelemetry APM UI - OTEL Work enhancement New value added to drive a business result OpenTelemetry Team:APM All issues that need APM UI Team support
Projects
None yet
Development

No branches or pull requests

8 participants