mirror of https://github.com/milvus-io/milvus.git
Use Get method of request in GetMetrics to avoid panicking (#18356)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/18365/head
parent
a97962b6da
commit
f37e07b0f8
|
@ -918,7 +918,7 @@ func (qc *QueryCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
|||
log.Debug("getMetricsRequest received",
|
||||
zap.String("role", typeutil.QueryCoordRole),
|
||||
zap.String("req", req.Request),
|
||||
zap.Int64("msgID", req.Base.MsgID))
|
||||
zap.Int64("msgID", req.GetBase().GetMsgID()))
|
||||
|
||||
getMetricsResponse := &milvuspb.GetMetricsResponse{
|
||||
Status: &commonpb.Status{
|
||||
|
@ -930,7 +930,7 @@ func (qc *QueryCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
|||
if qc.stateCode.Load() != internalpb.StateCode_Healthy {
|
||||
err := errors.New("QueryCoord is not healthy")
|
||||
getMetricsResponse.Status.Reason = err.Error()
|
||||
log.Warn("getMetrics failed", zap.String("role", typeutil.QueryCoordRole), zap.Int64("msgID", req.Base.MsgID), zap.Error(err))
|
||||
log.Warn("getMetrics failed", zap.String("role", typeutil.QueryCoordRole), zap.Int64("msgID", req.GetBase().GetMsgID()), zap.Error(err))
|
||||
return getMetricsResponse, nil
|
||||
}
|
||||
|
||||
|
@ -946,7 +946,7 @@ func (qc *QueryCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
|||
|
||||
log.Debug("getMetrics",
|
||||
zap.String("role", typeutil.QueryCoordRole),
|
||||
zap.Int64("msgID", req.Base.MsgID),
|
||||
zap.Int64("msgID", req.GetBase().GetMsgID()),
|
||||
zap.String("metric_type", metricType))
|
||||
|
||||
if metricType == metricsinfo.SystemInfoMetrics {
|
||||
|
@ -960,13 +960,13 @@ func (qc *QueryCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
|||
|
||||
log.Debug("failed to get system info metrics from cache, recompute instead",
|
||||
zap.String("role", typeutil.QueryCoordRole),
|
||||
zap.Int64("msgID", req.Base.MsgID))
|
||||
zap.Int64("msgID", req.GetBase().GetMsgID()))
|
||||
|
||||
metrics, err := getSystemInfoMetrics(ctx, req, qc)
|
||||
if err != nil {
|
||||
log.Error("getSystemInfoMetrics failed",
|
||||
zap.String("role", typeutil.QueryCoordRole),
|
||||
zap.Int64("msgID", req.Base.MsgID),
|
||||
zap.Int64("msgID", req.GetBase().GetMsgID()),
|
||||
zap.Error(err))
|
||||
getMetricsResponse.Status.Reason = err.Error()
|
||||
return getMetricsResponse, nil
|
||||
|
@ -988,7 +988,7 @@ func (qc *QueryCoord) GetMetrics(ctx context.Context, req *milvuspb.GetMetricsRe
|
|||
log.Warn("getMetrics failed",
|
||||
zap.String("role", typeutil.QueryCoordRole),
|
||||
zap.String("req", req.Request),
|
||||
zap.Int64("msgID", req.Base.MsgID),
|
||||
zap.Int64("msgID", req.GetBase().GetMsgID()),
|
||||
zap.Error(err))
|
||||
|
||||
return getMetricsResponse, nil
|
||||
|
|
|
@ -2285,7 +2285,7 @@ func (c *Core) GetMetrics(ctx context.Context, in *milvuspb.GetMetricsRequest) (
|
|||
|
||||
metricType, err := metricsinfo.ParseMetricType(in.Request)
|
||||
if err != nil {
|
||||
log.Error("ParseMetricType failed", zap.String("role", typeutil.RootCoordRole),
|
||||
log.Warn("ParseMetricType failed", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.Int64("node_id", c.session.ServerID), zap.String("req", in.Request), zap.Error(err))
|
||||
return &milvuspb.GetMetricsResponse{
|
||||
Status: failStatus(commonpb.ErrorCode_UnexpectedError, "ParseMetricType failed: "+err.Error()),
|
||||
|
@ -2294,7 +2294,7 @@ func (c *Core) GetMetrics(ctx context.Context, in *milvuspb.GetMetricsRequest) (
|
|||
}
|
||||
|
||||
log.Debug("GetMetrics success", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.Base.MsgID))
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.GetBase().GetMsgID()))
|
||||
|
||||
if metricType == metricsinfo.SystemInfoMetrics {
|
||||
ret, err := c.metricsCacheManager.GetSystemInfoMetrics()
|
||||
|
@ -2303,21 +2303,24 @@ func (c *Core) GetMetrics(ctx context.Context, in *milvuspb.GetMetricsRequest) (
|
|||
}
|
||||
|
||||
log.Warn("GetSystemInfoMetrics from cache failed", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.Int64("msgID", in.Base.MsgID), zap.Error(err))
|
||||
zap.Int64("msgID", in.GetBase().GetMsgID()), zap.Error(err))
|
||||
|
||||
systemInfoMetrics, err := c.getSystemInfoMetrics(ctx, in)
|
||||
if err != nil {
|
||||
log.Error("GetSystemInfoMetrics failed", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.Base.MsgID), zap.Error(err))
|
||||
return nil, err
|
||||
log.Warn("GetSystemInfoMetrics failed", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.GetBase().GetMsgID()), zap.Error(err))
|
||||
return &milvuspb.GetMetricsResponse{
|
||||
Status: failStatus(commonpb.ErrorCode_UnexpectedError, fmt.Sprintf("getSystemInfoMetrics failed: %s", err.Error())),
|
||||
Response: "",
|
||||
}, nil
|
||||
}
|
||||
|
||||
c.metricsCacheManager.UpdateSystemInfoMetrics(systemInfoMetrics)
|
||||
return systemInfoMetrics, err
|
||||
}
|
||||
|
||||
log.Error("GetMetrics failed, metric type not implemented", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.Base.MsgID))
|
||||
log.Warn("GetMetrics failed, metric type not implemented", zap.String("role", typeutil.RootCoordRole),
|
||||
zap.String("metric_type", metricType), zap.Int64("msgID", in.GetBase().GetMsgID()))
|
||||
|
||||
return &milvuspb.GetMetricsResponse{
|
||||
Status: failStatus(commonpb.ErrorCode_UnexpectedError, metricsinfo.MsgUnimplementedMetric),
|
||||
|
|
Loading…
Reference in New Issue