You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tl...@apache.org on 2021/01/19 10:32:02 UTC
[ignite] branch ignite-2.10 updated: IGNITE-13624 Extend tracing of
communication socket write with number of sent bytes (#8396)
This is an automated email from the ASF dual-hosted git repository.
tledkov pushed a commit to branch ignite-2.10
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/ignite-2.10 by this push:
new f1be12b IGNITE-13624 Extend tracing of communication socket write with number of sent bytes (#8396)
f1be12b is described below
commit f1be12b434d8de718f9e146a40ee0b00172d6aed
Author: Mikhail Petrov <pm...@gmail.com>
AuthorDate: Tue Jan 19 13:26:22 2021 +0300
IGNITE-13624 Extend tracing of communication socket write with number of sent bytes (#8396)
(cherry picked from commit 80eada9df37c6738a6513bd2aa7411d04d93c040)
---
.../apache/ignite/internal/processors/tracing/SpanTags.java | 3 +++
.../org/apache/ignite/internal/util/nio/GridNioServer.java | 11 +++++++++++
.../monitoring/opencensus/OpenCensusTracingSpiTest.java | 12 +++++++++++-
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/tracing/SpanTags.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/tracing/SpanTags.java
index c2f37a6..38327f4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/tracing/SpanTags.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/tracing/SpanTags.java
@@ -81,6 +81,9 @@ public class SpanTags {
/** */
public static final String MESSAGE = "message";
+ /** Number of bytes that were written to the socket. */
+ public static final String SOCKET_WRITE_BYTES = "socket.write.bytes";
+
/** */
public static final String MESSAGE_CLASS = "message.class";
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index d52da34..32e0a67 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -90,6 +90,7 @@ import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.failure.FailureType.CRITICAL_ERROR;
import static org.apache.ignite.failure.FailureType.SYSTEM_WORKER_TERMINATION;
+import static org.apache.ignite.internal.processors.tracing.SpanTags.SOCKET_WRITE_BYTES;
import static org.apache.ignite.internal.processors.tracing.SpanType.COMMUNICATION_SOCKET_WRITE;
import static org.apache.ignite.internal.processors.tracing.messages.TraceableMessagesTable.traceName;
import static org.apache.ignite.internal.util.nio.GridNioSessionMetaKey.MSG_WRITER;
@@ -1246,6 +1247,8 @@ public class GridNioServer<T> {
if (log.isTraceEnabled())
log.trace("Bytes sent [sockCh=" + sockCh + ", cnt=" + cnt + ']');
+ span.addTag(SOCKET_WRITE_BYTES, () -> Integer.toString(cnt));
+
if (sentBytesCntMetric != null)
sentBytesCntMetric.add(cnt);
@@ -1574,8 +1577,12 @@ public class GridNioServer<T> {
if (writer != null)
writer.setCurrentWriteClass(msg.getClass());
+ int startPos = buf.position();
+
finished = msg.writeTo(buf, writer);
+ span.addTag(SOCKET_WRITE_BYTES, () -> Integer.toString(buf.position() - startPos));
+
if (finished) {
pendingRequests.add(req);
@@ -1763,8 +1770,12 @@ public class GridNioServer<T> {
if (writer != null)
writer.setCurrentWriteClass(msg.getClass());
+ int startPos = buf.position();
+
finished = msg.writeTo(buf, writer);
+ span.addTag(SOCKET_WRITE_BYTES, () -> Integer.toString(buf.position() - startPos));
+
if (finished) {
onMessageWritten(ses, msg);
diff --git a/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusTracingSpiTest.java b/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusTracingSpiTest.java
index 0efed98..0093968 100644
--- a/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusTracingSpiTest.java
+++ b/modules/opencensus/src/test/java/org/apache/ignite/internal/processors/monitoring/opencensus/OpenCensusTracingSpiTest.java
@@ -37,6 +37,8 @@ import org.junit.Assert;
import org.junit.Test;
import static io.opencensus.trace.AttributeValue.stringAttributeValue;
+import static java.lang.Integer.parseInt;
+import static org.apache.ignite.internal.processors.tracing.SpanTags.SOCKET_WRITE_BYTES;
import static org.apache.ignite.internal.processors.tracing.SpanType.COMMUNICATION_JOB_EXECUTE_REQUEST;
import static org.apache.ignite.internal.processors.tracing.SpanType.COMMUNICATION_JOB_EXECUTE_RESPONSE;
import static org.apache.ignite.internal.processors.tracing.SpanType.COMMUNICATION_REGULAR_PROCESS;
@@ -325,8 +327,16 @@ public class OpenCensusTracingSpiTest extends AbstractTracingTest {
assertEquals(1, nodejobTraces.stream().filter(it -> it.contains(CUSTOM_JOB_CALL.spanName())).count());
+ List<SpanData> sockWriteTraces = data.stream()
+ .filter(span -> span.getName().contains(COMMUNICATION_SOCKET_WRITE.spanName()))
+ .collect(Collectors.toList());
+
//request + response
- assertEquals(2, nodejobTraces.stream().filter(it -> it.contains(COMMUNICATION_SOCKET_WRITE.spanName())).count());
+ assertEquals(2, sockWriteTraces.size());
+
+ sockWriteTraces.forEach(span -> assertTrue(
+ parseInt(attributeValueToString(span.getAttributes().getAttributeMap().get(SOCKET_WRITE_BYTES))) > 0));
+
//request + response
assertEquals(2, nodejobTraces.stream().filter(it -> it.contains(COMMUNICATION_SOCKET_READ.spanName())).count());
//request + response