Merge pull request #63 from tkowalcz/jdk-http

Small steps toward reducing dependency on Netty in core.
This commit is contained in:
Tomasz Kowalczewski authored and GitHub committed 2021-07-17 11:25:48 +02:00
commit 9a07bcff13
8 files changed
+12 -33

No files matched your search

@@ -2,7 +2,6 @@ package pl.tkowalcz.tjahzi;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.util.internal.StringUtil;
import org.agrona.DirectBuffer;
import org.agrona.concurrent.AtomicBuffer;
import pl.tkowalcz.tjahzi.http.TextBuilders;
@@ -22,7 +21,7 @@ public class LogBufferTranscoder {
this.staticLabels = staticLabels;
this.staticLabelsString = buildLabelsStringIncludingStatic(
staticLabels,
StringUtil.EMPTY_STRING,
"",
TextBuilders.threadLocal().append("{ ")
).toString();
@@ -39,7 +39,10 @@ class RequestAndResponseHandler extends ChannelDuplexHandler {
monitoringModule.incrementHttpResponses();
if (msg.status().codeClass() != HttpStatusClass.SUCCESS) {
System.out.println(msg.content().toString(Charset.defaultCharset()));
monitoringModule.incrementHttpErrors(msg.status(), msg.content());
monitoringModule.incrementHttpErrors(
msg.status().code(),
msg.content().toString(Charset.defaultCharset())
);
}
if (!HttpUtil.isKeepAlive(msg)) {
@@ -1,17 +1,10 @@
package pl.tkowalcz.tjahzi.http;
import io.netty.util.concurrent.FastThreadLocal;
import pl.tkowalcz.tjahzi.utils.TextBuilder;
public class TextBuilders {
private static final FastThreadLocal<TextBuilder> THREAD_LOCAL = new FastThreadLocal<TextBuilder>() {
@Override
protected TextBuilder initialValue() {
return new TextBuilder();
}
};
private static final ThreadLocal<TextBuilder> THREAD_LOCAL = ThreadLocal.withInitial(TextBuilder::new);
public static TextBuilder threadLocal() {
TextBuilder result = THREAD_LOCAL.get();
@@ -4,8 +4,6 @@ import com.codahale.metrics.Counter;
import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
import java.time.Clock;
import java.util.concurrent.TimeUnit;
@@ -101,7 +99,7 @@ public class DropwizardMonitoringModule implements MonitoringModule {
}
@Override
public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) {
public void incrementHttpErrors(int status, String content) {
responseErrors.inc();
}
@@ -1,8 +1,5 @@
package pl.tkowalcz.tjahzi.stats;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
public class EmptyMonitoringModule implements MonitoringModule {
@Override
@@ -46,7 +43,7 @@ public class EmptyMonitoringModule implements MonitoringModule {
}
@Override
public void incrementHttpErrors(HttpResponseStatus status, ByteBuf responseContent) {
public void incrementHttpErrors(int status, String content) {
}
@Override
@@ -1,8 +1,5 @@
package pl.tkowalcz.tjahzi.stats;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
import java.time.Clock;
public interface MonitoringModule {
@@ -31,7 +28,7 @@ public interface MonitoringModule {
void incrementHttpResponses();
void incrementHttpErrors(HttpResponseStatus status, ByteBuf content);
void incrementHttpErrors(int status, String content);
void recordResponseTime(long time);
}
@@ -1,8 +1,5 @@
package pl.tkowalcz.tjahzi.stats;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
public class MutableMonitoringModuleWrapper implements MonitoringModule {
private MonitoringModule monitoringModule;
@@ -62,7 +59,7 @@ public class MutableMonitoringModuleWrapper implements MonitoringModule {
}
@Override
public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) {
public void incrementHttpErrors(int status, String content) {
monitoringModule.incrementHttpErrors(status, content);
}
@@ -1,12 +1,9 @@
package pl.tkowalcz.tjahzi.stats;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.http.HttpResponseStatus;
import org.agrona.concurrent.SystemEpochClock;
import org.agrona.concurrent.UnsafeBuffer;
import org.agrona.concurrent.errors.DistinctErrorLog;
import java.nio.charset.Charset;
import java.util.concurrent.atomic.AtomicLong;
public class StandardMonitoringModule implements MonitoringModule {
@@ -119,12 +116,10 @@ public class StandardMonitoringModule implements MonitoringModule {
}
@Override
public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) {
public void incrementHttpErrors(int status, String content) {
failedHttpRequests.incrementAndGet();
distinctErrorLog.record(
new RuntimeException(
content.toString(Charset.defaultCharset())
)
new RuntimeException(content)
);
}