Alexey,

I am a bit confused. I just looked at QueryMetrics API and it looks like a
subset of the QueryDetailsMetrics you are suggesting. Why not just expand
on QueryMetrics API we already have?

D.

On Mon, Oct 24, 2016 at 9:41 PM, Alexey Kuznetsov <[email protected]>
wrote:

> Dmitriy, thanks for your feedback.
>
> >> 1. Are these metrics going to be available as MBean?
> >> 4. Do we need an MBean for queryMetricsHIstor()?
> Yes. I will create sub-ticket for that or implement as part of IGNITE-3443
> if it is easy to do.
>
> >> 2. QueryDetailsMetrics -> QueryMetrics
> This name is already busy. We already have interface with name
> QueryMetrics.
>
> >>3. getCompletions() -> getSuccesses() - to be consistent with
>  getFailures()
> Will rename.
>
>
>
> On Tue, Oct 25, 2016 at 12:00 AM, Dmitriy Setrakyan <[email protected]
> >
> wrote:
>
> > Several comments:
> >
> >    1. Are these metrics going to be available as MBean?
> >    2. QueryDetailsMetrics -> QueryMetrics
> >    3. getCompletions() -> getSuccesses() - to be consistent with
> >    getFailures()
> >    4. Do we need an MBean for queryMetricsHIstor()?
> >
> > D.
> >
> > On Mon, Oct 24, 2016 at 3:58 AM, Alexey Kuznetsov <[email protected]
> >
> > wrote:
> >
> > > Igniters,
> > >
> > > I'm working on IGNITE-3443: Implement collecting what SQL statements
> > > executed on cluster and their metrics [1]. (I also updated issue
> > > description with text below.)
> > >
> > > And I would like that my changes of public API looks good.
> > >
> > > Please, give your feedback.
> > >
> > > So, I introduced interface org.apache.ignite.cache.query.
> QueryDetailsMetrics
> > with
> > > metrics:
> > >
> > > /**
> > >  * Query metrics aggregated by query type and its textual
> representation.
> > >  */
> > > public interface QueryDetailsMetrics {
> > >     /**
> > >      * @return Query type.
> > >      */
> > >     public String getQueryType();
> > >
> > >     /**
> > >      * @return Textual representation of query.
> > >      */
> > >     public String getQuery();
> > >
> > >     /**
> > >      * @return Cache where query was executed.
> > >      */
> > >     public String getCache();
> > >
> > >     /**
> > >      * Gets total number execution of query.
> > >      *
> > >      * @return Number of executions.
> > >      */
> > >     public int getExecutions();
> > >
> > >     /**
> > >      * Gets number of completed execution of query.
> > >      *
> > >      * @return Number of completed executions.
> > >      */
> > >     public int getCompletions();
> > >
> > >     /**
> > >      * Gets number of times a query execution failed.
> > >      *
> > >      * @return Number of times a query execution failed.
> > >      */
> > >     public int getFailures();
> > >
> > >     /**
> > >      * Gets minimum execution time of query.
> > >      *
> > >      * @return Minimum execution time of query.
> > >      */
> > >     public long getMinimumTime();
> > >
> > >     /**
> > >      * Gets maximum execution time of query.
> > >      *
> > >      * @return Maximum execution time of query.
> > >      */
> > >     public long getMaximumTime();
> > >
> > >     /**
> > >      * Gets average execution time of query.
> > >      *
> > >      * @return Average execution time of query.
> > >      */
> > >     public double getAverageTime();
> > >
> > >     /**
> > >      * Gets total time of all query executions.
> > >      *
> > >      * @return Total time of all query executions.
> > >      */
> > >     public long getTotalTime();
> > >
> > >     /**
> > >      * Gets latest query start time.
> > >      *
> > >      * @return Latest time query was stared.
> > >      */
> > >     public long getLastStartTime();
> > > }
> > >
> > >
> > > And added method on org.apache.ignite.IgniteCache:
> > >
> > > /**
> > >  * Gets query metrics details.
> > >  *
> > >  * @return Metrics.
> > >  */
> > > public Collection<? extends QueryDetailsMetrics> queryMetricsHistory();
> > >
> > >
> > > And also I added new property on org.apache.ignite.configuration.
> > CacheConfiguration:
> > >
> > > /**
> > >  * Gets size of queries metrics history that will be stored in memory
> > for monitoring purposes.
> > >  * If {@code 0} then history will not be collected.
> > >  * Note, Larger number may lead to higher memory consumption.
> > >  *
> > >  * @return Maximum number of query metrics that will be stored in
> memory.
> > >  */
> > > public int getQueryMetricsHistorySize() {
> > >     return qryMetricsHistSz;
> > > }
> > >
> > > /**
> > >  * Sets size of queries metrics history that will be stored in memory
> > for monitoring purposes.
> > >  *
> > >  * @param qryMetricsHistSz Maximum number of latest queries metrics
> that
> > will be stored in memory.
> > >  * @return {@code this} for chaining.
> > >  */
> > > public CacheConfiguration<K, V> setQueryMetricsHistorySize(int
> > qryMetricsHistSz) {
> > >     this.qryMetricsHistSz = qryMetricsHistSz;
> > >
> > >     return this;
> > > }
> > >
> > >
> > >
> > > [1] https://issues.apache.org/jira/browse/IGNITE-3443
> > >
> > > --
> > > Alexey Kuznetsov
> > >
> >
>
>
>
> --
> Alexey Kuznetsov
>

Reply via email to