Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hypertrace-graphql-platform/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<ExcludeSpanRuleResultSet> convert(GetAllExcludeSpanRulesResponse response) {
return this.convertResultSet(response.getRulesList());
return this.convertResultSet(response.getRuleDetailsList());
}

private Maybe<ExcludeSpanRule> convertOrDrop(
org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule rule) {
return this.ruleConverter
.convert(rule)
private Maybe<ExcludeSpanRuleDetails> 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<ExcludeSpanRuleResultSet> convertResultSet(
List<org.hypertrace.span.processing.config.service.v1.ExcludeSpanRule> rules) {
return Observable.fromIterable(rules)
List<org.hypertrace.span.processing.config.service.v1.ExcludeSpanRuleDetails> ruleDetails) {
return Observable.fromIterable(ruleDetails)
.concatMapMaybe(this::convertOrDrop)
.toList()
.map(ConvertedExcludeSpanRuleResultSet::new);
}

Single<ExcludeSpanRule> convert(CreateExcludeSpanRuleResponse response) {
return this.ruleConverter.convert(response.getRule());
Single<ExcludeSpanRuleDetails> convert(CreateExcludeSpanRuleResponse response) {
return this.ruleDetailsConverter.convert(response.getRuleDetails());
}

Single<ExcludeSpanRule> convert(UpdateExcludeSpanRuleResponse response) {
return this.ruleConverter.convert(response.getRule());
Single<ExcludeSpanRuleDetails> convert(UpdateExcludeSpanRuleResponse response) {
return this.ruleDetailsConverter.convert(response.getRuleDetails());
}

Single<DeleteSpanProcessingRuleResponse> convert(DeleteExcludeSpanRuleResponse response) {
Expand All @@ -69,11 +69,11 @@ private static class DefaultDeleteSpanProcessingRuleResponse
@Value
@Accessors(fluent = true)
private static class ConvertedExcludeSpanRuleResultSet implements ExcludeSpanRuleResultSet {
List<ExcludeSpanRule> results;
List<ExcludeSpanRuleDetails> results;
long total;
long count;

private ConvertedExcludeSpanRuleResultSet(List<ExcludeSpanRule> results) {
private ConvertedExcludeSpanRuleResultSet(List<ExcludeSpanRuleDetails> results) {
this.results = results;
this.count = results.size();
this.total = results.size();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -61,7 +61,7 @@ public Single<ExcludeSpanRuleResultSet> getRules(ContextualRequest request) {
}

@Override
public Single<ExcludeSpanRule> createRule(ExcludeSpanCreateRuleRequest request) {
public Single<ExcludeSpanRuleDetails> createRule(ExcludeSpanCreateRuleRequest request) {
return Single.fromFuture(
this.grpcContextBuilder
.build(request.context())
Expand All @@ -75,7 +75,7 @@ public Single<ExcludeSpanRule> createRule(ExcludeSpanCreateRuleRequest request)
}

@Override
public Single<ExcludeSpanRule> updateRule(ExcludeSpanUpdateRuleRequest request) {
public Single<ExcludeSpanRuleDetails> updateRule(ExcludeSpanUpdateRuleRequest request) {
return Single.fromFuture(
this.grpcContextBuilder
.build(request.context())
Expand Down
Original file line number Diff line number Diff line change
@@ -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<ExcludeSpanRuleDetails> 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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<ExcludeSpanRuleResultSet> getRules(ContextualRequest request);

Single<ExcludeSpanRule> createRule(ExcludeSpanCreateRuleRequest request);
Single<ExcludeSpanRuleDetails> createRule(ExcludeSpanCreateRuleRequest request);

Single<ExcludeSpanRule> updateRule(ExcludeSpanUpdateRuleRequest request);
Single<ExcludeSpanRuleDetails> updateRule(ExcludeSpanUpdateRuleRequest request);

Single<DeleteSpanProcessingRuleResponse> deleteRule(ExcludeSpanDeleteRuleRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<ExcludeSpanRule> {
public class ExcludeSpanCreateRuleMutator extends InjectableDataFetcher<ExcludeSpanRuleDetails> {

public ExcludeSpanCreateRuleMutator() {
super(SpanProcessingCreateRuleMutatorImpl.class);
}

static final class SpanProcessingCreateRuleMutatorImpl
implements DataFetcher<CompletableFuture<ExcludeSpanRule>> {
implements DataFetcher<CompletableFuture<ExcludeSpanRuleDetails>> {
private final SpanProcessingRuleDao spanProcessingRuleDao;
private final ExcludeSpanCreateRuleRequestBuilder requestBuilder;

Expand All @@ -29,8 +29,7 @@ static final class SpanProcessingCreateRuleMutatorImpl
}

@Override
public CompletableFuture<ExcludeSpanRule> get(DataFetchingEnvironment environment) {

public CompletableFuture<ExcludeSpanRuleDetails> get(DataFetchingEnvironment environment) {
return this.requestBuilder
.build(environment.getContext(), environment.getArguments())
.flatMap(this.spanProcessingRuleDao::createRule)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<ExcludeSpanRule> {
public class ExcludeSpanUpdateRuleMutator extends InjectableDataFetcher<ExcludeSpanRuleDetails> {

public ExcludeSpanUpdateRuleMutator() {
super(SpanProcessingUpdateRuleMutatorImpl.class);
}

static final class SpanProcessingUpdateRuleMutatorImpl
implements DataFetcher<CompletableFuture<ExcludeSpanRule>> {
implements DataFetcher<CompletableFuture<ExcludeSpanRuleDetails>> {
private final SpanProcessingRuleDao spanProcessingRuleDao;
private final ExcludeSpanUpdateRuleRequestBuilder requestBuilder;

Expand All @@ -29,8 +29,7 @@ static final class SpanProcessingUpdateRuleMutatorImpl
}

@Override
public CompletableFuture<ExcludeSpanRule> get(DataFetchingEnvironment environment) {

public CompletableFuture<ExcludeSpanRuleDetails> get(DataFetchingEnvironment environment) {
return this.requestBuilder
.build(environment.getContext(), environment.getArguments())
.flatMap(this.spanProcessingRuleDao::updateRule)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -18,15 +18,15 @@ 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);

@GraphQLField
@GraphQLName(UPDATE_EXCLUDE_SPAN_RULE_MUTATION_NAME)
@GraphQLNonNull
@GraphQLDataFetcher(ExcludeSpanUpdateRuleMutator.class)
ExcludeSpanRule updateExcludeSpanRule(
ExcludeSpanRuleDetails updateExcludeSpanRule(
@GraphQLName(ExcludeSpanRuleUpdate.ARGUMENT_NAME) @GraphQLNonNull
ExcludeSpanRuleUpdate input);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<ExcludeSpanRule> {
public interface ExcludeSpanRuleResultSet extends ResultSet<ExcludeSpanRuleDetails> {
String TYPE_NAME = "ExcludeSpanRuleResultSet";

@Override
@GraphQLField
@GraphQLNonNull
@GraphQLName(RESULT_SET_RESULTS_NAME)
List<ExcludeSpanRule> results();
List<ExcludeSpanRuleDetails> results();
}
Original file line number Diff line number Diff line change
@@ -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";
}
Original file line number Diff line number Diff line change
@@ -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();
}