OpenSearch-Dashboards
OpenSearch-Dashboards copied to clipboard
[RFC] Support for Exemplars in OpenSearch Dashboards
Summary
This RFC proposes the addition of exemplar support in OpenSearch Dashboards visualizations. Exemplars are specific data points that provide context for aggregated metrics, enhancing observability by linking metrics to traces or logs. Integrating exemplars into the UI will allow users to gain deeper insights into their data by correlating metrics with detailed traces.
Motivation
Exemplars are widely used in observability tools to bridge the gap between high-level metrics and detailed traces. By displaying exemplars in the UI, users can quickly identify and investigate anomalies or performance issues. This feature is particularly beneficial for users employing OpenSearch Dashboards for monitoring applications and infrastructure, as it provides a more comprehensive observability experience.
Proposal
Introduce UI components in OpenSearch Dashboards that can display exemplars alongside time-series visualizations. This includes:
- Extending existing visualization types (e.g., line charts) to support exemplar markers.
- Providing tool-tips or popovers that display exemplar details, such as trace IDs or links to related logs.
- Ensuring that the UI components are extensible and can integrate with various data sources that provide exemplar data.
Feedback requested
- What data formats and APIs should be supported for fetching exemplar data?
- How can we ensure performance and scalability when rendering a large number of exemplars?
References
- OpenSearch Dashboards Prometheus RFC: https://github.com/opensearch-project/OpenSearch-Dashboards/issues/9535
- SQL resources API: https://github.com/opensearch-project/sql/pull/3440
- Prometheus Exemplars Documentation: https://prometheus.io/docs/prometheus/latest/querying/examples/#exemplars
- Grafana Exemplars Integration: https://grafana.com/docs/grafana/latest/fundamentals/exemplars/
@ps48 this is a cool feature. Can you tell me how this would look like? If you were to add support for this. What does that mean? What api would we need to add or modify and what would that look like. Maybe share an example?
can you share an example of this? especially the part to identify exemplars