From ce60f1332061878f6b7f9bd7d7fed792febddded Mon Sep 17 00:00:00 2001 From: Jon Chambers <63609320+jon-signal@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:18:54 -0500 Subject: [PATCH] Don't track IPv4/IPv6 metrics at the application level We can measure this at the infrastructure level without observing IPs directly. --- .../filters/RequestStatisticsFilter.java | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/filters/RequestStatisticsFilter.java b/service/src/main/java/org/whispersystems/textsecuregcm/filters/RequestStatisticsFilter.java index 078fb6a1b..606a4029c 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/filters/RequestStatisticsFilter.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/filters/RequestStatisticsFilter.java @@ -8,20 +8,14 @@ package org.whispersystems.textsecuregcm.filters; import static com.codahale.metrics.MetricRegistry.name; import static java.util.Objects.requireNonNull; -import com.google.common.net.HttpHeaders; -import com.google.common.net.InetAddresses; import io.micrometer.core.instrument.Metrics; import java.io.IOException; -import java.net.Inet4Address; -import java.net.Inet6Address; -import java.net.InetAddress; import javax.annotation.Nonnull; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerRequestFilter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.whispersystems.textsecuregcm.metrics.TrafficSource; -import org.whispersystems.textsecuregcm.util.HeaderUtils; public class RequestStatisticsFilter implements ContainerRequestFilter { @@ -29,12 +23,8 @@ public class RequestStatisticsFilter implements ContainerRequestFilter { private static final String CONTENT_LENGTH_DISTRIBUTION_NAME = name(RequestStatisticsFilter.class, "contentLength"); - private static final String IP_VERSION_METRIC = name(RequestStatisticsFilter.class, "ipVersion"); - private static final String TRAFFIC_SOURCE_TAG = "trafficSource"; - private static final String IP_VERSION_TAG = "ipVersion"; - @Nonnull private final String trafficSourceTag; @@ -48,31 +38,8 @@ public class RequestStatisticsFilter implements ContainerRequestFilter { try { Metrics.summary(CONTENT_LENGTH_DISTRIBUTION_NAME, TRAFFIC_SOURCE_TAG, trafficSourceTag) .record(requestContext.getLength()); - Metrics.counter(IP_VERSION_METRIC, TRAFFIC_SOURCE_TAG, trafficSourceTag, IP_VERSION_TAG, resolveIpVersion(requestContext)) - .increment(); } catch (final Exception e) { logger.warn("Error recording request statistics", e); } } - - @Nonnull - private static String resolveIpVersion(@Nonnull final ContainerRequestContext ctx) { - return HeaderUtils.getMostRecentProxy(ctx.getHeaderString(HttpHeaders.X_FORWARDED_FOR)) - .map(ipString -> { - try { - //noinspection UnstableApiUsage - final InetAddress addr = InetAddresses.forString(ipString); - if (addr instanceof Inet4Address) { - return "IPv4"; - } - if (addr instanceof Inet6Address) { - return "IPv6"; - } - } catch (IllegalArgumentException e) { - // ignore illegal argument exception - } - return null; - }) - .orElse("unresolved"); - } }