holoviz/lumen

API consistency

Closed this issue · 2 comments

Right now, I think the following classes form the main API for this project (version A):

  1. QueryAdaptor : source of data from things you are monitoring
  2. MetricView : visual representation of data obtained from 1.
  3. Filter : filter used by 1. either before requesting data or to filter after data is returned
  4. Transform: transform for data obtained from 1 before display by 2.

I think we should consider all of these classes together to make sure that they form a coherent and consistent set of concepts for users to work with.

As a start, I think QueryAdaptor seems overly specific, plus the rest of the API is not about queries, it's about metrics. A QueryAdaptor really seems like a source of metric values, i.e. a MetricSource, leading to version B:

  1. MetricSource
  2. MetricView
  3. Filter
  4. Transform

But all of these are related to metrics in some way, so we could focus on metrics throughout (and rename the project MetricSystem :-), version C):

  1. MetricSource
  2. MetricView
  3. MetricFilter
  4. MetricTransform

But that seems pretty verbose, and I'm not sure "Metric" really adds much to any of them, leading to version D:

  1. Source
  2. View
  3. Filter
  4. Transform

My own vote is probably for D, typically qualified as lumen.Source, lumen.View, etc. Any other votes or suggestions?

Fixed by #10 .

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.