chore: Multiple environment instrumentation (#25458)
This commit is contained in:
parent
5945aaa81b
commit
9d913358b4
|
|
@ -2,6 +2,8 @@ package com.appsmith.server.constants.ce;
|
|||
|
||||
public class AnalyticsConstantsCE {
|
||||
public static final String ENVIRONMENT_ID_SHORTNAME = "envId";
|
||||
public static final String ENVIRONMENT_NAME_SHORTNAME = "envName";
|
||||
public static final String ENVIRONMENT_NAME_DEFAULT = "";
|
||||
public static final String DATASOURCE_ID_SHORTNAME = "dsId";
|
||||
public static final String DATASOURCE_NAME_SHORTNAME = "dsName";
|
||||
public static final String DATASOURCE_IS_TEMPLATE_SHORTNAME = "dsIsTemplate";
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.appsmith.external.models.DatasourceConfiguration;
|
|||
import com.appsmith.external.models.DatasourceStorage;
|
||||
import com.appsmith.external.models.DatasourceTestResult;
|
||||
import com.appsmith.external.models.OAuth2;
|
||||
import com.appsmith.server.constants.AnalyticsConstants;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
@ -40,8 +41,8 @@ public class DatasourceAnalyticsUtils {
|
|||
}
|
||||
|
||||
public static Map<String, Object> getAnalyticsPropertiesForTestEventStatus(
|
||||
DatasourceStorage datasourceStorage, boolean status, Throwable e) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage);
|
||||
DatasourceStorage datasourceStorage, boolean status, Throwable e, String environmentName) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage, environmentName);
|
||||
analyticsProperties.put("isSuccess", status);
|
||||
|
||||
if (e == null) {
|
||||
|
|
@ -56,27 +57,29 @@ public class DatasourceAnalyticsUtils {
|
|||
}
|
||||
|
||||
public static Map<String, Object> getAnalyticsPropertiesForTestEventStatus(
|
||||
DatasourceStorage datasourceStorage, boolean status) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage);
|
||||
DatasourceStorage datasourceStorage, boolean status, String environmentName) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage, environmentName);
|
||||
analyticsProperties.put("isSuccess", status);
|
||||
analyticsProperties.put("errors", datasourceStorage.getInvalids());
|
||||
return analyticsProperties;
|
||||
}
|
||||
|
||||
public static Map<String, Object> getAnalyticsPropertiesForTestEventStatus(
|
||||
DatasourceStorage datasourceStorage, DatasourceTestResult datasourceTestResult) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage);
|
||||
DatasourceStorage datasourceStorage, DatasourceTestResult datasourceTestResult, String environmentName) {
|
||||
Map<String, Object> analyticsProperties = getAnalyticsPropertiesWithStorage(datasourceStorage, environmentName);
|
||||
analyticsProperties.put("isSuccess", datasourceTestResult.isSuccess());
|
||||
analyticsProperties.put("errors", datasourceTestResult.getInvalids());
|
||||
return analyticsProperties;
|
||||
}
|
||||
|
||||
public static Map<String, Object> getAnalyticsPropertiesWithStorage(DatasourceStorage datasourceStorage) {
|
||||
public static Map<String, Object> getAnalyticsPropertiesWithStorage(
|
||||
DatasourceStorage datasourceStorage, String environmentName) {
|
||||
Map<String, Object> analyticsProperties = new HashMap<>();
|
||||
analyticsProperties.putAll(getAnalyticsProperties(datasourceStorage));
|
||||
analyticsProperties.put("pluginName", datasourceStorage.getPluginName());
|
||||
analyticsProperties.put("dsName", datasourceStorage.getName());
|
||||
analyticsProperties.put("envId", datasourceStorage.getEnvironmentId());
|
||||
analyticsProperties.put(AnalyticsConstants.ENVIRONMENT_NAME_SHORTNAME, environmentName);
|
||||
DatasourceConfiguration dsConfig = datasourceStorage.getDatasourceConfiguration();
|
||||
if (dsConfig != null
|
||||
&& dsConfig.getAuthentication() != null
|
||||
|
|
|
|||
|
|
@ -487,7 +487,11 @@ public class DatasourceServiceCEImpl implements DatasourceServiceCE {
|
|||
protected Mono<DatasourceTestResult> verifyDatasourceAndTest(DatasourceStorage datasourceStorage) {
|
||||
return Mono.justOrEmpty(datasourceStorage)
|
||||
.flatMap(datasourceStorageService::validateDatasourceConfiguration)
|
||||
.flatMap(storage -> {
|
||||
.zipWith(datasourceStorageService.getEnvironmentNameFromEnvironmentIdForAnalytics(
|
||||
datasourceStorage.getEnvironmentId()))
|
||||
.flatMap(tuple2 -> {
|
||||
DatasourceStorage storage = tuple2.getT1();
|
||||
String environmentName = tuple2.getT2();
|
||||
Mono<DatasourceTestResult> datasourceTestResultMono;
|
||||
if (CollectionUtils.isEmpty(storage.getInvalids())) {
|
||||
datasourceTestResultMono = testDatasourceViaPlugin(storage);
|
||||
|
|
@ -503,7 +507,7 @@ public class DatasourceServiceCEImpl implements DatasourceServiceCE {
|
|||
AnalyticsEvents.DS_TEST_EVENT_FAILED,
|
||||
datasourceStorage,
|
||||
getAnalyticsPropertiesForTestEventStatus(
|
||||
datasourceStorage, datasourceTestResult))
|
||||
datasourceStorage, datasourceTestResult, environmentName))
|
||||
.thenReturn(datasourceTestResult);
|
||||
|
||||
} else {
|
||||
|
|
@ -512,7 +516,7 @@ public class DatasourceServiceCEImpl implements DatasourceServiceCE {
|
|||
AnalyticsEvents.DS_TEST_EVENT_SUCCESS,
|
||||
datasourceStorage,
|
||||
getAnalyticsPropertiesForTestEventStatus(
|
||||
datasourceStorage, datasourceTestResult))
|
||||
datasourceStorage, datasourceTestResult, environmentName))
|
||||
.thenReturn(datasourceTestResult);
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -42,4 +42,6 @@ public interface DatasourceStorageServiceCE {
|
|||
DatasourceStorageDTO getDatasourceStorageDTOFromDatasource(Datasource datasource, String environmentId);
|
||||
|
||||
DatasourceStorage getDatasourceStorageFromDatasource(Datasource datasource, String environmentId);
|
||||
|
||||
Mono<String> getEnvironmentNameFromEnvironmentIdForAnalytics(String environmentId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -331,4 +331,9 @@ public class DatasourceStorageServiceCEImpl implements DatasourceStorageServiceC
|
|||
.flatMap(dbDatasourceStorage -> Mono.error(new AppsmithException(
|
||||
AppsmithError.DUPLICATE_DATASOURCE_CONFIGURATION, datasourceId, environmentId)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<String> getEnvironmentNameFromEnvironmentIdForAnalytics(String environmentId) {
|
||||
return Mono.just(FieldName.UNUSED_ENVIRONMENT_ID);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,6 +91,8 @@ import static com.appsmith.server.constants.AnalyticsConstants.DATASOURCE_IS_MOC
|
|||
import static com.appsmith.server.constants.AnalyticsConstants.DATASOURCE_IS_TEMPLATE_SHORTNAME;
|
||||
import static com.appsmith.server.constants.AnalyticsConstants.DATASOURCE_NAME_SHORTNAME;
|
||||
import static com.appsmith.server.constants.AnalyticsConstants.ENVIRONMENT_ID_SHORTNAME;
|
||||
import static com.appsmith.server.constants.ce.AnalyticsConstantsCE.ENVIRONMENT_NAME_DEFAULT;
|
||||
import static com.appsmith.server.constants.ce.AnalyticsConstantsCE.ENVIRONMENT_NAME_SHORTNAME;
|
||||
import static com.appsmith.server.helpers.WidgetSuggestionHelper.getSuggestedWidgets;
|
||||
import static java.lang.Boolean.FALSE;
|
||||
import static java.lang.Boolean.TRUE;
|
||||
|
|
@ -889,12 +891,15 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
Mono.just(application),
|
||||
sessionUserService.getCurrentUser(),
|
||||
newPageService.getNameByPageId(actionDTO.getPageId(), executeActionDto.getViewMode()),
|
||||
pluginService.getById(actionDTO.getPluginId())))
|
||||
pluginService.getById(actionDTO.getPluginId()),
|
||||
datasourceStorageService.getEnvironmentNameFromEnvironmentIdForAnalytics(
|
||||
datasourceStorage.getEnvironmentId())))
|
||||
.flatMap(tuple -> {
|
||||
final Application application = tuple.getT1();
|
||||
final User user = tuple.getT2();
|
||||
final String pageName = tuple.getT3();
|
||||
final Plugin plugin = tuple.getT4();
|
||||
final String environmentName = tuple.getT5();
|
||||
|
||||
final PluginType pluginType = actionDTO.getPluginType();
|
||||
final String appMode = TRUE.equals(executeActionDto.getViewMode())
|
||||
|
|
@ -981,7 +986,9 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE
|
|||
DATASOURCE_IS_MOCK_SHORTNAME,
|
||||
ObjectUtils.defaultIfNull(datasourceStorage.getIsMock(), ""),
|
||||
DATASOURCE_CREATED_AT_SHORTNAME,
|
||||
dsCreatedAt));
|
||||
dsCreatedAt,
|
||||
ENVIRONMENT_NAME_SHORTNAME,
|
||||
ObjectUtils.defaultIfNull(datasourceStorage.getIsMock(), ENVIRONMENT_NAME_DEFAULT)));
|
||||
|
||||
// Add the error message in case of erroneous execution
|
||||
if (FALSE.equals(actionExecutionResult.getIsExecutionSuccess())) {
|
||||
|
|
|
|||
|
|
@ -75,12 +75,16 @@ public class DatasourceStructureSolutionCEImpl implements DatasourceStructureSol
|
|||
@Override
|
||||
public Mono<DatasourceStructure> getStructure(DatasourceStorage datasourceStorage, boolean ignoreCache) {
|
||||
|
||||
Mono<String> environmentNameMonoCached = datasourceStorageService
|
||||
.getEnvironmentNameFromEnvironmentIdForAnalytics(datasourceStorage.getEnvironmentId())
|
||||
.cache();
|
||||
|
||||
if (Boolean.FALSE.equals(datasourceStorage.getIsValid())) {
|
||||
return analyticsService
|
||||
.sendObjectEvent(
|
||||
return environmentNameMonoCached
|
||||
.zipWhen(environmentName -> analyticsService.sendObjectEvent(
|
||||
AnalyticsEvents.DS_SCHEMA_FETCH_EVENT,
|
||||
datasourceStorage,
|
||||
getAnalyticsPropertiesForTestEventStatus(datasourceStorage, false))
|
||||
getAnalyticsPropertiesForTestEventStatus(datasourceStorage, false, environmentName)))
|
||||
.then(Mono.just(new DatasourceStructure()));
|
||||
}
|
||||
|
||||
|
|
@ -126,21 +130,23 @@ public class DatasourceStructureSolutionCEImpl implements DatasourceStructureSol
|
|||
|
||||
return e;
|
||||
})
|
||||
.onErrorResume(error -> analyticsService
|
||||
.sendObjectEvent(
|
||||
.onErrorResume(error -> environmentNameMonoCached
|
||||
.zipWhen(environmentName -> analyticsService.sendObjectEvent(
|
||||
AnalyticsEvents.DS_SCHEMA_FETCH_EVENT,
|
||||
datasourceStorage,
|
||||
getAnalyticsPropertiesForTestEventStatus(datasourceStorage, false, error))
|
||||
getAnalyticsPropertiesForTestEventStatus(
|
||||
datasourceStorage, false, error, environmentName)))
|
||||
.then(Mono.error(error)))
|
||||
.flatMap(structure -> {
|
||||
String datasourceId = datasourceStorage.getDatasourceId();
|
||||
String environmentId = datasourceStorage.getEnvironmentId();
|
||||
|
||||
return analyticsService
|
||||
.sendObjectEvent(
|
||||
return environmentNameMonoCached
|
||||
.zipWhen(environmentName -> analyticsService.sendObjectEvent(
|
||||
AnalyticsEvents.DS_SCHEMA_FETCH_EVENT,
|
||||
datasourceStorage,
|
||||
getAnalyticsPropertiesForTestEventStatus(datasourceStorage, true, null))
|
||||
getAnalyticsPropertiesForTestEventStatus(
|
||||
datasourceStorage, true, null, environmentName)))
|
||||
.then(
|
||||
!hasText(datasourceId)
|
||||
? Mono.empty()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user