diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/OnLoadSpanCE.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/OnLoadSpanCE.java index 1859a37ef21e..b8ca1704053b 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/OnLoadSpanCE.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/OnLoadSpanCE.java @@ -16,4 +16,8 @@ public class OnLoadSpanCE { APPSMITH_SPAN_PREFIX + "addExplicitUserSetOnLoadExecutablesToGraph"; public static final String GET_UNPUBLISHED_ON_LOAD_EXECUTABLES_EXPLICIT_SET_BY_USER_IN_CREATOR_CONTEXT = APPSMITH_SPAN_PREFIX + "getUnpublishedOnLoadExecutablesExplicitSetByUserInCreatorContext"; + public static final String GET_POSSIBLE_REFERENCES_FROM_DYNAMIC_BINDING = + APPSMITH_SPAN_PREFIX + "getPossibleReferencesFromDynamicBinding"; + public static final String AST_SERVICE_CALLING_RTS_API = + APPSMITH_SPAN_PREFIX + "astService.getPossibleReferencesFromDynamicBinding"; } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/onload/internal/OnLoadExecutablesUtilCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/onload/internal/OnLoadExecutablesUtilCEImpl.java index a7791fd341e7..ff04b31306da 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/onload/internal/OnLoadExecutablesUtilCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/onload/internal/OnLoadExecutablesUtilCEImpl.java @@ -58,6 +58,7 @@ import static com.appsmith.external.constants.spans.OnLoadSpan.GET_ALL_EXECUTABLES_BY_CREATOR_ID; import static com.appsmith.external.constants.spans.OnLoadSpan.GET_UNPUBLISHED_ON_LOAD_EXECUTABLES_EXPLICIT_SET_BY_USER_IN_CREATOR_CONTEXT; import static com.appsmith.external.constants.spans.OnLoadSpan.UPDATE_EXECUTABLE_SELF_REFERENCING_PATHS; +import static com.appsmith.external.constants.spans.ce.OnLoadSpanCE.GET_POSSIBLE_REFERENCES_FROM_DYNAMIC_BINDING; import static com.appsmith.external.helpers.MustacheHelper.EXECUTABLE_ENTITY_REFERENCES; import static com.appsmith.external.helpers.MustacheHelper.WIDGET_ENTITY_REFERENCES; import static com.appsmith.external.helpers.MustacheHelper.getPossibleParents; @@ -667,8 +668,10 @@ private Mono>> getPossibleEntityReferences */ private Mono>> getPossibleEntityParentsMap( List bindings, int types, int evalVersion) { - Flux>> findingToReferencesFlux = - astService.getPossibleReferencesFromDynamicBinding(bindings, evalVersion); + Flux>> findingToReferencesFlux = astService + .getPossibleReferencesFromDynamicBinding(bindings, evalVersion) + .name(GET_POSSIBLE_REFERENCES_FROM_DYNAMIC_BINDING) + .tap(Micrometer.observation(observationRegistry)); return MustacheHelper.getPossibleEntityParentsMap(findingToReferencesFlux, types); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/AstServiceImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/AstServiceImpl.java index bd85d78d5d14..40c6581a9e93 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/AstServiceImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/AstServiceImpl.java @@ -4,6 +4,7 @@ import com.appsmith.server.configurations.CommonConfig; import com.appsmith.server.configurations.InstanceConfig; import com.appsmith.server.services.ce.AstServiceCEImpl; +import io.micrometer.observation.ObservationRegistry; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -11,7 +12,11 @@ @Service public class AstServiceImpl extends AstServiceCEImpl implements AstService { - public AstServiceImpl(CommonConfig commonConfig, InstanceConfig instanceConfig, RTSCaller rtsCaller) { - super(commonConfig, instanceConfig, rtsCaller); + public AstServiceImpl( + CommonConfig commonConfig, + InstanceConfig instanceConfig, + RTSCaller rtsCaller, + ObservationRegistry observationRegistry) { + super(commonConfig, instanceConfig, rtsCaller, observationRegistry); } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AstServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AstServiceCEImpl.java index e344ac70cee1..2142ea37dcf3 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AstServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AstServiceCEImpl.java @@ -8,6 +8,7 @@ import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.util.WebClientUtils; +import io.micrometer.observation.ObservationRegistry; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -17,6 +18,7 @@ import org.springframework.http.HttpStatus; import org.springframework.util.StringUtils; import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.observability.micrometer.Micrometer; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.netty.resources.ConnectionProvider; @@ -34,6 +36,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; +import static com.appsmith.external.constants.spans.ce.OnLoadSpanCE.AST_SERVICE_CALLING_RTS_API; + @Slf4j @RequiredArgsConstructor public class AstServiceCEImpl implements AstServiceCE { @@ -43,6 +47,7 @@ public class AstServiceCEImpl implements AstServiceCE { private final InstanceConfig instanceConfig; private final RTSCaller rtsCaller; + private final ObservationRegistry observationRegistry; private final WebClient webClient = WebClientUtils.create(ConnectionProvider.builder("rts-provider") .maxConnections(100) @@ -119,6 +124,10 @@ public Flux>> getPossibleReferencesFromDynamicBinding } return rtsCaller .post("/rts-api/v1/ast/multiple-script-data", new GetIdentifiersRequestBulk(bindingValues, evalVersion)) + .name(AST_SERVICE_CALLING_RTS_API) + .tap(Micrometer.observation(observationRegistry)) + .tag("no_of_bindings", String.valueOf(bindingValues.size())) + .tag("eval_version", String.valueOf(evalVersion)) .flatMapMany(spec -> spec.retrieve() .bodyToMono(GetIdentifiersResponseBulk.class) .retryWhen(Retry.max(3))