[ https://issues.apache.org/jira/browse/SCB-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16562992#comment-16562992 ]
ASF GitHub Bot commented on SCB-776: ------------------------------------ little-cui closed pull request #401: SCB-776 Log print more detailed URL: https://github.com/apache/incubator-servicecomb-service-center/pull/401 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/pkg/util/net.go b/pkg/util/net.go index 777a96d4..60825069 100644 --- a/pkg/util/net.go +++ b/pkg/util/net.go @@ -33,7 +33,7 @@ type IpPort struct { func GetIPFromContext(ctx context.Context) string { v, ok := FromContext(ctx, "x-remote-ip").(string) if !ok { - return "" + return "UNKNOWN" } return v } diff --git a/server/api.go b/server/api.go index 6d1ea98c..f606fee3 100644 --- a/server/api.go +++ b/server/api.go @@ -97,10 +97,10 @@ func (s *APIServer) registryService(pCtx context.Context) error { return err } if respE.Response.Code == pb.Response_SUCCESS { - util.Logger().Warnf(nil, "service center service already registered, service id %s", respE.ServiceId) + util.Logger().Warnf(nil, "service center service already registered, serviceId %s", respE.ServiceId) respG, err := core.ServiceAPI.GetOne(ctx, core.GetServiceRequest(respE.ServiceId)) if respG.Response.Code != pb.Response_SUCCESS { - util.Logger().Errorf(err, "query service center service info failed, service id %s", respE.ServiceId) + util.Logger().Errorf(err, "query service center service info failed, serviceId %s", respE.ServiceId) return fmt.Errorf("service center service file lost.") } core.Service = respG.Service @@ -113,7 +113,7 @@ func (s *APIServer) registryService(pCtx context.Context) error { return err } core.Service.ServiceId = respS.ServiceId - util.Logger().Infof("register service center service successfully, service id %s", respS.ServiceId) + util.Logger().Infof("register service center service %s", respS.ServiceId) return nil } @@ -136,7 +136,7 @@ func (s *APIServer) registryInstance(pCtx context.Context) error { return err } core.Instance.InstanceId = respI.InstanceId - util.Logger().Infof("register service center instance successfully, instance %s/%s, endpoints %s", + util.Logger().Infof("register service center instance %s/%s, endpoints %s", core.Service.ServiceId, respI.InstanceId, endpoints) return nil } @@ -152,7 +152,7 @@ func (s *APIServer) unregisterInstance(pCtx context.Context) error { util.Logger().Error(err.Error(), nil) return err } - util.Logger().Warnf(nil, "unregister service center instance successfully, %s/%s", + util.Logger().Warnf(nil, "unregister service center instance %s/%s", core.Service.ServiceId, core.Instance.InstanceId) return nil } @@ -164,11 +164,11 @@ func (s *APIServer) doAPIServerHeartBeat(pCtx context.Context) { ctx := core.AddDefaultContextValue(pCtx) respI, err := core.InstanceAPI.Heartbeat(ctx, core.HeartbeatRequest()) if respI.Response.Code == pb.Response_SUCCESS { - util.Logger().Debugf("update service center %s heartbeat %s successfully", + util.Logger().Debugf("update service center instance %s/%s heartbeat", core.Instance.ServiceId, core.Instance.InstanceId) return } - util.Logger().Errorf(err, "update service center %s instance %s heartbeat failed", + util.Logger().Errorf(err, "update service center instance %s/%s heartbeat failed", core.Instance.ServiceId, core.Instance.InstanceId) //服务不存在,创建服务 @@ -215,7 +215,7 @@ func (s *APIServer) startRESTServer() (err error) { if err != nil { return } - util.Logger().Infof("Local listen address: %s, host: %s.", addr, s.HostName) + util.Logger().Infof("Local listen address: %s, host: %s", addr, s.HostName) s.goroutine.Do(func(_ context.Context) { err := s.restSrv.Serve() diff --git a/server/service/instance.go b/server/service/instance.go index 9b1ebaa0..2ecc3dc8 100644 --- a/server/service/instance.go +++ b/server/service/instance.go @@ -89,21 +89,20 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR remoteIP := util.GetIPFromContext(ctx) if err := Validate(in); err != nil { - util.Logger().Errorf(err, "register instance failed, invalid parameters, operator %s.", remoteIP) + util.Logger().Errorf(err, "register instance failed, invalid parameters, operator %s", remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(scerr.ErrInvalidParams, err.Error()), }, nil } instance := in.GetInstance() - instanceFlag := util.StringJoin([]string{instance.ServiceId, instance.HostName}, "/") //允许自定义id //如果没填写 并且endpoints沒重復,則产生新的全局instance id oldInstanceId, checkErr := serviceUtil.InstanceExist(ctx, in.Instance) if checkErr != nil { - util.Logger().Errorf(checkErr, "instance existence check failed, service %s, operator %s.", - instanceFlag, remoteIP) + util.Logger().Errorf(checkErr, "instance existence check failed, endpoints %v, host '%s', serviceId %s, operator %s", + instance.Endpoints, instance.HostName, instance.ServiceId, remoteIP) resp := pb.CreateResponseWithSCErr(checkErr) if checkErr.InternalError() { return &pb.RegisterInstanceResponse{Response: resp}, checkErr @@ -111,21 +110,26 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR return &pb.RegisterInstanceResponse{Response: resp}, nil } if len(oldInstanceId) > 0 { - util.Logger().Infof("register instance successful, reuse service %s instance %s, operator %s.", + util.Logger().Infof("register instance successful, reuse service %s instance %s, operator %s", instance.ServiceId, oldInstanceId, remoteIP) return &pb.RegisterInstanceResponse{ - Response: pb.CreateResponse(pb.Response_SUCCESS, "instance more exist."), + Response: pb.CreateResponse(pb.Response_SUCCESS, "instance more exist"), InstanceId: oldInstanceId, }, nil } if err := s.preProcessRegisterInstance(ctx, instance); err != nil { - util.Logger().Errorf(err, "register instance failed, service %s, operator %s.", instanceFlag, remoteIP) + util.Logger().Errorf(err, "register instance failed, endpoints %v, host '%s', serviceId %s, operator %s", + instance.Endpoints, instance.HostName, instance.ServiceId, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponseWithSCErr(err), }, nil } + ttl := int64(instance.HealthCheck.Interval * (instance.HealthCheck.Times + 1)) + instanceFlag := fmt.Sprintf("ttl %ds, endpoints %v, host '%s', serviceId %s", + ttl, instance.Endpoints, instance.HostName, instance.ServiceId) + //先以domain/project的方式组装 domainProject := util.ParseDomainProject(ctx) @@ -140,7 +144,7 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR defer reporter.Close() } if err != nil { - util.Logger().Errorf(err, "register instance failed, service %s, operator %s: no quota apply.", + util.Logger().Errorf(err, "register instance failed, %s, operator %s", instanceFlag, remoteIP) response := &pb.RegisterInstanceResponse{ Response: pb.CreateResponseWithSCErr(err), @@ -156,22 +160,20 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR data, err := json.Marshal(instance) if err != nil { util.Logger().Errorf(err, - "register instance failed, service %s, instanceId %s, operator %s: json marshal data failed.", + "register instance failed, %s, instanceId %s, operator %s", instanceFlag, instanceId, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(scerr.ErrInternal, err.Error()), }, err } - ttl := int64(instance.HealthCheck.Interval * (instance.HealthCheck.Times + 1)) leaseID, err := backend.Registry().LeaseGrant(ctx, ttl) if err != nil { - util.Logger().Errorf(err, "grant lease failed, instance %s, operator: %s.", instanceFlag, remoteIP) + util.Logger().Errorf(err, "grant lease failed, %s, operator: %s", instanceFlag, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(scerr.ErrUnavailableBackend, err.Error()), }, err } - util.Logger().Infof("lease grant %ds successfully, instance %s, operator: %s.", ttl, instanceFlag, remoteIP) // build the request options key := apt.GenerateInstanceKey(domainProject, instance.ServiceId, instanceId) @@ -191,7 +193,7 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR nil) if err != nil { util.Logger().Errorf(err, - "register instance failed, service %s, instanceId %s, operator %s: commit data into etcd failed.", + "register instance failed, %s, instanceId %s, operator %s", instanceFlag, instanceId, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(scerr.ErrUnavailableBackend, err.Error()), @@ -199,7 +201,7 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR } if !resp.Succeeded { util.Logger().Errorf(nil, - "register instance failed, service %s, instanceId %s, operator %s: service does not exist.", + "register instance failed, %s, instanceId %s, operator %s: service does not exist", instanceFlag, instanceId, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(scerr.ErrServiceNotExists, "Service does not exist."), @@ -209,11 +211,11 @@ func (s *InstanceService) Register(ctx context.Context, in *pb.RegisterInstanceR if reporter != nil { if err := reporter.ReportUsedQuota(ctx); err != nil { util.Logger().Errorf(err, - "register instance failed, service %s, instanceId %s, operator %s: report used quota failed.", + "register instance failed, %s, instanceId %s, operator %s", instanceFlag, instanceId, remoteIP) } } - util.Logger().Infof("register instance successful service %s, instanceId %s, operator %s.", + util.Logger().Infof("register instance %s, instanceId %s, operator %s", instanceFlag, instanceId, remoteIP) return &pb.RegisterInstanceResponse{ Response: pb.CreateResponse(pb.Response_SUCCESS, "Register service instance successfully."), @@ -264,7 +266,7 @@ func (s *InstanceService) Unregister(ctx context.Context, in *pb.UnregisterInsta }, nil } - util.Logger().Infof("unregister instance successful isntance %s, operator %s.", instanceFlag, remoteIP) + util.Logger().Infof("unregister instance %s, operator %s.", instanceFlag, remoteIP) return &pb.UnregisterInstanceResponse{ Response: pb.CreateResponse(pb.Response_SUCCESS, "Unregister service instance successfully."), }, nil @@ -503,22 +505,24 @@ func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) } domainProject := util.ParseDomainProject(ctx) - findFlag := fmt.Sprintf("consumer %s find provider %s/%s/%s", in.ConsumerServiceId, in.AppId, in.ServiceName, in.VersionRule) service, err := serviceUtil.GetService(ctx, domainProject, in.ConsumerServiceId) if err != nil { - util.Logger().Errorf(err, "find instance failed, %s: get consumer failed.", findFlag) + util.Logger().Errorf(err, "get consumer failed, consumer %s find provider %s/%s/%s", + in.ConsumerServiceId, in.AppId, in.ServiceName, in.VersionRule) return &pb.FindInstancesResponse{ Response: pb.CreateResponse(scerr.ErrInternal, err.Error()), }, err } if service == nil { - util.Logger().Errorf(nil, "find instance failed, %s: consumer not exist.", findFlag) + util.Logger().Errorf(nil, "consumer not exist, consumer %s find provider %s/%s/%s", + in.ConsumerServiceId, in.AppId, in.ServiceName, in.VersionRule) return &pb.FindInstancesResponse{ Response: pb.CreateResponse(scerr.ErrServiceNotExists, "Consumer does not exist."), }, nil } + var findFlag string provider := &pb.MicroServiceKey{ Tenant: util.ParseTargetDomainProject(ctx), Environment: service.Environment, @@ -530,12 +534,17 @@ func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) if apt.IsShared(provider) { // it means the shared micro-services must be the same env with SC. provider.Environment = apt.Service.Environment - findFlag += "(provider is shared service in " + provider.Environment + " environment)" + + findFlag = fmt.Sprintf("consumer %s find shared service %s/%s/%s/%s", in.ConsumerServiceId, + service.Environment, in.AppId, in.ServiceName, in.VersionRule) } else { // provider is not a shared micro-service, // only allow shared micro-service instances found in different domains. util.SetTargetDomainProject(ctx, util.ParseDomain(ctx), util.ParseProject(ctx)) provider.Tenant = util.ParseTargetDomainProject(ctx) + + findFlag = fmt.Sprintf("consumer %s find service %s/%s/%s/%s", in.ConsumerServiceId, + service.Environment, in.AppId, in.ServiceName, in.VersionRule) } noCache, cacheOnly := ctx.Value(serviceUtil.CTX_NOCACHE) == "1", ctx.Value(serviceUtil.CTX_CACHEONLY) == "1" @@ -561,10 +570,10 @@ func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) }, err } if item == nil { - mes := fmt.Sprintf("provider not exist, %s", findFlag) - util.Logger().Errorf(nil, "FindInstancesCache.Get failed, %s", mes) + mes := fmt.Errorf("provider does not exist, %s", findFlag) + util.Logger().Errorf(mes, "FindInstancesCache.Get failed") return &pb.FindInstancesResponse{ - Response: pb.CreateResponse(scerr.ErrServiceNotExists, mes), + Response: pb.CreateResponse(scerr.ErrServiceNotExists, mes.Error()), }, nil } @@ -581,10 +590,10 @@ func (s *InstanceService) Find(ctx context.Context, in *pb.FindInstancesRequest) if provider != nil { err = serviceUtil.AddServiceVersionRule(ctx, domainProject, service, provider) } else { - mes := fmt.Sprintf("provider not exist, %s", findFlag) - util.Logger().Errorf(nil, "AddServiceVersionRule failed, %s", mes) + mes := fmt.Errorf("provider does not exist, %s", findFlag) + util.Logger().Errorf(mes, "AddServiceVersionRule failed") return &pb.FindInstancesResponse{ - Response: pb.CreateResponse(scerr.ErrServiceNotExists, mes), + Response: pb.CreateResponse(scerr.ErrServiceNotExists, mes.Error()), }, nil } if err != nil { diff --git a/server/service/microservice.go b/server/service/microservice.go index b819caf5..5a645783 100644 --- a/server/service/microservice.go +++ b/server/service/microservice.go @@ -69,7 +69,8 @@ func (s *MicroServiceService) Create(ctx context.Context, in *pb.CreateServiceRe func (s *MicroServiceService) CreateServicePri(ctx context.Context, in *pb.CreateServiceRequest) (*pb.CreateServiceResponse, error) { remoteIP := util.GetIPFromContext(ctx) service := in.Service - serviceFlag := util.StringJoin([]string{service.AppId, service.ServiceName, service.Version}, "/") + serviceFlag := util.StringJoin([]string{ + service.Environment, service.AppId, service.ServiceName, service.Version}, "/") serviceUtil.SetServiceDefaultValue(service) @@ -179,7 +180,7 @@ func (s *MicroServiceService) CreateServicePri(ctx context.Context, in *pb.Creat util.Logger().Errorf(err, "report used quota failed.") } } - util.Logger().Infof("create micro-service successful, %s, serviceId: %s. operator: %s", + util.Logger().Infof("create micro-service %s, serviceId: %s. operator: %s", serviceFlag, service.ServiceId, remoteIP) return &pb.CreateServiceResponse{ Response: pb.CreateResponse(pb.Response_SUCCESS, "Register service successfully."), ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Log print more detailed > ----------------------- > > Key: SCB-776 > URL: https://issues.apache.org/jira/browse/SCB-776 > Project: Apache ServiceComb > Issue Type: Improvement > Components: Service-Center > Reporter: little-cui > Assignee: little-cui > Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)