func()

in internal/cloudmock/metrics.go [121:150]


func (f *fakeMetricServiceServer) CreateTimeSeries(
	ctx context.Context,
	req *monitoringpb.CreateTimeSeriesRequest,
) (*emptypb.Empty, error) {
	code := codes.OK
	if strings.Contains(req.Name, "notfound") {
		code = codes.NotFound
	} else if strings.Contains(req.Name, "unavailable") && f.metricsTestServer.RetryCount == 0 {
		f.metricsTestServer.RetryCount++
		code = codes.Unavailable
	} else if strings.Contains(req.Name, "deadline_exceeded") && f.metricsTestServer.RetryCount == 0 {
		f.metricsTestServer.RetryCount++
		code = codes.DeadlineExceeded
	}

	successPointCount := int32(len(req.TimeSeries))
	if code == codes.NotFound || code == codes.Unavailable || code == codes.DeadlineExceeded {
		successPointCount = 0
	} else {
		f.metricsTestServer.appendCreateTimeSeriesReq(ctx, req)
	}

	statusResp, _ := status.New(code, "").WithDetails(
		&monitoringpb.CreateTimeSeriesSummary{
			TotalPointCount:   int32(len(req.TimeSeries)),
			SuccessPointCount: successPointCount,
		})

	return &emptypb.Empty{}, statusResp.Err()
}