in ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/service/model/prometheus/MetricDetailQuery.java [113:190]
public String convertDorisSql(){
/*CREATE TABLE `hera_error_slow_trace` (
`traceId` varchar(256) NULL,
`functionName` varchar(256) NULL,
`errorCode` varchar(256) NULL,
`serviceName` varchar(256) NULL,
`type` varchar(256) NULL,
`url` varchar(256) NULL,
`duration` varchar(256) NULL,
`serverEnv` varchar(256) NULL,
`functionId` varchar(256) NULL,
`domain` varchar(256) NULL,
`host` varchar(256) NULL,
`dataSource` varchar(256) NULL,
`timestamp` bigint(20) NULL,
`errorType` varchar(256) NULL
)*/
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.append("select * from hera_error_slow_trace where 1=1 ");
sqlBuilder.append(" and serviceName='").append(projectId).append("_").append(projectName.replaceAll("-","_")).append("' ");
sqlBuilder.append(" and host='").append(serverIp).append("' ");
sqlBuilder.append(" and type='").append(type).append("' ");
sqlBuilder.append(" and errorType='").append(errorType).append("' ");
if(EsIndexDataType.http.name().equals(type)
||EsIndexDataType.http_client.name().equals(type)
||EsIndexDataType.mq_consumer.name().equals(type)
||EsIndexDataType.mq_producer.name().equals(type)
||EsIndexDataType.redis.name().equals(type) ){
sqlBuilder.append(" and url='").append(methodName).append("' ");
}
if(EsIndexDataType.dubbo_consumer.name().equals(type)
|| EsIndexDataType.dubbo_provider.name().equals(type)
||EsIndexDataType.grpc_client.name().equals(type)
||EsIndexDataType.grpc_server.name().equals(type)
||EsIndexDataType.thrift_client.name().equals(type)
||EsIndexDataType.thrift_server.name().equals(type)
||EsIndexDataType.apus_client.name().equals(type)
||EsIndexDataType.apus_server.name().equals(type)
){
sqlBuilder.append(" and url='").append(serviceName + "/" + methodName).append("' ");
}
if(EsIndexDataType.mysql.name().equals(type)
|| EsIndexDataType.oracle.name().equals(type)
|| EsIndexDataType.hbase.name().equals(type)
|| EsIndexDataType.elasticsearch.name().equals(type)){
sqlBuilder.append(" and dataSource='").append(dataSource).append("' ");
sqlBuilder.append(" and url like '%").append(sql).append("%' ");
}
if(startTime != null){
sqlBuilder.append(" and timestamp>=").append(startTime).append(" ");
}
if(endTime != null){
sqlBuilder.append(" and timestamp<=").append(endTime).append(" ");
}
sqlBuilder.append(" order by timestamp desc ");
if(page == null || page.intValue() < 1){
page = 1;
}
if(pageSize == null || pageSize.intValue() < 1){
pageSize = 20;
}
sqlBuilder.append(" limit ").append((page-1)*pageSize).append(",").append(pageSize);
return sqlBuilder.toString();
}