Skip to content

Commit 26fcc89

Browse files
add creation and last updated timestamps (#131)
* add creation and last updated timestamps * address review comments * add disabled
1 parent 3a9bd2c commit 26fcc89

11 files changed

+63
-29
lines changed

hypertrace-graphql-platform/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ dependencies {
1313
api("org.hypertrace.config.service:spaces-config-service-api:0.1.1")
1414
api("org.hypertrace.config.service:labels-config-service-api:0.1.15")
1515
api("org.hypertrace.config.service:label-application-rule-config-service-api:0.1.16")
16-
api("org.hypertrace.config.service:span-processing-config-service-api:0.1.23")
16+
api("org.hypertrace.config.service:span-processing-config-service-api:0.1.25")
1717
}
1818
}

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRequestConverter.java

+7-15
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.hypertrace.graphql.spanprocessing.request.mutation.ExcludeSpanUpdateRuleRequest;
77
import org.hypertrace.graphql.spanprocessing.schema.mutation.ExcludeSpanRuleCreate;
88
import org.hypertrace.graphql.spanprocessing.schema.mutation.ExcludeSpanRuleUpdate;
9-
import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter;
109
import org.hypertrace.span.processing.config.service.v1.CreateExcludeSpanRuleRequest;
1110
import org.hypertrace.span.processing.config.service.v1.DeleteExcludeSpanRuleRequest;
1211
import org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleInfo;
@@ -32,6 +31,7 @@ private ExcludeSpanRuleInfo convertInput(ExcludeSpanRuleCreate excludeSpanRuleCr
3231
return ExcludeSpanRuleInfo.newBuilder()
3332
.setName(excludeSpanRuleCreate.name())
3433
.setFilter(this.filterConverter.convert(excludeSpanRuleCreate.spanFilter()))
34+
.setDisabled(excludeSpanRuleCreate.disabled())
3535
.build();
3636
}
3737

@@ -42,20 +42,12 @@ UpdateExcludeSpanRuleRequest convert(ExcludeSpanUpdateRuleRequest request) {
4242
}
4343

4444
private UpdateExcludeSpanRule convertInput(ExcludeSpanRuleUpdate excludeSpanRuleUpdate) {
45-
UpdateExcludeSpanRule.Builder updateExcludeSpanRuleBuilder =
46-
UpdateExcludeSpanRule.newBuilder().setId(excludeSpanRuleUpdate.id());
47-
String name = excludeSpanRuleUpdate.name();
48-
SpanProcessingRuleFilter filter = excludeSpanRuleUpdate.spanFilter();
49-
if (name != null) {
50-
updateExcludeSpanRuleBuilder =
51-
updateExcludeSpanRuleBuilder.setName(excludeSpanRuleUpdate.name());
52-
}
53-
if (filter != null) {
54-
updateExcludeSpanRuleBuilder =
55-
updateExcludeSpanRuleBuilder.setFilter(
56-
this.filterConverter.convert(excludeSpanRuleUpdate.spanFilter()));
57-
}
58-
return updateExcludeSpanRuleBuilder.build();
45+
return UpdateExcludeSpanRule.newBuilder()
46+
.setId(excludeSpanRuleUpdate.id())
47+
.setName(excludeSpanRuleUpdate.name())
48+
.setFilter(this.filterConverter.convert(excludeSpanRuleUpdate.spanFilter()))
49+
.setDisabled(excludeSpanRuleUpdate.disabled())
50+
.build();
5951
}
6052

6153
DeleteExcludeSpanRuleRequest convert(ExcludeSpanDeleteRuleRequest request) {

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingResponseConverter.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,31 @@ public class ConfigServiceSpanProcessingResponseConverter {
2828
}
2929

3030
Single<ExcludeSpanRuleResultSet> convert(GetAllExcludeSpanRulesResponse response) {
31-
return this.convertResultSet(response.getRulesList());
31+
return this.convertResultSet(response.getRuleDetailsList());
3232
}
3333

3434
private Maybe<ExcludeSpanRule> convertOrDrop(
35-
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule rule) {
35+
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) {
3636
return this.ruleConverter
37-
.convert(rule)
37+
.convert(ruleDetails)
3838
.doOnError(error -> log.error("Error converting ExcludeSpanRule", error))
3939
.onErrorComplete();
4040
}
4141

4242
private Single<ExcludeSpanRuleResultSet> convertResultSet(
43-
List<org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule> rules) {
44-
return Observable.fromIterable(rules)
43+
List<org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails> ruleDetails) {
44+
return Observable.fromIterable(ruleDetails)
4545
.concatMapMaybe(this::convertOrDrop)
4646
.toList()
4747
.map(ConvertedExcludeSpanRuleResultSet::new);
4848
}
4949

5050
Single<ExcludeSpanRule> convert(CreateExcludeSpanRuleResponse response) {
51-
return this.ruleConverter.convert(response.getRule());
51+
return this.ruleConverter.convert(response.getRuleDetails());
5252
}
5353

5454
Single<ExcludeSpanRule> convert(UpdateExcludeSpanRuleResponse response) {
55-
return this.ruleConverter.convert(response.getRule());
55+
return this.ruleConverter.convert(response.getRuleDetails());
5656
}
5757

5858
Single<DeleteSpanProcessingRuleResponse> convert(DeleteExcludeSpanRuleResponse response) {

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/dao/ConfigServiceSpanProcessingRuleConverter.java

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.hypertrace.graphql.spanprocessing.dao;
22

33
import io.reactivex.rxjava3.core.Single;
4+
import java.time.Instant;
45
import javax.inject.Inject;
56
import lombok.Value;
67
import lombok.experimental.Accessors;
@@ -10,7 +11,7 @@
1011

1112
class ConfigServiceSpanProcessingRuleConverter
1213
implements Converter<
13-
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule, ExcludeSpanRule> {
14+
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails, ExcludeSpanRule> {
1415

1516
private final ConfigServiceSpanFilterConverter filterConverter;
1617

@@ -21,13 +22,22 @@ class ConfigServiceSpanProcessingRuleConverter
2122

2223
@Override
2324
public Single<ExcludeSpanRule> convert(
24-
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule rule) {
25+
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails ruleDetails) {
2526
return this.filterConverter
26-
.convert(rule.getRuleInfo().getFilter())
27+
.convert(ruleDetails.getRule().getRuleInfo().getFilter())
2728
.map(
2829
spanProcessingRuleFilter ->
2930
new ConvertedExcludeSpanRule(
30-
rule.getId(), rule.getRuleInfo().getName(), spanProcessingRuleFilter));
31+
ruleDetails.getRule().getId(),
32+
ruleDetails.getRule().getRuleInfo().getName(),
33+
spanProcessingRuleFilter,
34+
ruleDetails.getRule().getRuleInfo().getDisabled(),
35+
Instant.ofEpochSecond(
36+
ruleDetails.getMetadata().getCreationTimestamp().getSeconds(),
37+
ruleDetails.getMetadata().getCreationTimestamp().getNanos()),
38+
Instant.ofEpochSecond(
39+
ruleDetails.getMetadata().getLastUpdatedTimestamp().getSeconds(),
40+
ruleDetails.getMetadata().getLastUpdatedTimestamp().getNanos())));
3141
}
3242

3343
@Value
@@ -36,5 +46,8 @@ private static class ConvertedExcludeSpanRule implements ExcludeSpanRule {
3646
String id;
3747
String name;
3848
SpanProcessingRuleFilter spanFilter;
49+
boolean disabled;
50+
Instant creationTime;
51+
Instant lastUpdatedTime;
3952
}
4053
}

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanCreateInputDeserializationConfig.java

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public List<Module> jacksonModules() {
4747
private static class DefaultExcludeSpanRuleCreate implements ExcludeSpanRuleCreate {
4848
String name;
4949
SpanProcessingRuleFilter spanFilter;
50+
boolean disabled;
5051
}
5152

5253
@Value

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/deserialization/ExcludeSpanUpdateInputDeserializationConfig.java

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ private static class DefaultExcludeSpanRuleUpdate implements ExcludeSpanRuleUpda
4848
String id;
4949
String name;
5050
SpanProcessingRuleFilter spanFilter;
51+
boolean disabled;
5152
}
5253

5354
@Value

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanCreateRuleMutator.java

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ static final class SpanProcessingCreateRuleMutatorImpl
3030

3131
@Override
3232
public CompletableFuture<ExcludeSpanRule> get(DataFetchingEnvironment environment) {
33-
3433
return this.requestBuilder
3534
.build(environment.getContext(), environment.getArguments())
3635
.flatMap(this.spanProcessingRuleDao::createRule)

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/fetcher/mutation/ExcludeSpanUpdateRuleMutator.java

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ static final class SpanProcessingUpdateRuleMutatorImpl
3030

3131
@Override
3232
public CompletableFuture<ExcludeSpanRule> get(DataFetchingEnvironment environment) {
33-
3433
return this.requestBuilder
3534
.build(environment.getContext(), environment.getArguments())
3635
.flatMap(this.spanProcessingRuleDao::updateRule)

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/mutation/ExcludeSpanRuleUpdate.java

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import graphql.annotations.annotationTypes.GraphQLField;
44
import graphql.annotations.annotationTypes.GraphQLName;
5+
import graphql.annotations.annotationTypes.GraphQLNonNull;
56
import org.hypertrace.core.graphql.common.schema.id.Identifiable;
67
import org.hypertrace.graphql.spanprocessing.schema.rule.filter.SpanProcessingRuleFilter;
78

@@ -12,6 +13,7 @@ public interface ExcludeSpanRuleUpdate extends Identifiable {
1213

1314
String NAME_KEY = "name";
1415
String SPAN_PROCESSING_FILTER_KEY = "spanFilter";
16+
String DISABLED_KEY = "disabled";
1517

1618
@GraphQLField
1719
@GraphQLName(NAME_KEY)
@@ -20,4 +22,9 @@ public interface ExcludeSpanRuleUpdate extends Identifiable {
2022
@GraphQLField
2123
@GraphQLName(SPAN_PROCESSING_FILTER_KEY)
2224
SpanProcessingRuleFilter spanFilter();
25+
26+
@GraphQLField
27+
@GraphQLName(DISABLED_KEY)
28+
@GraphQLNonNull
29+
boolean disabled();
2330
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
package org.hypertrace.graphql.spanprocessing.schema.rule;
22

3+
import graphql.annotations.annotationTypes.GraphQLField;
34
import graphql.annotations.annotationTypes.GraphQLName;
5+
import graphql.annotations.annotationTypes.GraphQLNonNull;
6+
import java.time.Instant;
47
import org.hypertrace.core.graphql.common.schema.id.Identifiable;
58

69
@GraphQLName(ExcludeSpanRule.TYPE_NAME)
710
public interface ExcludeSpanRule extends Identifiable, ExcludeSpanRuleInfo {
811
String TYPE_NAME = "ExcludeSpanRule";
12+
13+
String CREATION_TIME_KEY = "creationTime";
14+
String LAST_UPDATED_TIME_KEY = "lastUpdatedTime";
15+
16+
@GraphQLField
17+
@GraphQLName(CREATION_TIME_KEY)
18+
@GraphQLNonNull
19+
Instant creationTime();
20+
21+
@GraphQLField
22+
@GraphQLName(LAST_UPDATED_TIME_KEY)
23+
@GraphQLNonNull
24+
Instant lastUpdatedTime();
925
}

hypertrace-graphql-span-processing-schema/src/main/java/org/hypertrace/graphql/spanprocessing/schema/rule/ExcludeSpanRuleInfo.java

+6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public interface ExcludeSpanRuleInfo {
1111

1212
String NAME_KEY = "name";
1313
String SPAN_FILTER_KEY = "spanFilter";
14+
String DISABLED_KEY = "disabled";
1415

1516
@GraphQLField
1617
@GraphQLName(NAME_KEY)
@@ -21,4 +22,9 @@ public interface ExcludeSpanRuleInfo {
2122
@GraphQLName(SPAN_FILTER_KEY)
2223
@GraphQLNonNull
2324
SpanProcessingRuleFilter spanFilter();
25+
26+
@GraphQLField
27+
@GraphQLName(DISABLED_KEY)
28+
@GraphQLNonNull
29+
boolean disabled();
2430
}

0 commit comments

Comments
 (0)