Rough proposal for new feature

Hi all,

I’m working adding a feature to Grafana graphs that I’d like to gauge interest in from the community and maintainers. The goal of the feature is to be able to add events to a graph as clickable targets. I have a rough sketch of how this would look (video:

The specific use case we have in mind is being able to connect this to our tracing system so that individual traces can be overlayed with timeseries data and accessed quickly. This could also be useful for connecting it to logging systems, or anything else with discrete events.

The current implementation is specific to this specific data source, and is not appropriate for upstream. My question is whether a patch to grafana that makes this a first-class primitive in the Graph panel would be valuable to the community and considered by the maintainers.


What’s the difference between this and the new annotations feature (You can add a link to an annotation text)?

There are a couple main differences:

  • what I’m proposing can be both plotted on an existing timeseries line or by itself on either axis, rather than being only on then x-axis
  • the data source can be separate from the data source of the time series

Still sounds really similar.

This is also possible with annotations today.

I don’t understand what you mean by “rather than being only on the x-axis”? A point always has an x and y value.

You’re right they are similar in concept so maybe my question can be interpreted as whether this would be welcome as an option to annotations’ UX and implementation flexibility. Another detail that in what I’ve implemented is that you can choose to annotate an existing timeseries by adding clickable dots along the values or plot the events as dots on their own with Y values.

BTW to clarify the x-axis thing, my understanding of annotations is that annotations only have a time range (X-axis) and not their own Y value. That’s what appears to be the case here:

The use case for annotations seems to be to add contextual information to explain an anomaly or change in a graph (e.g. “deployed service X” or “incident XYZ occurred”). The use case for what I’m building would be to be able to plot discrete system events (error logs, traces, etc) on the graph rather than to annotate for the purpose of explanation.