You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2021/08/20 12:04:34 UTC
[incubator-tuweni] branch main updated: Tuning tracing to report
more traces
This is an automated email from the ASF dual-hosted git repository.
toulmean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/main by this push:
new 1a15844 Tuning tracing to report more traces
new 73165cb Merge pull request #341 from atoulme/tracing_tuning
1a15844 is described below
commit 1a15844a606e3d8dcee7ccca0a443712073d5b1e
Author: Antoine Toulme <an...@lunar-ocean.com>
AuthorDate: Thu Aug 19 22:48:26 2021 -0700
Tuning tracing to report more traces
---
.../main/kotlin/org/apache/tuweni/jsonrpc/app/JSONRPCApp.kt | 4 +++-
.../main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCServer.kt | 11 +++++++++++
.../main/kotlin/org/apache/tuweni/metrics/MetricsService.kt | 2 +-
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/jsonrpc-app/src/main/kotlin/org/apache/tuweni/jsonrpc/app/JSONRPCApp.kt b/jsonrpc-app/src/main/kotlin/org/apache/tuweni/jsonrpc/app/JSONRPCApp.kt
index 7bd963a..d729db1 100644
--- a/jsonrpc-app/src/main/kotlin/org/apache/tuweni/jsonrpc/app/JSONRPCApp.kt
+++ b/jsonrpc-app/src/main/kotlin/org/apache/tuweni/jsonrpc/app/JSONRPCApp.kt
@@ -152,7 +152,8 @@ class JSONRPCApplication(
val handler = MeteredHandler(successCounter, failureCounter, throttlingHandler::handleRequest)
val server = JSONRPCServer(
- vertx, config.port(), config.networkInterface(),
+ vertx,
+ config.port(), config.networkInterface(),
config.ssl(),
trustOptions,
config.useBasicAuthentication(),
@@ -160,6 +161,7 @@ class JSONRPCApplication(
config.basicAuthPassword(),
config.basicAuthRealm(),
IPRangeChecker.create(config.allowedRanges(), config.rejectedRanges()),
+ metricsService.openTelemetry,
Executors.newFixedThreadPool(
config.numberOfThreads()
) {
diff --git a/jsonrpc/src/main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCServer.kt b/jsonrpc/src/main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCServer.kt
index 7ba0419..561c6e7 100644
--- a/jsonrpc/src/main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCServer.kt
+++ b/jsonrpc/src/main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCServer.kt
@@ -20,6 +20,9 @@ package org.apache.tuweni.jsonrpc
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.ObjectMapper
+import io.opentelemetry.api.OpenTelemetry
+import io.opentelemetry.api.trace.SpanKind
+import io.opentelemetry.api.trace.StatusCode
import io.vertx.core.AsyncResult
import io.vertx.core.Future
import io.vertx.core.Handler
@@ -66,6 +69,7 @@ class JSONRPCServer(
val basicAuthenticationPassword: String? = null,
val basicAuthRealm: String = "Apache Tuweni JSON-RPC proxy",
val ipRangeChecker: IPRangeChecker = IPRangeChecker.allowAll(),
+ val openTelemetry: OpenTelemetry = OpenTelemetry.noop(),
override val coroutineContext: CoroutineContext = Dispatchers.Default,
val methodHandler: suspend (JSONRPCRequest) -> JSONRPCResponse,
) : CoroutineScope {
@@ -127,10 +131,14 @@ class JSONRPCServer(
router.route().handler(basicAuthHandler)
}
router.route().handler { context ->
+ val tracer = openTelemetry.getTracer("jsonrpcserver")
+ val span = tracer.spanBuilder("handleRequest").setSpanKind(SpanKind.SERVER).startSpan()
val httpRequest = context.request()
httpRequest.exceptionHandler {
logger.error(it.message, it)
httpRequest.response().end(mapper.writeValueAsString(internalError))
+ span.setStatus(StatusCode.ERROR)
+ span.end()
}
httpRequest.bodyHandler {
var requests: Array<JSONRPCRequest>
@@ -142,6 +150,8 @@ class JSONRPCServer(
} catch (e: IOException) {
logger.warn("Invalid request", e)
httpRequest.response().end(mapper.writeValueAsString(parseError))
+ span.setStatus(StatusCode.ERROR)
+ span.end()
return@bodyHandler
}
}
@@ -158,6 +168,7 @@ class JSONRPCServer(
} else {
httpRequest.response().end(mapper.writeValueAsString(readyResponses))
}
+ span.end()
}
}
}
diff --git a/metrics/src/main/kotlin/org/apache/tuweni/metrics/MetricsService.kt b/metrics/src/main/kotlin/org/apache/tuweni/metrics/MetricsService.kt
index e4507a2..2009e16 100644
--- a/metrics/src/main/kotlin/org/apache/tuweni/metrics/MetricsService.kt
+++ b/metrics/src/main/kotlin/org/apache/tuweni/metrics/MetricsService.kt
@@ -79,7 +79,7 @@ class MetricsService(
.setTimeout(grpcTimeout, TimeUnit.MILLISECONDS).build()
).build()
openTelemetry = OpenTelemetrySdk.builder()
- .setTracerProvider(SdkTracerProvider.builder().addSpanProcessor(spanProcessor).build())
+ .setTracerProvider(SdkTracerProvider.builder().setResource(resource).addSpanProcessor(spanProcessor).build())
.build()
if (enablePrometheus) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org