From 48969f751c987fdf79baa466531f50c688a77bc0 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Thu, 13 Feb 2025 01:01:58 -0500 Subject: [PATCH] log the event with trace level and add mqtt dataflow Signed-off-by: Wei Liu --- cmd/maestro/server/event_server.go | 4 +- cmd/maestro/server/grpc_server.go | 6 +- cmd/maestro/server/healthcheck_server.go | 2 +- cmd/maestro/server/logging/logging.go | 3 +- docs/images/maestro-mqtt-pub-dataflow.drawio | 134 ++++++++++++++ docs/images/maestro-mqtt-pub-dataflow.png | Bin 0 -> 74764 bytes docs/images/maestro-mqtt-sub-dataflow.drawio | 173 +++++++++++++++++++ docs/images/maestro-mqtt-sub-dataflow.png | Bin 0 -> 94924 bytes docs/maestro.md | 10 ++ pkg/client/grpcauthorizer/kube_authorizer.go | 2 - pkg/db/db_session/default.go | 2 +- pkg/services/resource.go | 3 +- 12 files changed, 329 insertions(+), 10 deletions(-) create mode 100644 docs/images/maestro-mqtt-pub-dataflow.drawio create mode 100644 docs/images/maestro-mqtt-pub-dataflow.png create mode 100644 docs/images/maestro-mqtt-sub-dataflow.drawio create mode 100644 docs/images/maestro-mqtt-sub-dataflow.png diff --git a/cmd/maestro/server/event_server.go b/cmd/maestro/server/event_server.go index 26c5d09a..a96b2d97 100644 --- a/cmd/maestro/server/event_server.go +++ b/cmd/maestro/server/event_server.go @@ -109,7 +109,7 @@ func (s *MessageQueueEventServer) startSubscription(ctx context.Context) { return fmt.Errorf("failed to handle resource status update %s: %s", resource.ID, err.Error()) } default: - return fmt.Errorf("unsupported action %s", action) + return fmt.Errorf("failed to handle resource status update %s: unsupported action %s", resource.ID, action) } return nil @@ -277,7 +277,7 @@ func broadcastStatusEvent(ctx context.Context, } // broadcast the resource status to subscribers - log.V(4).Infof("Broadcast the resource status %s", resource.ID) + log.V(4).Infof("Broadcast the resource status, id=%s, statusEventType=%s", resource.ID, statusEvent.StatusEventType) eventBroadcaster.Broadcast(resource) // add the event instance record diff --git a/cmd/maestro/server/grpc_server.go b/cmd/maestro/server/grpc_server.go index 32e9fc40..88a3b0da 100644 --- a/cmd/maestro/server/grpc_server.go +++ b/cmd/maestro/server/grpc_server.go @@ -177,7 +177,8 @@ func (svr *GRPCServer) Publish(ctx context.Context, pubReq *pbv1.PublishRequest) return nil, fmt.Errorf("failed to parse cloud event type %s, %v", evt.Type(), err) } - klog.V(4).Infof("receive the event with grpc server, %s", evt) + klog.V(4).Infof("receive the event from client, %s", evt.Context) + klog.V(10).Infof("receive the event from client, evt=%s", evt) // handler resync request if eventType.Action == types.ResyncRequestAction { @@ -247,7 +248,8 @@ func (svr *GRPCServer) Subscribe(subReq *pbv1.SubscriptionRequest, subServer pbv return fmt.Errorf("failed to encode resource %s to cloudevent: %v", res.ID, err) } - klog.V(4).Infof("send the event to status subscribers, %s", evt) + klog.V(4).Infof("send the event to status subscribers, %s", evt.Context) + klog.V(10).Infof("send the event to status subscribers, evt=%s", evt) // WARNING: don't use "pbEvt, err := pb.ToProto(evt)" to convert cloudevent to protobuf pbEvt := &pbv1.CloudEvent{} diff --git a/cmd/maestro/server/healthcheck_server.go b/cmd/maestro/server/healthcheck_server.go index a418cba6..0081d54e 100755 --- a/cmd/maestro/server/healthcheck_server.go +++ b/cmd/maestro/server/healthcheck_server.go @@ -182,7 +182,7 @@ func (s *HealthCheckServer) healthCheckHandler(w http.ResponseWriter, r *http.Re return } if instance.Ready { - klog.Infof("Instance is ready") + klog.V(10).Infof("Instance is ready") w.WriteHeader(http.StatusOK) _, err := w.Write([]byte(`{"status": "ok"}`)) if err != nil { diff --git a/cmd/maestro/server/logging/logging.go b/cmd/maestro/server/logging/logging.go index cbacd444..a0e7c8f7 100755 --- a/cmd/maestro/server/logging/logging.go +++ b/cmd/maestro/server/logging/logging.go @@ -1,3 +1,4 @@ package logging -const LoggingThreshold int32 = 1 +// Using trace level for http request/response +const LoggingThreshold int32 = 10 diff --git a/docs/images/maestro-mqtt-pub-dataflow.drawio b/docs/images/maestro-mqtt-pub-dataflow.drawio new file mode 100644 index 00000000..c902aaa6 --- /dev/null +++ b/docs/images/maestro-mqtt-pub-dataflow.drawio @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/maestro-mqtt-pub-dataflow.png b/docs/images/maestro-mqtt-pub-dataflow.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac36686845515b21b8b6a63550f4d9e1c3f49a4 GIT binary patch literal 74764 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≠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 literal 0 HcmV?d00001 diff --git a/docs/images/maestro-mqtt-sub-dataflow.drawio b/docs/images/maestro-mqtt-sub-dataflow.drawio new file mode 100644 index 00000000..a2666ae8 --- /dev/null +++ b/docs/images/maestro-mqtt-sub-dataflow.drawio @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/maestro-mqtt-sub-dataflow.png b/docs/images/maestro-mqtt-sub-dataflow.png new file mode 100644 index 0000000000000000000000000000000000000000..2eeb0fb975687f0cff7f07618a446f4dec786e3c GIT binary patch literal 94924 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 literal 0 HcmV?d00001 diff --git a/docs/maestro.md b/docs/maestro.md index 092d1e5c..5f211b36 100644 --- a/docs/maestro.md +++ b/docs/maestro.md @@ -42,3 +42,13 @@ The Maestro Server includes various components to fulfill its functions, as illu [maestro-resource-status-flow](https://swimlanes.io/#lVTLUuNADLzPV+gDeNw5bBXYBraKRxbCeWtia+MphhmvpCG/v5rYJinHhMU3S61WS2pbnHi8gHuLLBThCTkmqhGexUpiuPZxY4yp3jEIXFG0TW1ZkOD0BxwEL3IVCUiE1RgFGhl5y2jM2OrmaVHAM9J7zzYT3uPjHrfOScK/SbHGDBqLGLTQ+57nIDiybCK9KkTJWhsaPwr6jXmMnaxF8owzuvbjA+XnRYOI0nFnpW53Ig4SxjxE0QNcR4L7X8slbJy0wK0lbIDTimtynbgY9KXrIskJJG0lLUKIp7HjYQxoPijP4FHTtHGMO/ABqm9Ux8BOb6eHbC23LqzzghQl5FZJPupS11hBzklKIWTc2zC7C4oJNfLZkX30Fii80066i36uFWa+qeWUJe9BffU6WzzFFz6mpjfjtw5Solr2zQUE9weKRJSX8HMYRi8Qk2/gtrfKpOd33fKy3d55iV577siUG2pCTcHLorxcVudldVctq4kz/9fmt3O2ni2eV3n19Tc7HXfmF3CEZfYvMlKv97/7T0myYbZIHi1ESjx5/gE=) ![maestro-resource-status-flow](./images/maestro-resource-status-flow.png) + +## Maestro Resource Data Flow + +### Maestro Publish Resource with MQTT + +![maestro-mqtt-pub-dataflow](./images/maestro-mqtt-pub-dataflow.png) + +### Maestro Subscribe Resource Status with MQTT + +![maestro-mqtt-sub-dataflow](./images/maestro-mqtt-sub-dataflow.png) diff --git a/pkg/client/grpcauthorizer/kube_authorizer.go b/pkg/client/grpcauthorizer/kube_authorizer.go index 87da1040..1b06e8d3 100644 --- a/pkg/client/grpcauthorizer/kube_authorizer.go +++ b/pkg/client/grpcauthorizer/kube_authorizer.go @@ -26,8 +26,6 @@ var _ GRPCAuthorizer = &KubeGRPCAuthorizer{} // TokenReview validates the given token and returns the user and groups associated with it. func (k *KubeGRPCAuthorizer) TokenReview(ctx context.Context, token string) (user string, groups []string, err error) { - klog.V(4).Infof("TokenReview: token=%s", token) - tr, err := k.kubeClient.AuthenticationV1().TokenReviews().Create(ctx, &authenticationv1.TokenReview{ Spec: authenticationv1.TokenReviewSpec{ Token: token, diff --git a/pkg/db/db_session/default.go b/pkg/db/db_session/default.go index 89aa3d2a..59809a1f 100755 --- a/pkg/db/db_session/default.go +++ b/pkg/db/db_session/default.go @@ -147,7 +147,7 @@ func waitForNotification(ctx context.Context, l *pq.Listener, dbConfig *config.D return case n := <-l.Notify: if n != nil { - logger.V(4).Infof("Received event from channel [%s] : %s", n.Channel, n.Extra) + logger.V(10).Infof("Received event from channel [%s] : %s", n.Channel, n.Extra) callback(n.Extra) } else { // nil notification means the connection was closed diff --git a/pkg/services/resource.go b/pkg/services/resource.go index 1adb8a96..40e2ee8e 100755 --- a/pkg/services/resource.go +++ b/pkg/services/resource.go @@ -193,7 +193,8 @@ func (s *sqlResourceService) UpdateStatus(ctx context.Context, resource *api.Res return nil, false, errors.GeneralError("Unable to convert resource status to cloudevent: %s", err) } - logger.V(4).Info(fmt.Sprintf("Updating resource status with event %s", resourceStatusEvent)) + logger.V(4).Info(fmt.Sprintf("Updating resource status, id=%s", resource.ID)) + logger.V(10).Info(fmt.Sprintf("Updating resource status, evt=%s", resourceStatusEvent)) sequenceID, err := cloudeventstypes.ToString(resourceStatusEvent.Context.GetExtensions()[cetypes.ExtensionStatusUpdateSequenceID]) if err != nil {