in ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/service/api/impl/ComputeTimerServiceExtensionImpl.java [58:148]
public void computByMetricType(AppMonitorRequest param, String appName, MetricKind metricKind, AppAlarmData.AppAlarmDataBuilder dataBuilder, Long startTime, Long endTime, String timeDuration, Long step) {
try {
//当前页面
MetricKind.MetricType curMetricType = null;
if (param != null) {
curMetricType = MetricKind.getMetricTypeByCode(param.getMetricType());
}
switch (metricKind){
case http:
// http请求异常统计
Result<PageData> httpExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.httpError.getCode(),getLable(MetricKind.MetricType.http_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.httpExceptionNum(countRecordMetric(httpExceptions));
// httpClient请求异常统计
Result<PageData> httpClientExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.httpClientError.getCode(), getLable(MetricKind.MetricType.http_client_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.httpClientExceptionNum(countRecordMetric(httpClientExceptions));
// http请求慢查询统计
Result<PageData> httpSlowQuery = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.httpSlowQuery.getCode(),getLable(MetricKind.MetricType.http_slow, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.httpSlowNum(countRecordMetric(httpSlowQuery));
// httpClient请求慢查询统计
Result<PageData> httpClientSlowQuerys = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.httpClientSlowQuery.getCode(), getLable(MetricKind.MetricType.http_client_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.httpClientSlowNum(countRecordMetric(httpClientSlowQuerys));
break;
case dubbo:
// dubbo请求异常统计
Result<PageData> dubboExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.dubboConsumerError.getCode(), getLable(MetricKind.MetricType.dubbo_consumer_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.dubboExceptionNum(countRecordMetric(dubboExceptions));
// dubbo请求异常统计
Result<PageData> dubboPExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.dubboProvider.getCode(), getLable(MetricKind.MetricType.dubbo_provider_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.dubboPExceptionNum(countRecordMetric(dubboPExceptions));
// dubbo consumer慢请求统计
Result<PageData> dubboConsumerSlowQuerys = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.dubboConsumerSlowQuery.getCode(), getLable(MetricKind.MetricType.dubbo_consumer_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.dubboCSlowQueryNum(countRecordMetric(dubboConsumerSlowQuerys));
log.info("projectName:{},dubboConsumerSlowQuerys:{}",appName,dubboConsumerSlowQuerys);
// dubbo provider慢请求统计
Result<PageData> dubboProviderSlowQuerys = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.dubboProviderSlowQuery.getCode(), getLable(MetricKind.MetricType.dubbo_provider_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.dubboProviderSlowQueryNum(countRecordMetric(dubboProviderSlowQuerys));
log.info("projectName:{},dubboProviderSlowQuerys:{}",appName,dubboProviderSlowQuerys);
break;
case grpc :
// grpc请求异常统计
Result<PageData> grpcServerExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.grpcServerError.getCode(), getLable(MetricKind.MetricType.grpc_server_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.grpcServerErrorNum(countRecordMetric(grpcServerExceptions));
Result<PageData> grpcClientExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.grpcClientError.getCode(), getLable(MetricKind.MetricType.grpc_client_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.grpcClientErrorNum(countRecordMetric(grpcClientExceptions));
Result<PageData> grpcClientSlowQuery = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.grpcClientSlowQuery.getCode(), getLable(MetricKind.MetricType.grpc_client_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.grpcClientSlowQueryNum(countRecordMetric(grpcClientSlowQuery));
Result<PageData> grpcServerSlowQuery = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.grpcServerSlowQuery.getCode(), getLable(MetricKind.MetricType.grpc_server_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.grpcServerSlowQueryNum(countRecordMetric(grpcServerSlowQuery));
break;
case db :
// mysql请求异常统计
Result<PageData> sqlExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.dbError.getCode(), getLable(MetricKind.MetricType.db_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.sqlExceptionNum(countRecordMetric(sqlExceptions));
// mysql慢请求统计
Result<PageData> sqlSlowQuerys = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.dbSlowQuery.getCode(), getLable(MetricKind.MetricType.db_slow_query, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.sqlSlowQueryNum(countRecordMetric(sqlSlowQuerys));
break;
case redis :
// redis请求异常统计
Result<PageData> redisExceptions = prometheusService.queryRangeSumOverTime(ReqErrorMetrics.redisError.getCode(), getLable(MetricKind.MetricType.redis_exception, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.redisExceptionNum(countRecordMetric(redisExceptions));
Result<PageData> redisSlowQuerys = prometheusService.queryRangeSumOverTime(ReqSlowMetrics.redisSlow.getCode(), getLable(MetricKind.MetricType.redis_slow, curMetricType, param), appName, MetricSuffix._total.name(), startTime, endTime, step, timeDuration,null);
dataBuilder.redisSlowNum(countRecordMetric(redisSlowQuerys));
break;
default:
log.error("invalid metric kind assign! metricType:{}",metricKind);
break;
}
} catch (Exception e) {
log.error("ComputeTimerServiceV2.getAppAlarmData error! appName={}", appName, e);
}
}