in example/metric_agg/metric_agg_example.go [41:95]
func sqlConfig(accessKeyID string, accessKeySecret string, testId string) *sls.MetricAggRules {
aggRuleItem := &sls.MetricAggRuleItem{
Name: testId,
QueryType: sls.MetricAggRulesSQL,
Query: "* | select max(__time__) as time, COUNT_if(Status < 500) as success, count_if(Status >= 500) as fail, count(1) as total, InvokerUid as aliuid, Project as project, LogStore as logstore from log group by InvokerUid, Project, LogStore limit 100000",
TimeName: "time",
MetricNames: []string{
"success",
"fail",
"total",
},
LabelNames: map[string]string{
"aliuid": "aliuid",
"logstore": "logstore",
"project": "project",
},
BeginUnixTime: 1610506297,
EndUnixTime: -1,
Interval: 30,
DelaySeconds: 30,
}
aggRuleItem1 := &sls.MetricAggRuleItem{
Name: "testId2",
QueryType: sls.MetricAggRulesSQL,
Query: "* | select max(__time__) as time, COUNT_if(Status < 300) as ok, count_if(Status >= 300) as not_ok, Method as method,UserAgent as agent from log group by method, agent limit 100000",
TimeName: "time",
MetricNames: []string{
"ok",
"not_ok",
},
LabelNames: map[string]string{
"method": "method",
"agent": "agent",
},
BeginUnixTime: 1610506297,
EndUnixTime: -1,
Interval: 30,
DelaySeconds: 30,
}
aggRules := &sls.MetricAggRules{
ID: testId,
Name: testId,
Desc: "测试CreateMetricAggRules",
SrcStore: "internal-operation_log",
SrcAccessKeyID: accessKeyID,
SrcAccessKeySecret: accessKeySecret,
DestEndpoint: "cn-hangzhou-intranet.log.aliyuncs.com",
DestProject: "test-hangzhou-b",
DestStore: "test",
DestAccessKeyID: accessKeyID,
DestAccessKeySecret: accessKeySecret,
AggRules: []sls.MetricAggRuleItem{*aggRuleItem, *aggRuleItem1},
}
return aggRules
}