From 5020b9039f7bcae5490a3f27ecd021acad942237 Mon Sep 17 00:00:00 2001 From: SrikarMannepalli Date: Thu, 24 Feb 2022 13:06:57 +0530 Subject: [PATCH 1/3] add creation and last updated timestamps --- hypertrace-graphql-platform/build.gradle.kts | 2 +- ...erviceSpanProcessingResponseConverter.java | 34 ++++++------ ...figServiceSpanProcessingRuleConverter.java | 40 -------------- .../ConfigServiceSpanProcessingRuleDao.java | 6 +-- ...iceSpanProcessingRuleDetailsConverter.java | 53 +++++++++++++++++++ .../dao/SpanProcessingRuleDao.java | 6 +-- .../ExcludeSpanCreateRuleMutator.java | 9 ++-- .../ExcludeSpanUpdateRuleMutator.java | 9 ++-- .../SpanProcessingMutationSchema.java | 6 +-- .../query/ExcludeSpanRuleResultSet.java | 6 +-- .../schema/rule/ExcludeSpanRuleDetails.java | 8 +++ .../schema/rule/ExcludeSpanRuleMetadata.java | 24 +++++++++ 12 files changed, 123 insertions(+), 80 deletions(-) delete mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java create mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java create mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java create mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java diff --git a/hypertrace-graphql-platform/build.gradle.kts b/hypertrace-graphql-platform/build.gradle.kts index 3d8c9fe0..97b1af61 100644 --- a/hypertrace-graphql-platform/build.gradle.kts +++ b/hypertrace-graphql-platform/build.gradle.kts @@ -13,6 +13,6 @@ dependencies { api("org.hypertrace.config.service:spaces-config-service-api:0.1.1") api("org.hypertrace.config.service:labels-config-service-api:0.1.15") api("org.hypertrace.config.service:label-application-rule-config-service-api:0.1.16") - api("org.hypertrace.config.service:span-processing-config-service-api:0.1.23") + api("org.hypertrace.config.service:span-processing-config-service-api:0.1.24") } } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java index c86f1d4f..922aa29e 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java @@ -10,7 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; import org.hypertrace.span.processing.config.service.v1.CreateExcludeSpanRuleResponse; import org.hypertrace.span.processing.config.service.v1.DeleteExcludeSpanRuleResponse; import org.hypertrace.span.processing.config.service.v1.GetAllExcludeSpanRulesResponse; @@ -19,40 +19,40 @@ @Slf4j public class ConfigServiceSpanProcessingResponseConverter { - private final ConfigServiceSpanProcessingRuleConverter ruleConverter; + private final ConfigServiceSpanProcessingRuleDetailsConverter ruleDetailsConverter; @Inject ConfigServiceSpanProcessingResponseConverter( - ConfigServiceSpanProcessingRuleConverter ruleConverter) { - this.ruleConverter = ruleConverter; + ConfigServiceSpanProcessingRuleDetailsConverter ruleDetailsConverter) { + this.ruleDetailsConverter = ruleDetailsConverter; } Single convert(GetAllExcludeSpanRulesResponse response) { - return this.convertResultSet(response.getRulesList()); + return this.convertResultSet(response.getRuleDetailsList()); } - private Maybe convertOrDrop( - org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule rule) { - return this.ruleConverter - .convert(rule) + private Maybe convertOrDrop( + org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) { + return this.ruleDetailsConverter + .convert(ruleDetails) .doOnError(error -> log.error("Error converting ExcludeSpanRule", error)) .onErrorComplete(); } private Single convertResultSet( - List rules) { - return Observable.fromIterable(rules) + List ruleDetails) { + return Observable.fromIterable(ruleDetails) .concatMapMaybe(this::convertOrDrop) .toList() .map(ConvertedExcludeSpanRuleResultSet::new); } - Single convert(CreateExcludeSpanRuleResponse response) { - return this.ruleConverter.convert(response.getRule()); + Single convert(CreateExcludeSpanRuleResponse response) { + return this.ruleDetailsConverter.convert(response.getRuleDetails()); } - Single convert(UpdateExcludeSpanRuleResponse response) { - return this.ruleConverter.convert(response.getRule()); + Single convert(UpdateExcludeSpanRuleResponse response) { + return this.ruleDetailsConverter.convert(response.getRuleDetails()); } Single convert(DeleteExcludeSpanRuleResponse response) { @@ -69,11 +69,11 @@ private static class DefaultDeleteSpanProcessingRuleResponse @Value @Accessors(fluent = true) private static class ConvertedExcludeSpanRuleResultSet implements ExcludeSpanRuleResultSet { - List results; + List results; long total; long count; - private ConvertedExcludeSpanRuleResultSet(List results) { + private ConvertedExcludeSpanRuleResultSet(List results) { this.results = results; this.count = results.size(); this.total = results.size(); diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java deleted file mode 100644 index 2ad85db8..00000000 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.hypertrace.graphql.spanprocessing.dao; - -import io.reactivex.rxjava3.core.Single; -import javax.inject.Inject; -import lombok.Value; -import lombok.experimental.Accessors; -import org.hypertrace.core.graphql.common.utils.Converter; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; -import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter; - -class ConfigServiceSpanProcessingRuleConverter - implements Converter< - org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule, ExcludeSpanRule> { - - private final ConfigServiceSpanFilterConverter filterConverter; - - @Inject - ConfigServiceSpanProcessingRuleConverter(ConfigServiceSpanFilterConverter filterConverter) { - this.filterConverter = filterConverter; - } - - @Override - public Single convert( - org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule rule) { - return this.filterConverter - .convert(rule.getRuleInfo().getFilter()) - .map( - spanProcessingRuleFilter -> - new ConvertedExcludeSpanRule( - rule.getId(), rule.getRuleInfo().getName(), spanProcessingRuleFilter)); - } - - @Value - @Accessors(fluent = true) - private static class ConvertedExcludeSpanRule implements ExcludeSpanRule { - String id; - String name; - SpanProcessingRuleFilter spanFilter; - } -} diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java index 6da5e3d2..def93af8 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java @@ -14,7 +14,7 @@ import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; import org.hypertrace.span.processing.config.service.v1.GetAllExcludeSpanRulesRequest; import org.hypertrace.span.processing.config.service.v1.SpanProcessingConfigServiceGrpc; @@ -61,7 +61,7 @@ public Single getRules(ContextualRequest request) { } @Override - public Single createRule(ExcludeSpanCreateRuleRequest request) { + public Single createRule(ExcludeSpanCreateRuleRequest request) { return Single.fromFuture( this.grpcContextBuilder .build(request.context()) @@ -75,7 +75,7 @@ public Single createRule(ExcludeSpanCreateRuleRequest request) } @Override - public Single updateRule(ExcludeSpanUpdateRuleRequest request) { + public Single updateRule(ExcludeSpanUpdateRuleRequest request) { return Single.fromFuture( this.grpcContextBuilder .build(request.context()) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java new file mode 100644 index 00000000..59e03751 --- /dev/null +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java @@ -0,0 +1,53 @@ +package org.hypertrace.graphql.spanprocessing.dao; + +import io.reactivex.rxjava3.core.Single; +import java.time.Instant; +import javax.inject.Inject; +import lombok.Value; +import lombok.experimental.Accessors; +import org.hypertrace.core.graphql.common.utils.Converter; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter; + +class ConfigServiceSpanProcessingRuleDetailsConverter + implements Converter< + org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails, + ExcludeSpanRuleDetails> { + + private final ConfigServiceSpanFilterConverter filterConverter; + + @Inject + ConfigServiceSpanProcessingRuleDetailsConverter( + ConfigServiceSpanFilterConverter filterConverter) { + this.filterConverter = filterConverter; + } + + @Override + public Single convert( + org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) { + return this.filterConverter + .convert(ruleDetails.getRule().getRuleInfo().getFilter()) + .map( + spanProcessingRuleFilter -> + new ConvertedExcludeSpanRuleDetails( + ruleDetails.getRule().getId(), + ruleDetails.getRule().getRuleInfo().getName(), + spanProcessingRuleFilter, + Instant.ofEpochSecond( + ruleDetails.getMetadata().getCreationTimestamp().getSeconds(), + ruleDetails.getMetadata().getCreationTimestamp().getNanos()), + Instant.ofEpochSecond( + ruleDetails.getMetadata().getLastUpdatedTimestamp().getSeconds(), + ruleDetails.getMetadata().getLastUpdatedTimestamp().getNanos()))); + } + + @Value + @Accessors(fluent = true) + private static class ConvertedExcludeSpanRuleDetails implements ExcludeSpanRuleDetails { + String id; + String name; + SpanProcessingRuleFilter spanFilter; + Instant creationTime; + Instant lastUpdatedTime; + } +} diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java index 8117614e..a70a0387 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java @@ -7,14 +7,14 @@ import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; public interface SpanProcessingRuleDao { Single getRules(ContextualRequest request); - Single createRule(ExcludeSpanCreateRuleRequest request); + Single createRule(ExcludeSpanCreateRuleRequest request); - Single updateRule(ExcludeSpanUpdateRuleRequest request); + Single updateRule(ExcludeSpanUpdateRuleRequest request); Single deleteRule(ExcludeSpanDeleteRuleRequest request); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java index 8d749cbb..fd75864b 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java @@ -7,16 +7,16 @@ import org.hypertrace.core.graphql.common.fetcher.InjectableDataFetcher; import org.hypertrace.graphql.spanprocessing.dao.SpanProcessingRuleDao; import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanCreateRuleRequestBuilder; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; -public class ExcludeSpanCreateRuleMutator extends InjectableDataFetcher { +public class ExcludeSpanCreateRuleMutator extends InjectableDataFetcher { public ExcludeSpanCreateRuleMutator() { super(SpanProcessingCreateRuleMutatorImpl.class); } static final class SpanProcessingCreateRuleMutatorImpl - implements DataFetcher> { + implements DataFetcher> { private final SpanProcessingRuleDao spanProcessingRuleDao; private final ExcludeSpanCreateRuleRequestBuilder requestBuilder; @@ -29,8 +29,7 @@ static final class SpanProcessingCreateRuleMutatorImpl } @Override - public CompletableFuture get(DataFetchingEnvironment environment) { - + public CompletableFuture get(DataFetchingEnvironment environment) { return this.requestBuilder .build(environment.getContext(), environment.getArguments()) .flatMap(this.spanProcessingRuleDao::createRule) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java index 1022eeda..1d7c8dec 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java @@ -7,16 +7,16 @@ import org.hypertrace.core.graphql.common.fetcher.InjectableDataFetcher; import org.hypertrace.graphql.spanprocessing.dao.SpanProcessingRuleDao; import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequestBuilder; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; -public class ExcludeSpanUpdateRuleMutator extends InjectableDataFetcher { +public class ExcludeSpanUpdateRuleMutator extends InjectableDataFetcher { public ExcludeSpanUpdateRuleMutator() { super(SpanProcessingUpdateRuleMutatorImpl.class); } static final class SpanProcessingUpdateRuleMutatorImpl - implements DataFetcher> { + implements DataFetcher> { private final SpanProcessingRuleDao spanProcessingRuleDao; private final ExcludeSpanUpdateRuleRequestBuilder requestBuilder; @@ -29,8 +29,7 @@ static final class SpanProcessingUpdateRuleMutatorImpl } @Override - public CompletableFuture get(DataFetchingEnvironment environment) { - + public CompletableFuture get(DataFetchingEnvironment environment) { return this.requestBuilder .build(environment.getContext(), environment.getArguments()) .flatMap(this.spanProcessingRuleDao::updateRule) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java index 7fc0f980..cf18e04b 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java @@ -7,7 +7,7 @@ import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanCreateRuleMutator; import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanDeleteRuleMutator; import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanUpdateRuleMutator; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; public interface SpanProcessingMutationSchema { String CREATE_EXCLUDE_SPAN_RULE_MUTATION_NAME = "createExcludeSpanRule"; @@ -18,7 +18,7 @@ public interface SpanProcessingMutationSchema { @GraphQLName(CREATE_EXCLUDE_SPAN_RULE_MUTATION_NAME) @GraphQLNonNull @GraphQLDataFetcher(ExcludeSpanCreateRuleMutator.class) - ExcludeSpanRule createExcludeSpanRule( + ExcludeSpanRuleDetails createExcludeSpanRule( @GraphQLName(ExcludeSpanRuleCreate.ARGUMENT_NAME) @GraphQLNonNull ExcludeSpanRuleCreate input); @@ -26,7 +26,7 @@ ExcludeSpanRule createExcludeSpanRule( @GraphQLName(UPDATE_EXCLUDE_SPAN_RULE_MUTATION_NAME) @GraphQLNonNull @GraphQLDataFetcher(ExcludeSpanUpdateRuleMutator.class) - ExcludeSpanRule updateExcludeSpanRule( + ExcludeSpanRuleDetails updateExcludeSpanRule( @GraphQLName(ExcludeSpanRuleUpdate.ARGUMENT_NAME) @GraphQLNonNull ExcludeSpanRuleUpdate input); diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java index 7bb6607d..d6d03b63 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java @@ -5,15 +5,15 @@ import graphql.annotations.annotationTypes.GraphQLNonNull; import java.util.List; import org.hypertrace.core.graphql.common.schema.results.ResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; @GraphQLName(ExcludeSpanRuleResultSet.TYPE_NAME) -public interface ExcludeSpanRuleResultSet extends ResultSet { +public interface ExcludeSpanRuleResultSet extends ResultSet { String TYPE_NAME = "ExcludeSpanRuleResultSet"; @Override @GraphQLField @GraphQLNonNull @GraphQLName(RESULT_SET_RESULTS_NAME) - List results(); + List results(); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java new file mode 100644 index 00000000..84e04183 --- /dev/null +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java @@ -0,0 +1,8 @@ +package org.hypertrace.graphql.spanprocessing.schema.rule; + +import graphql.annotations.annotationTypes.GraphQLName; + +@GraphQLName(ExcludeSpanRuleDetails.TYPE_NAME) +public interface ExcludeSpanRuleDetails extends ExcludeSpanRule, ExcludeSpanRuleMetadata { + String TYPE_NAME = "ExcludeSpanRuleDetails"; +} diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java new file mode 100644 index 00000000..24f03b56 --- /dev/null +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java @@ -0,0 +1,24 @@ +package org.hypertrace.graphql.spanprocessing.schema.rule; + +import graphql.annotations.annotationTypes.GraphQLField; +import graphql.annotations.annotationTypes.GraphQLName; +import graphql.annotations.annotationTypes.GraphQLNonNull; +import java.time.Instant; + +@GraphQLName(ExcludeSpanRuleMetadata.TYPE_NAME) +public interface ExcludeSpanRuleMetadata { + String TYPE_NAME = "ExcludeSpanRuleMetadata"; + + String CREATION_TIME_KEY = "creationTime"; + String LAST_UPDATED_TIME_KEY = "lastUpdatedTime"; + + @GraphQLField + @GraphQLName(CREATION_TIME_KEY) + @GraphQLNonNull + Instant creationTime(); + + @GraphQLField + @GraphQLName(LAST_UPDATED_TIME_KEY) + @GraphQLNonNull + Instant lastUpdatedTime(); +} From 6dfd0e0ee1b63f0a470217374aa99c6b73aaf01d Mon Sep 17 00:00:00 2001 From: SrikarMannepalli Date: Fri, 25 Feb 2022 15:45:26 +0530 Subject: [PATCH 2/3] address review comments --- ...erviceSpanProcessingResponseConverter.java | 24 +++++++++---------- ...igServiceSpanProcessingRuleConverter.java} | 16 ++++++------- .../ConfigServiceSpanProcessingRuleDao.java | 6 ++--- .../dao/SpanProcessingRuleDao.java | 6 ++--- .../ExcludeSpanCreateRuleMutator.java | 8 +++---- .../ExcludeSpanUpdateRuleMutator.java | 8 +++---- .../SpanProcessingMutationSchema.java | 6 ++--- .../query/ExcludeSpanRuleResultSet.java | 6 ++--- .../schema/rule/ExcludeSpanRule.java | 16 +++++++++++++ .../schema/rule/ExcludeSpanRuleDetails.java | 8 ------- .../schema/rule/ExcludeSpanRuleMetadata.java | 24 ------------------- 11 files changed, 55 insertions(+), 73 deletions(-) rename hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/{ConfigServiceSpanProcessingRuleDetailsConverter.java => ConfigServiceSpanProcessingRuleConverter.java} (79%) delete mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java delete mode 100644 hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java index 922aa29e..7eb44fa8 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java @@ -10,7 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; import org.hypertrace.span.processing.config.service.v1.CreateExcludeSpanRuleResponse; import org.hypertrace.span.processing.config.service.v1.DeleteExcludeSpanRuleResponse; import org.hypertrace.span.processing.config.service.v1.GetAllExcludeSpanRulesResponse; @@ -19,21 +19,21 @@ @Slf4j public class ConfigServiceSpanProcessingResponseConverter { - private final ConfigServiceSpanProcessingRuleDetailsConverter ruleDetailsConverter; + private final ConfigServiceSpanProcessingRuleConverter ruleConverter; @Inject ConfigServiceSpanProcessingResponseConverter( - ConfigServiceSpanProcessingRuleDetailsConverter ruleDetailsConverter) { - this.ruleDetailsConverter = ruleDetailsConverter; + ConfigServiceSpanProcessingRuleConverter ruleConverter) { + this.ruleConverter = ruleConverter; } Single convert(GetAllExcludeSpanRulesResponse response) { return this.convertResultSet(response.getRuleDetailsList()); } - private Maybe convertOrDrop( + private Maybe convertOrDrop( org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) { - return this.ruleDetailsConverter + return this.ruleConverter .convert(ruleDetails) .doOnError(error -> log.error("Error converting ExcludeSpanRule", error)) .onErrorComplete(); @@ -47,12 +47,12 @@ private Single convertResultSet( .map(ConvertedExcludeSpanRuleResultSet::new); } - Single convert(CreateExcludeSpanRuleResponse response) { - return this.ruleDetailsConverter.convert(response.getRuleDetails()); + Single convert(CreateExcludeSpanRuleResponse response) { + return this.ruleConverter.convert(response.getRuleDetails()); } - Single convert(UpdateExcludeSpanRuleResponse response) { - return this.ruleDetailsConverter.convert(response.getRuleDetails()); + Single convert(UpdateExcludeSpanRuleResponse response) { + return this.ruleConverter.convert(response.getRuleDetails()); } Single convert(DeleteExcludeSpanRuleResponse response) { @@ -69,11 +69,11 @@ private static class DefaultDeleteSpanProcessingRuleResponse @Value @Accessors(fluent = true) private static class ConvertedExcludeSpanRuleResultSet implements ExcludeSpanRuleResultSet { - List results; + List results; long total; long count; - private ConvertedExcludeSpanRuleResultSet(List results) { + private ConvertedExcludeSpanRuleResultSet(List results) { this.results = results; this.count = results.size(); this.total = results.size(); diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java similarity index 79% rename from hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java rename to hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java index 59e03751..3657520e 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDetailsConverter.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java @@ -6,30 +6,28 @@ import lombok.Value; import lombok.experimental.Accessors; import org.hypertrace.core.graphql.common.utils.Converter; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter; -class ConfigServiceSpanProcessingRuleDetailsConverter +class ConfigServiceSpanProcessingRuleConverter implements Converter< - org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails, - ExcludeSpanRuleDetails> { + org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails, ExcludeSpanRule> { private final ConfigServiceSpanFilterConverter filterConverter; @Inject - ConfigServiceSpanProcessingRuleDetailsConverter( - ConfigServiceSpanFilterConverter filterConverter) { + ConfigServiceSpanProcessingRuleConverter(ConfigServiceSpanFilterConverter filterConverter) { this.filterConverter = filterConverter; } @Override - public Single convert( + public Single convert( org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) { return this.filterConverter .convert(ruleDetails.getRule().getRuleInfo().getFilter()) .map( spanProcessingRuleFilter -> - new ConvertedExcludeSpanRuleDetails( + new ConvertedExcludeSpanRule( ruleDetails.getRule().getId(), ruleDetails.getRule().getRuleInfo().getName(), spanProcessingRuleFilter, @@ -43,7 +41,7 @@ public Single convert( @Value @Accessors(fluent = true) - private static class ConvertedExcludeSpanRuleDetails implements ExcludeSpanRuleDetails { + private static class ConvertedExcludeSpanRule implements ExcludeSpanRule { String id; String name; SpanProcessingRuleFilter spanFilter; diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java index def93af8..6da5e3d2 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleDao.java @@ -14,7 +14,7 @@ import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; import org.hypertrace.span.processing.config.service.v1.GetAllExcludeSpanRulesRequest; import org.hypertrace.span.processing.config.service.v1.SpanProcessingConfigServiceGrpc; @@ -61,7 +61,7 @@ public Single getRules(ContextualRequest request) { } @Override - public Single createRule(ExcludeSpanCreateRuleRequest request) { + public Single createRule(ExcludeSpanCreateRuleRequest request) { return Single.fromFuture( this.grpcContextBuilder .build(request.context()) @@ -75,7 +75,7 @@ public Single createRule(ExcludeSpanCreateRuleRequest re } @Override - public Single updateRule(ExcludeSpanUpdateRuleRequest request) { + public Single updateRule(ExcludeSpanUpdateRuleRequest request) { return Single.fromFuture( this.grpcContextBuilder .build(request.context()) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java index a70a0387..8117614e 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/SpanProcessingRuleDao.java @@ -7,14 +7,14 @@ import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest; import org.hypertrace.graphql.spanprocessing.schema.mutation.DeleteSpanProcessingRuleResponse; import org.hypertrace.graphql.spanprocessing.schema.query.ExcludeSpanRuleResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; public interface SpanProcessingRuleDao { Single getRules(ContextualRequest request); - Single createRule(ExcludeSpanCreateRuleRequest request); + Single createRule(ExcludeSpanCreateRuleRequest request); - Single updateRule(ExcludeSpanUpdateRuleRequest request); + Single updateRule(ExcludeSpanUpdateRuleRequest request); Single deleteRule(ExcludeSpanDeleteRuleRequest request); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java index fd75864b..f3095049 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java @@ -7,16 +7,16 @@ import org.hypertrace.core.graphql.common.fetcher.InjectableDataFetcher; import org.hypertrace.graphql.spanprocessing.dao.SpanProcessingRuleDao; import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanCreateRuleRequestBuilder; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; -public class ExcludeSpanCreateRuleMutator extends InjectableDataFetcher { +public class ExcludeSpanCreateRuleMutator extends InjectableDataFetcher { public ExcludeSpanCreateRuleMutator() { super(SpanProcessingCreateRuleMutatorImpl.class); } static final class SpanProcessingCreateRuleMutatorImpl - implements DataFetcher> { + implements DataFetcher> { private final SpanProcessingRuleDao spanProcessingRuleDao; private final ExcludeSpanCreateRuleRequestBuilder requestBuilder; @@ -29,7 +29,7 @@ static final class SpanProcessingCreateRuleMutatorImpl } @Override - public CompletableFuture get(DataFetchingEnvironment environment) { + public CompletableFuture get(DataFetchingEnvironment environment) { return this.requestBuilder .build(environment.getContext(), environment.getArguments()) .flatMap(this.spanProcessingRuleDao::createRule) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java index 1d7c8dec..fcb5a226 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java @@ -7,16 +7,16 @@ import org.hypertrace.core.graphql.common.fetcher.InjectableDataFetcher; import org.hypertrace.graphql.spanprocessing.dao.SpanProcessingRuleDao; import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequestBuilder; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; -public class ExcludeSpanUpdateRuleMutator extends InjectableDataFetcher { +public class ExcludeSpanUpdateRuleMutator extends InjectableDataFetcher { public ExcludeSpanUpdateRuleMutator() { super(SpanProcessingUpdateRuleMutatorImpl.class); } static final class SpanProcessingUpdateRuleMutatorImpl - implements DataFetcher> { + implements DataFetcher> { private final SpanProcessingRuleDao spanProcessingRuleDao; private final ExcludeSpanUpdateRuleRequestBuilder requestBuilder; @@ -29,7 +29,7 @@ static final class SpanProcessingUpdateRuleMutatorImpl } @Override - public CompletableFuture get(DataFetchingEnvironment environment) { + public CompletableFuture get(DataFetchingEnvironment environment) { return this.requestBuilder .build(environment.getContext(), environment.getArguments()) .flatMap(this.spanProcessingRuleDao::updateRule) diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java index cf18e04b..7fc0f980 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/SpanProcessingMutationSchema.java @@ -7,7 +7,7 @@ import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanCreateRuleMutator; import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanDeleteRuleMutator; import org.hypertrace.graphql.spanprocessing.fetcher.mutation.ExcludeSpanUpdateRuleMutator; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; public interface SpanProcessingMutationSchema { String CREATE_EXCLUDE_SPAN_RULE_MUTATION_NAME = "createExcludeSpanRule"; @@ -18,7 +18,7 @@ public interface SpanProcessingMutationSchema { @GraphQLName(CREATE_EXCLUDE_SPAN_RULE_MUTATION_NAME) @GraphQLNonNull @GraphQLDataFetcher(ExcludeSpanCreateRuleMutator.class) - ExcludeSpanRuleDetails createExcludeSpanRule( + ExcludeSpanRule createExcludeSpanRule( @GraphQLName(ExcludeSpanRuleCreate.ARGUMENT_NAME) @GraphQLNonNull ExcludeSpanRuleCreate input); @@ -26,7 +26,7 @@ ExcludeSpanRuleDetails createExcludeSpanRule( @GraphQLName(UPDATE_EXCLUDE_SPAN_RULE_MUTATION_NAME) @GraphQLNonNull @GraphQLDataFetcher(ExcludeSpanUpdateRuleMutator.class) - ExcludeSpanRuleDetails updateExcludeSpanRule( + ExcludeSpanRule updateExcludeSpanRule( @GraphQLName(ExcludeSpanRuleUpdate.ARGUMENT_NAME) @GraphQLNonNull ExcludeSpanRuleUpdate input); diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java index d6d03b63..7bb6607d 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/query/ExcludeSpanRuleResultSet.java @@ -5,15 +5,15 @@ import graphql.annotations.annotationTypes.GraphQLNonNull; import java.util.List; import org.hypertrace.core.graphql.common.schema.results.ResultSet; -import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRuleDetails; +import org.hypertrace.graphql.spanprocessing.schema.rule.ExcludeSpanRule; @GraphQLName(ExcludeSpanRuleResultSet.TYPE_NAME) -public interface ExcludeSpanRuleResultSet extends ResultSet { +public interface ExcludeSpanRuleResultSet extends ResultSet { String TYPE_NAME = "ExcludeSpanRuleResultSet"; @Override @GraphQLField @GraphQLNonNull @GraphQLName(RESULT_SET_RESULTS_NAME) - List results(); + List results(); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRule.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRule.java index 01dc080e..1f8943a5 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRule.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRule.java @@ -1,9 +1,25 @@ package org.hypertrace.graphql.spanprocessing.schema.rule; +import graphql.annotations.annotationTypes.GraphQLField; import graphql.annotations.annotationTypes.GraphQLName; +import graphql.annotations.annotationTypes.GraphQLNonNull; +import java.time.Instant; import org.hypertrace.core.graphql.common.schema.id.Identifiable; @GraphQLName(ExcludeSpanRule.TYPE_NAME) public interface ExcludeSpanRule extends Identifiable, ExcludeSpanRuleInfo { String TYPE_NAME = "ExcludeSpanRule"; + + String CREATION_TIME_KEY = "creationTime"; + String LAST_UPDATED_TIME_KEY = "lastUpdatedTime"; + + @GraphQLField + @GraphQLName(CREATION_TIME_KEY) + @GraphQLNonNull + Instant creationTime(); + + @GraphQLField + @GraphQLName(LAST_UPDATED_TIME_KEY) + @GraphQLNonNull + Instant lastUpdatedTime(); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java deleted file mode 100644 index 84e04183..00000000 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleDetails.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.hypertrace.graphql.spanprocessing.schema.rule; - -import graphql.annotations.annotationTypes.GraphQLName; - -@GraphQLName(ExcludeSpanRuleDetails.TYPE_NAME) -public interface ExcludeSpanRuleDetails extends ExcludeSpanRule, ExcludeSpanRuleMetadata { - String TYPE_NAME = "ExcludeSpanRuleDetails"; -} diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java deleted file mode 100644 index 24f03b56..00000000 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleMetadata.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.hypertrace.graphql.spanprocessing.schema.rule; - -import graphql.annotations.annotationTypes.GraphQLField; -import graphql.annotations.annotationTypes.GraphQLName; -import graphql.annotations.annotationTypes.GraphQLNonNull; -import java.time.Instant; - -@GraphQLName(ExcludeSpanRuleMetadata.TYPE_NAME) -public interface ExcludeSpanRuleMetadata { - String TYPE_NAME = "ExcludeSpanRuleMetadata"; - - String CREATION_TIME_KEY = "creationTime"; - String LAST_UPDATED_TIME_KEY = "lastUpdatedTime"; - - @GraphQLField - @GraphQLName(CREATION_TIME_KEY) - @GraphQLNonNull - Instant creationTime(); - - @GraphQLField - @GraphQLName(LAST_UPDATED_TIME_KEY) - @GraphQLNonNull - Instant lastUpdatedTime(); -} From 537b700c7384ced8f6be68d75994f126163a02f8 Mon Sep 17 00:00:00 2001 From: SrikarMannepalli Date: Fri, 25 Feb 2022 16:50:22 +0530 Subject: [PATCH 3/3] add disabled --- hypertrace-graphql-platform/build.gradle.kts | 2 +- ...ServiceSpanProcessingRequestConverter.java | 22 ++++++------------- ...figServiceSpanProcessingRuleConverter.java | 2 ++ ...eSpanCreateInputDeserializationConfig.java | 1 + ...eSpanUpdateInputDeserializationConfig.java | 1 + .../mutation/ExcludeSpanRuleUpdate.java | 7 ++++++ .../schema/rule/ExcludeSpanRuleInfo.java | 6 +++++ 7 files changed, 25 insertions(+), 16 deletions(-) diff --git a/hypertrace-graphql-platform/build.gradle.kts b/hypertrace-graphql-platform/build.gradle.kts index 97b1af61..5743b796 100644 --- a/hypertrace-graphql-platform/build.gradle.kts +++ b/hypertrace-graphql-platform/build.gradle.kts @@ -13,6 +13,6 @@ dependencies { api("org.hypertrace.config.service:spaces-config-service-api:0.1.1") api("org.hypertrace.config.service:labels-config-service-api:0.1.15") api("org.hypertrace.config.service:label-application-rule-config-service-api:0.1.16") - api("org.hypertrace.config.service:span-processing-config-service-api:0.1.24") + api("org.hypertrace.config.service:span-processing-config-service-api:0.1.25") } } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRequestConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRequestConverter.java index 556e7517..685f9210 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRequestConverter.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRequestConverter.java @@ -6,7 +6,6 @@ import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest; import org.hypertrace.graphql.spanprocessing.schema.mutation.ExcludeSpanRuleCreate; import org.hypertrace.graphql.spanprocessing.schema.mutation.ExcludeSpanRuleUpdate; -import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter; import org.hypertrace.span.processing.config.service.v1.CreateExcludeSpanRuleRequest; import org.hypertrace.span.processing.config.service.v1.DeleteExcludeSpanRuleRequest; import org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleInfo; @@ -32,6 +31,7 @@ private ExcludeSpanRuleInfo convertInput(ExcludeSpanRuleCreate excludeSpanRuleCr return ExcludeSpanRuleInfo.newBuilder() .setName(excludeSpanRuleCreate.name()) .setFilter(this.filterConverter.convert(excludeSpanRuleCreate.spanFilter())) + .setDisabled(excludeSpanRuleCreate.disabled()) .build(); } @@ -42,20 +42,12 @@ UpdateExcludeSpanRuleRequest convert(ExcludeSpanUpdateRuleRequest request) { } private UpdateExcludeSpanRule convertInput(ExcludeSpanRuleUpdate excludeSpanRuleUpdate) { - UpdateExcludeSpanRule.Builder updateExcludeSpanRuleBuilder = - UpdateExcludeSpanRule.newBuilder().setId(excludeSpanRuleUpdate.id()); - String name = excludeSpanRuleUpdate.name(); - SpanProcessingRuleFilter filter = excludeSpanRuleUpdate.spanFilter(); - if (name != null) { - updateExcludeSpanRuleBuilder = - updateExcludeSpanRuleBuilder.setName(excludeSpanRuleUpdate.name()); - } - if (filter != null) { - updateExcludeSpanRuleBuilder = - updateExcludeSpanRuleBuilder.setFilter( - this.filterConverter.convert(excludeSpanRuleUpdate.spanFilter())); - } - return updateExcludeSpanRuleBuilder.build(); + return UpdateExcludeSpanRule.newBuilder() + .setId(excludeSpanRuleUpdate.id()) + .setName(excludeSpanRuleUpdate.name()) + .setFilter(this.filterConverter.convert(excludeSpanRuleUpdate.spanFilter())) + .setDisabled(excludeSpanRuleUpdate.disabled()) + .build(); } DeleteExcludeSpanRuleRequest convert(ExcludeSpanDeleteRuleRequest request) { diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java index 3657520e..fb076791 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java @@ -31,6 +31,7 @@ public Single convert( ruleDetails.getRule().getId(), ruleDetails.getRule().getRuleInfo().getName(), spanProcessingRuleFilter, + ruleDetails.getRule().getRuleInfo().getDisabled(), Instant.ofEpochSecond( ruleDetails.getMetadata().getCreationTimestamp().getSeconds(), ruleDetails.getMetadata().getCreationTimestamp().getNanos()), @@ -45,6 +46,7 @@ private static class ConvertedExcludeSpanRule implements ExcludeSpanRule { String id; String name; SpanProcessingRuleFilter spanFilter; + boolean disabled; Instant creationTime; Instant lastUpdatedTime; } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanCreateInputDeserializationConfig.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanCreateInputDeserializationConfig.java index 45fecd86..58760d6c 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanCreateInputDeserializationConfig.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanCreateInputDeserializationConfig.java @@ -47,6 +47,7 @@ public List jacksonModules() { private static class DefaultExcludeSpanRuleCreate implements ExcludeSpanRuleCreate { String name; SpanProcessingRuleFilter spanFilter; + boolean disabled; } @Value diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanUpdateInputDeserializationConfig.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanUpdateInputDeserializationConfig.java index a93197ca..f1226d7c 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanUpdateInputDeserializationConfig.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanUpdateInputDeserializationConfig.java @@ -48,6 +48,7 @@ private static class DefaultExcludeSpanRuleUpdate implements ExcludeSpanRuleUpda String id; String name; SpanProcessingRuleFilter spanFilter; + boolean disabled; } @Value diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/ExcludeSpanRuleUpdate.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/ExcludeSpanRuleUpdate.java index e4ad1299..2eeb61a2 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/ExcludeSpanRuleUpdate.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/ExcludeSpanRuleUpdate.java @@ -2,6 +2,7 @@ import graphql.annotations.annotationTypes.GraphQLField; import graphql.annotations.annotationTypes.GraphQLName; +import graphql.annotations.annotationTypes.GraphQLNonNull; import org.hypertrace.core.graphql.common.schema.id.Identifiable; import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter; @@ -12,6 +13,7 @@ public interface ExcludeSpanRuleUpdate extends Identifiable { String NAME_KEY = "name"; String SPAN_PROCESSING_FILTER_KEY = "spanFilter"; + String DISABLED_KEY = "disabled"; @GraphQLField @GraphQLName(NAME_KEY) @@ -20,4 +22,9 @@ public interface ExcludeSpanRuleUpdate extends Identifiable { @GraphQLField @GraphQLName(SPAN_PROCESSING_FILTER_KEY) SpanProcessingRuleFilter spanFilter(); + + @GraphQLField + @GraphQLName(DISABLED_KEY) + @GraphQLNonNull + boolean disabled(); } diff --git a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleInfo.java b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleInfo.java index 5ee6c50b..092dc555 100644 --- a/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleInfo.java +++ b/hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleInfo.java @@ -11,6 +11,7 @@ public interface ExcludeSpanRuleInfo { String NAME_KEY = "name"; String SPAN_FILTER_KEY = "spanFilter"; + String DISABLED_KEY = "disabled"; @GraphQLField @GraphQLName(NAME_KEY) @@ -21,4 +22,9 @@ public interface ExcludeSpanRuleInfo { @GraphQLName(SPAN_FILTER_KEY) @GraphQLNonNull SpanProcessingRuleFilter spanFilter(); + + @GraphQLField + @GraphQLName(DISABLED_KEY) + @GraphQLNonNull + boolean disabled(); }