diff --git a/gateway-service-impl/build.gradle.kts b/gateway-service-impl/build.gradle.kts index 68b13a80..32f0688a 100644 --- a/gateway-service-impl/build.gradle.kts +++ b/gateway-service-impl/build.gradle.kts @@ -35,4 +35,8 @@ dependencies { testImplementation("org.mockito:mockito-inline:4.3.1") testImplementation("org.apache.logging.log4j:log4j-slf4j-impl:2.17.1") testImplementation("io.grpc:grpc-netty:1.44.0") + + constraints { + testRuntimeOnly("io.netty:netty-common:4.1.77.Final") + } } diff --git a/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/converters/StringToAttributeKindConverter.java b/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/converters/StringToAttributeKindConverter.java index a164c49f..46c217cb 100644 --- a/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/converters/StringToAttributeKindConverter.java +++ b/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/converters/StringToAttributeKindConverter.java @@ -70,7 +70,7 @@ public Value doConvert(String value, AttributeKind attributeKind, Value.Builder case TYPE_TIMESTAMP: valueBuilder.setValueType(ValueType.TIMESTAMP); - valueBuilder.setTimestamp(Long.parseLong(value)); + valueBuilder.setTimestamp(Double.valueOf(value).longValue()); return valueBuilder.build(); case TYPE_STRING_MAP: diff --git a/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/util/MetricAggregationFunctionUtil.java b/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/util/MetricAggregationFunctionUtil.java index 3c3701be..e6b398a5 100644 --- a/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/util/MetricAggregationFunctionUtil.java +++ b/gateway-service-impl/src/main/java/org/hypertrace/gateway/service/common/util/MetricAggregationFunctionUtil.java @@ -71,19 +71,35 @@ public static AttributeKind getValueTypeForFunctionType( return AttributeKind.TYPE_INT64; case MIN: case MAX: + { + AttributeKind attributeKind = attributeMetadata.getValueKind(); + // Min/Max/Sum function only applicable to numerical data + Preconditions.checkArgument( + AttributeKind.TYPE_DOUBLE.equals(attributeKind) + || AttributeKind.TYPE_INT64.equals(attributeKind) + || AttributeKind.TYPE_TIMESTAMP.equals(attributeKind), + "Incompatible data type for this function. Function : %s," + + " Attribute Kind: %s. Attribute ID : %s", + functionType.name(), + attributeKind.name(), + attributeMetadata.getId()); + return attributeKind; + } case SUM: - AttributeKind attributeKind = attributeMetadata.getValueKind(); - // Min/Max/Sum function only applicable to numerical data - Preconditions.checkArgument( - AttributeKind.TYPE_DOUBLE.equals(attributeKind) - || AttributeKind.TYPE_INT64.equals(attributeKind), - "Incompatible data type for this function. Function : %s," - + " Attribute Kind: %s. Attribute ID : %s", - functionType.name(), - attributeKind.name(), - attributeMetadata.getId()); + { + AttributeKind attributeKind = attributeMetadata.getValueKind(); + // Min/Max/Sum function only applicable to numerical data + Preconditions.checkArgument( + AttributeKind.TYPE_DOUBLE.equals(attributeKind) + || AttributeKind.TYPE_INT64.equals(attributeKind), + "Incompatible data type for this function. Function : %s," + + " Attribute Kind: %s. Attribute ID : %s", + functionType.name(), + attributeKind.name(), + attributeMetadata.getId()); - return attributeKind; + return attributeKind; + } case AVGRATE: case AVG: case PERCENTILE: diff --git a/gateway-service/build.gradle.kts b/gateway-service/build.gradle.kts index 4d6303d3..49d0887d 100644 --- a/gateway-service/build.gradle.kts +++ b/gateway-service/build.gradle.kts @@ -15,6 +15,10 @@ dependencies { runtimeOnly("io.grpc:grpc-netty:1.44.0") runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl:2.17.1") + + constraints { + runtimeOnly("io.netty:netty-common:4.1.77.Final") + } } application {