From 80c02b1a62320e422628104783d0999edc9d36c2 Mon Sep 17 00:00:00 2001 From: SJ Date: Tue, 1 Aug 2023 23:30:55 +0530 Subject: [PATCH] chore(gateway-service): configurable max channel inbound message size --- .../graphql/service/DefaultGraphQlServiceConfig.java | 10 ++++++++++ .../src/main/resources/configs/common/application.conf | 3 +++ .../core/graphql/spi/config/GraphQlServiceConfig.java | 2 ++ 3 files changed, 15 insertions(+) diff --git a/hypertrace-core-graphql-service/src/main/java/org/hypertrace/core/graphql/service/DefaultGraphQlServiceConfig.java b/hypertrace-core-graphql-service/src/main/java/org/hypertrace/core/graphql/service/DefaultGraphQlServiceConfig.java index d6c77495..b882435b 100644 --- a/hypertrace-core-graphql-service/src/main/java/org/hypertrace/core/graphql/service/DefaultGraphQlServiceConfig.java +++ b/hypertrace-core-graphql-service/src/main/java/org/hypertrace/core/graphql/service/DefaultGraphQlServiceConfig.java @@ -29,6 +29,8 @@ class DefaultGraphQlServiceConfig implements GraphQlServiceConfig { private static final String GATEWAY_SERVICE_HOST_PROPERTY = "gateway.service.host"; private static final String GATEWAY_SERVICE_PORT_PROPERTY = "gateway.service.port"; private static final String GATEWAY_SERVICE_CLIENT_TIMEOUT = "gateway.service.timeout"; + private static final String GATEWAY_SERVICE_CLIENT_MAX_INBOUND_MESSAGE_SIZE = + "gateway.service.maxMessageSize.inbound"; private final String serviceName; private final int servicePort; @@ -44,6 +46,7 @@ class DefaultGraphQlServiceConfig implements GraphQlServiceConfig { private final String gatewayServiceHost; private final int gatewayServicePort; private final Duration gatewayServiceTimeout; + private final int gatewayServiceMaxInboundMessageSize; DefaultGraphQlServiceConfig(Config untypedConfig) { this.serviceName = untypedConfig.getString(SERVICE_NAME_CONFIG); @@ -64,6 +67,8 @@ class DefaultGraphQlServiceConfig implements GraphQlServiceConfig { this.gatewayServicePort = untypedConfig.getInt(GATEWAY_SERVICE_PORT_PROPERTY); this.gatewayServiceTimeout = getTimeoutOrFallback(() -> untypedConfig.getDuration(GATEWAY_SERVICE_CLIENT_TIMEOUT)); + this.gatewayServiceMaxInboundMessageSize = + untypedConfig.getBytes(GATEWAY_SERVICE_CLIENT_MAX_INBOUND_MESSAGE_SIZE).intValue(); } @Override @@ -136,6 +141,11 @@ public Duration getGatewayServiceTimeout() { return gatewayServiceTimeout; } + @Override + public int getGatewayServiceMaxInboundMessageSize() { + return this.gatewayServiceMaxInboundMessageSize; + } + private Duration getTimeoutOrFallback(Supplier durationSupplier) { return optionallyGet(durationSupplier) .orElse(Duration.ofSeconds(DEFAULT_CLIENT_TIMEOUT_SECONDS)); diff --git a/hypertrace-core-graphql-service/src/main/resources/configs/common/application.conf b/hypertrace-core-graphql-service/src/main/resources/configs/common/application.conf index 11216c86..4a08113e 100644 --- a/hypertrace-core-graphql-service/src/main/resources/configs/common/application.conf +++ b/hypertrace-core-graphql-service/src/main/resources/configs/common/application.conf @@ -18,4 +18,7 @@ attribute.service = { gateway.service = { host = localhost port = 50071 + maxMessageSize = { + inbound = 4MiB + } } diff --git a/hypertrace-core-graphql-spi/src/main/java/org/hypertrace/core/graphql/spi/config/GraphQlServiceConfig.java b/hypertrace-core-graphql-spi/src/main/java/org/hypertrace/core/graphql/spi/config/GraphQlServiceConfig.java index 1c3c9044..915064c1 100644 --- a/hypertrace-core-graphql-spi/src/main/java/org/hypertrace/core/graphql/spi/config/GraphQlServiceConfig.java +++ b/hypertrace-core-graphql-spi/src/main/java/org/hypertrace/core/graphql/spi/config/GraphQlServiceConfig.java @@ -32,4 +32,6 @@ public interface GraphQlServiceConfig { int getGatewayServicePort(); Duration getGatewayServiceTimeout(); + + int getGatewayServiceMaxInboundMessageSize(); }