Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

*: specify time range via TIME_RANGE hint for metrics/inspection tables #14874

Merged
merged 11 commits into from
Feb 21, 2020
Prev Previous commit
Next Next commit
fix naming
Signed-off-by: Lonng <heng@lonng.org>
  • Loading branch information
lonng committed Feb 21, 2020
commit 5115453d1e499ad4f24a9756cf53177b2b54e810
4 changes: 2 additions & 2 deletions executor/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -1334,7 +1334,7 @@ func (b *executorBuilder) buildMemTable(v *plannercore.PhysicalMemTable) Executo
case strings.ToLower(infoschema.TableMetricSummary):
return &MemTableReaderExec{
baseExecutor: newBaseExecutor(b.ctx, v.Schema(), v.ExplainID()),
retriever: &MetricSummaryRetriever{
retriever: &MetricsSummaryRetriever{
table: v.Table,
extractor: v.Extractor.(*plannercore.MetricSummaryTableExtractor),
timeRange: v.QueryTimeRange,
Expand All @@ -1343,7 +1343,7 @@ func (b *executorBuilder) buildMemTable(v *plannercore.PhysicalMemTable) Executo
case strings.ToLower(infoschema.TableMetricSummaryByLabel):
return &MemTableReaderExec{
baseExecutor: newBaseExecutor(b.ctx, v.Schema(), v.ExplainID()),
retriever: &MetricSummaryByLabelRetriever{
retriever: &MetricsSummaryByLabelRetriever{
table: v.Table,
extractor: v.Extractor.(*plannercore.MetricSummaryTableExtractor),
timeRange: v.QueryTimeRange,
Expand Down
12 changes: 6 additions & 6 deletions executor/metrics_reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,16 +206,16 @@ func (c *queryClient) URL(ep string, args map[string]string) *url.URL {
return c.Client.URL(ep, args)
}

// MetricSummaryRetriever uses to read metric data.
type MetricSummaryRetriever struct {
// MetricsSummaryRetriever uses to read metric data.
type MetricsSummaryRetriever struct {
dummyCloser
table *model.TableInfo
extractor *plannercore.MetricSummaryTableExtractor
timeRange plannercore.QueryTimeRange
retrieved bool
}

func (e *MetricSummaryRetriever) retrieve(_ context.Context, sctx sessionctx.Context) ([][]types.Datum, error) {
func (e *MetricsSummaryRetriever) retrieve(_ context.Context, sctx sessionctx.Context) ([][]types.Datum, error) {
if e.retrieved || e.extractor.SkipRequest {
return nil, nil
}
Expand Down Expand Up @@ -278,16 +278,16 @@ func (e *MetricSummaryRetriever) retrieve(_ context.Context, sctx sessionctx.Con
return totalRows, nil
}

// MetricSummaryByLabelRetriever uses to read metric detail data.
type MetricSummaryByLabelRetriever struct {
// MetricsSummaryByLabelRetriever uses to read metric detail data.
type MetricsSummaryByLabelRetriever struct {
dummyCloser
table *model.TableInfo
extractor *plannercore.MetricSummaryTableExtractor
timeRange plannercore.QueryTimeRange
retrieved bool
}

func (e *MetricSummaryByLabelRetriever) retrieve(ctx context.Context, sctx sessionctx.Context) ([][]types.Datum, error) {
func (e *MetricsSummaryByLabelRetriever) retrieve(ctx context.Context, sctx sessionctx.Context) ([][]types.Datum, error) {
if e.retrieved || e.extractor.SkipRequest {
return nil, nil
}
Expand Down
44 changes: 22 additions & 22 deletions planner/core/memtable_predicate_extractor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ func (s *extractorSuite) TestMetricsSummaryTableExtractor(c *C) {
quantiles: []float64{0.999, 0.95, 0.99},
},
{
sql: "select * from information_schema.metrics_summary where (quantile='0.95' or quantile='0.99') and (metric_name='metric_name3' or metric_name='metric_name1')",
sql: "select * from information_schema.metrics_summary where (quantile='0.95' or quantile='0.99') and (metrics_name='metric_name3' or metrics_name='metric_name1')",
quantiles: []float64{0.95, 0.99},
names: set.NewStringSet("metric_name3", "metric_name1"),
},
Expand All @@ -693,22 +693,22 @@ func (s *extractorSuite) TestMetricsSummaryTableExtractor(c *C) {
quantiles: []float64{0.999, 0.99},
},
{
sql: "select * from information_schema.metrics_summary where quantile in ('0.999', '0.99') and metric_name='metric_name1'",
sql: "select * from information_schema.metrics_summary where quantile in ('0.999', '0.99') and metrics_name='metric_name1'",
quantiles: []float64{0.999, 0.99},
names: set.NewStringSet("metric_name1"),
},
{
sql: "select * from information_schema.metrics_summary where quantile in ('0.999', '0.99') and metric_name in ('metric_name1', 'metric_name2')",
sql: "select * from information_schema.metrics_summary where quantile in ('0.999', '0.99') and metrics_name in ('metric_name1', 'metric_name2')",
quantiles: []float64{0.999, 0.99},
names: set.NewStringSet("metric_name1", "metric_name2"),
},
{
sql: "select * from information_schema.metrics_summary where quantile='0.999' and metric_name in ('metric_name1', 'metric_name2')",
sql: "select * from information_schema.metrics_summary where quantile='0.999' and metrics_name in ('metric_name1', 'metric_name2')",
quantiles: []float64{0.999},
names: set.NewStringSet("metric_name1", "metric_name2"),
},
{
sql: "select * from information_schema.metrics_summary where quantile='0.999' and metric_name='metric_NAME3'",
sql: "select * from information_schema.metrics_summary where quantile='0.999' and metrics_name='metric_NAME3'",
quantiles: []float64{0.999},
names: set.NewStringSet("metric_name3"),
},
Expand All @@ -722,19 +722,19 @@ func (s *extractorSuite) TestMetricsSummaryTableExtractor(c *C) {
},
{
sql: `select * from information_schema.metrics_summary
where metric_name in ('metric_name1', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name4')
where metrics_name in ('metric_name1', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name4')
and quantile in ('0.999', '0.95')
and quantile in ('0.99', '0.95')
and quantile in (0.80, 0.90)`,
skipRequest: true,
},
{
sql: `select * from information_schema.metrics_summary
where metric_name in ('metric_name1', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name1')
and metric_name in ('metric_name1', 'metric_name3')`,
where metrics_name in ('metric_name1', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name1')
and metrics_name in ('metric_name1', 'metric_name3')`,
skipRequest: true,
},
}
Expand Down Expand Up @@ -922,7 +922,7 @@ func (s *extractorSuite) TestInspectionSummaryTableExtractor(c *C) {
rules: set.NewStringSet("ddl", "config", "slow_query"),
},
{
sql: "select * from information_schema.inspection_summary where (rule='config' or rule='slow_query') and (metric_name='metric_name3' or metric_name='metric_name1')",
sql: "select * from information_schema.inspection_summary where (rule='config' or rule='slow_query') and (metrics_name='metric_name3' or metrics_name='metric_name1')",
rules: set.NewStringSet("config", "slow_query"),
names: set.NewStringSet("metric_name3", "metric_name1"),
},
Expand All @@ -931,22 +931,22 @@ func (s *extractorSuite) TestInspectionSummaryTableExtractor(c *C) {
rules: set.NewStringSet("ddl", "slow_query"),
},
{
sql: "select * from information_schema.inspection_summary where rule in ('ddl', 'slow_query') and metric_name='metric_name1'",
sql: "select * from information_schema.inspection_summary where rule in ('ddl', 'slow_query') and metrics_name='metric_name1'",
rules: set.NewStringSet("ddl", "slow_query"),
names: set.NewStringSet("metric_name1"),
},
{
sql: "select * from information_schema.inspection_summary where rule in ('ddl', 'slow_query') and metric_name in ('metric_name1', 'metric_name2')",
sql: "select * from information_schema.inspection_summary where rule in ('ddl', 'slow_query') and metrics_name in ('metric_name1', 'metric_name2')",
rules: set.NewStringSet("ddl", "slow_query"),
names: set.NewStringSet("metric_name1", "metric_name2"),
},
{
sql: "select * from information_schema.inspection_summary where rule='ddl' and metric_name in ('metric_name1', 'metric_name2')",
sql: "select * from information_schema.inspection_summary where rule='ddl' and metrics_name in ('metric_name1', 'metric_name2')",
rules: set.NewStringSet("ddl"),
names: set.NewStringSet("metric_name1", "metric_name2"),
},
{
sql: "select * from information_schema.inspection_summary where rule='ddl' and metric_name='metric_NAME3'",
sql: "select * from information_schema.inspection_summary where rule='ddl' and metrics_name='metric_NAME3'",
rules: set.NewStringSet("ddl"),
names: set.NewStringSet("metric_name3"),
},
Expand All @@ -960,8 +960,8 @@ func (s *extractorSuite) TestInspectionSummaryTableExtractor(c *C) {
},
{
sql: `select * from information_schema.inspection_summary
where metric_name in ('metric_name1', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name4')
where metrics_name in ('metric_name1', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name4')
and rule in ('ddl', 'config')
and rule in ('slow_query', 'config')
and quantile in (0.80, 0.90)`,
Expand All @@ -971,10 +971,10 @@ func (s *extractorSuite) TestInspectionSummaryTableExtractor(c *C) {
},
{
sql: `select * from information_schema.inspection_summary
where metric_name in ('metric_name1', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name4')
and metric_name in ('metric_name5', 'metric_name1')
and metric_name in ('metric_name1', 'metric_name3')`,
where metrics_name in ('metric_name1', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name4')
and metrics_name in ('metric_name5', 'metric_name1')
and metrics_name in ('metric_name1', 'metric_name3')`,
skipInspection: true,
},
}
Expand Down