API consistency
Closed this issue · 2 comments
Right now, I think the following classes form the main API for this project (version A):
- QueryAdaptor : source of data from things you are monitoring
- MetricView : visual representation of data obtained from 1.
- Filter : filter used by 1. either before requesting data or to filter after data is returned
- 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:
- MetricSource
- MetricView
- Filter
- 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):
- MetricSource
- MetricView
- MetricFilter
- MetricTransform
But that seems pretty verbose, and I'm not sure "Metric" really adds much to any of them, leading to version D:
- Source
- View
- Filter
- Transform
My own vote is probably for D, typically qualified as lumen.Source, lumen.View, etc. Any other votes or suggestions?
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.