Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add metrics base #84

Merged
merged 18 commits into from
Aug 8, 2024
Merged

feat: Add metrics base #84

merged 18 commits into from
Aug 8, 2024

Conversation

AlfredoG87
Copy link
Contributor

@AlfredoG87 AlfredoG87 commented Aug 5, 2024

Description:

In order to be able to add metrics base from platform-sdk the following dependencies were added:

  • swirlds-config-api
  • swirlds-config-impl
  • swirlds-config-extensions
  • swirlds-config-processor
  • swirlds-common
  • swirlds-metrics-api
  • swirlds-metrics-impl

Also including a MetricsService that will contain the metrics of the BlockNode Server, so their definitions are centralized and the same metric can be used in different places if needed.

Verifying that metrics are exposed on <server>:9999/metrics

Related issue(s):

Fixes #66
Fixes #69
Fixes #68

Notes for reviewer:
image

Note new dependencies brought by added packages:
/gradlew :server:dependencies


> Task :server:dependencies

------------------------------------------------------------
Project ':server'
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
\--- com.google.auto.service:auto-service:1.1.1
     +--- com.google.auto.service:auto-service-annotations:1.1.1
     +--- com.google.auto:auto-common:1.2.1
     |    \--- com.google.guava:guava:31.0.1-jre -> 32.0.1-jre
     \--- com.google.guava:guava:32.0.1-jre

compileClasspath - Compile classpath for source set 'main'.
+--- com.google.auto.service:auto-service-annotations:1.1.1
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1
|    |         \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |              \--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5
|    \--- com.swirlds:swirlds-config-api:0.51.5
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    \--- io.grpc:grpc-api:1.60.0
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    \--- io.grpc:grpc-protobuf-lite:1.60.0
|    |         +--- io.grpc:grpc-api:1.60.0
|    |         \--- com.google.protobuf:protobuf-java -> 3.24.0
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
\--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)

compileOnly - Compile-only dependencies for the 'main' feature. (n)
No dependencies

coverageDataElementsForTest - Binary data file containing results of Jacoco test coverage reporting for the test Test Suite's test target. (n)
No dependencies

default - Configuration for default artifacts. (n)
No dependencies

implementation - Implementation dependencies for the 'main' feature. (n)
No dependencies

jacocoAgent - The Jacoco agent to use to get coverage data.
\--- org.jacoco:org.jacoco.agent:0.8.9

jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- org.jacoco:org.jacoco.ant:0.8.9
     +--- org.jacoco:org.jacoco.core:0.8.9
     |    +--- org.ow2.asm:asm:9.5
     |    +--- org.ow2.asm:asm-commons:9.5
     |    |    +--- org.ow2.asm:asm:9.5
     |    |    \--- org.ow2.asm:asm-tree:9.5
     |    |         \--- org.ow2.asm:asm:9.5
     |    \--- org.ow2.asm:asm-tree:9.5 (*)
     +--- org.jacoco:org.jacoco.report:0.8.9
     |    \--- org.jacoco:org.jacoco.core:0.8.9 (*)
     \--- org.jacoco:org.jacoco.agent:0.8.9

javaModulesMergeJars
No dependencies

javadocElements - javadoc elements for main. (n)
No dependencies

jmh
+--- org.openjdk.jmh:jmh-core:1.36
|    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    \--- org.apache.commons:commons-math3:3.2
\--- org.openjdk.jmh:jmh-generator-bytecode:1.36
     +--- org.openjdk.jmh:jmh-core:1.36 (*)
     +--- org.openjdk.jmh:jmh-generator-reflection:1.36
     |    \--- org.openjdk.jmh:jmh-core:1.36 (*)
     \--- org.openjdk.jmh:jmh-generator-asm:1.36
          +--- org.openjdk.jmh:jmh-core:1.36 (*)
          +--- org.openjdk.jmh:jmh-generator-reflection:1.36 (*)
          \--- org.ow2.asm:asm:9.0

jmhAnnotationProcessor - Annotation processors and their dependencies for source set 'jmh'.
No dependencies

jmhCompileClasspath - Compile classpath for source set 'jmh'.
+--- com.google.auto.service:auto-service-annotations:1.1.1
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1
|    |         \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |              \--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5
|    \--- com.swirlds:swirlds-config-api:0.51.5
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    \--- io.grpc:grpc-api:1.60.0
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    \--- io.grpc:grpc-protobuf-lite:1.60.0
|    |         +--- io.grpc:grpc-api:1.60.0
|    |         \--- com.google.protobuf:protobuf-java -> 3.24.0
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)
+--- org.openjdk.jmh:jmh-core:1.36
|    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    \--- org.apache.commons:commons-math3:3.2
\--- org.openjdk.jmh:jmh-generator-bytecode:1.36
     +--- org.openjdk.jmh:jmh-core:1.36 (*)
     +--- org.openjdk.jmh:jmh-generator-reflection:1.36
     |    \--- org.openjdk.jmh:jmh-core:1.36 (*)
     \--- org.openjdk.jmh:jmh-generator-asm:1.36
          +--- org.openjdk.jmh:jmh-core:1.36 (*)
          +--- org.openjdk.jmh:jmh-generator-reflection:1.36 (*)
          \--- org.ow2.asm:asm:9.0

jmhCompileOnly - Compile only dependencies for source set 'jmh'. (n)
No dependencies

jmhImplementation - Implementation only dependencies for source set 'jmh'. (n)
No dependencies

jmhRuntimeClasspath - Runtime classpath of source set 'jmh'.
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- net.java.dev.jna:jna:5.14.0
|    +--- io.github.classgraph:classgraph:4.8.65
|    +--- io.prometheus:simpleclient_httpserver:0.16.0
|    |    +--- io.prometheus:simpleclient:0.16.0
|    |    \--- io.prometheus:simpleclient_common:0.16.0
|    |         \--- io.prometheus:simpleclient:0.16.0
|    +--- org.apache.logging.log4j:log4j-core:2.21.1
|    |    +--- org.apache.logging.log4j:log4j-api:2.21.1
|    |    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |    |         +--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    |    |         \--- org.apache.logging.log4j:log4j-core:2.21.1 (c)
|    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1 (*)
|    +--- org.bouncycastle:bcprov-jdk18on:1.78
|    +--- org.hyperledger.besu:secp256k1:0.8.2
|    |    \--- net.java.dev.jna:jna:5.12.1 -> 5.14.0
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    +--- com.swirlds:swirlds-config-extensions:0.51.5
|    |    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    |    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    |    |    \--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    |    +--- net.java.dev.jna:jna:5.8.0 -> 5.14.0
|    |    +--- com.goterl:resource-loader:2.0.1
|    |    |    \--- net.java.dev.jna:jna:5.5.0 -> 5.14.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    |         \--- org.slf4j:slf4j-api:1.7.30 (c)
|    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    \--- com.goterl:resource-loader:2.0.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.code.gson:gson:2.10.1
|    |    +--- com.google.guava:guava:32.0.1-android
|    |    +--- io.perfmark:perfmark-api:0.26.0
|    |    +--- io.grpc:grpc-context:1.60.0
|    |    |    \--- io.grpc:grpc-api:1.60.0 (*)
|    |    \--- io.grpc:grpc-util:1.60.0
|    |         \--- com.google.guava:guava:32.0.1-android
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    +--- io.grpc:grpc-protobuf-lite:1.60.0
|    |    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    |    +--- com.google.guava:guava:32.0.1-android
|    |    |    \--- com.google.protobuf:protobuf-java -> 3.24.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)
+--- org.openjdk.jmh:jmh-core:1.36
|    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    \--- org.apache.commons:commons-math3:3.2
+--- org.openjdk.jmh:jmh-generator-bytecode:1.36
|    +--- org.openjdk.jmh:jmh-core:1.36 (*)
|    +--- org.openjdk.jmh:jmh-generator-reflection:1.36
|    |    \--- org.openjdk.jmh:jmh-core:1.36 (*)
|    \--- org.openjdk.jmh:jmh-generator-asm:1.36
|         +--- org.openjdk.jmh:jmh-core:1.36 (*)
|         +--- org.openjdk.jmh:jmh-generator-reflection:1.36 (*)
|         \--- org.ow2.asm:asm:9.0
+--- com.swirlds:swirlds-config-impl:0.51.5
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
|    \--- com.swirlds:swirlds-config-api:0.51.5
+--- org.junit.jupiter:junit-jupiter-api:5.10.2
|    +--- org.junit:junit-bom:5.10.2
|    |    +--- org.junit.jupiter:junit-jupiter:5.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (c)
|    |    +--- org.junit.platform:junit-platform-commons:1.10.2 (c)
|    |    +--- org.junit.platform:junit-platform-launcher:1.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-params:5.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-engine:5.10.2 (c)
|    |    \--- org.junit.platform:junit-platform-engine:1.10.2 (c)
|    +--- org.opentest4j:opentest4j:1.3.0
|    \--- org.junit.platform:junit-platform-commons:1.10.2
|         \--- org.junit:junit-bom:5.10.2 (*)
+--- org.mockito:mockito-core:5.8.0
|    +--- net.bytebuddy:byte-buddy:1.14.10
|    +--- net.bytebuddy:byte-buddy-agent:1.14.10
|    \--- org.objenesis:objenesis:3.3
+--- org.mockito:mockito-junit-jupiter:5.8.0
|    +--- org.mockito:mockito-core:5.8.0 (*)
|    \--- org.junit.jupiter:junit-jupiter-api:5.10.1 -> 5.10.2 (*)
+--- org.junit.jupiter:junit-jupiter:5.8.2 -> 5.10.2
|    +--- org.junit:junit-bom:5.10.2 (*)
|    +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
|    +--- org.junit.jupiter:junit-jupiter-params:5.10.2
|    |    +--- org.junit:junit-bom:5.10.2 (*)
|    |    \--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
|    \--- org.junit.jupiter:junit-jupiter-engine:5.10.2
|         +--- org.junit:junit-bom:5.10.2 (*)
|         +--- org.junit.platform:junit-platform-engine:1.10.2
|         |    +--- org.junit:junit-bom:5.10.2 (*)
|         |    +--- org.opentest4j:opentest4j:1.3.0
|         |    \--- org.junit.platform:junit-platform-commons:1.10.2 (*)
|         \--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
\--- org.junit.platform:junit-platform-launcher -> 1.10.2
     +--- org.junit:junit-bom:5.10.2 (*)
     \--- org.junit.platform:junit-platform-engine:1.10.2 (*)

jmhRuntimeOnly - Runtime only dependencies for source set 'jmh'. (n)
No dependencies

mainSourceElements - List of source directories contained in the Main SourceSet. (n)
No dependencies

runtimeClasspath - Runtime classpath of source set 'main'.
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- net.java.dev.jna:jna:5.14.0
|    +--- io.github.classgraph:classgraph:4.8.65
|    +--- io.prometheus:simpleclient_httpserver:0.16.0
|    |    +--- io.prometheus:simpleclient:0.16.0
|    |    \--- io.prometheus:simpleclient_common:0.16.0
|    |         \--- io.prometheus:simpleclient:0.16.0
|    +--- org.apache.logging.log4j:log4j-core:2.21.1
|    |    +--- org.apache.logging.log4j:log4j-api:2.21.1
|    |    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |    |         +--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    |    |         \--- org.apache.logging.log4j:log4j-core:2.21.1 (c)
|    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1 (*)
|    +--- org.bouncycastle:bcprov-jdk18on:1.78
|    +--- org.hyperledger.besu:secp256k1:0.8.2
|    |    \--- net.java.dev.jna:jna:5.12.1 -> 5.14.0
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    +--- com.swirlds:swirlds-config-extensions:0.51.5
|    |    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    |    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    |    |    \--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    |    +--- net.java.dev.jna:jna:5.8.0 -> 5.14.0
|    |    +--- com.goterl:resource-loader:2.0.1
|    |    |    \--- net.java.dev.jna:jna:5.5.0 -> 5.14.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    |         \--- org.slf4j:slf4j-api:1.7.30 (c)
|    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    \--- com.goterl:resource-loader:2.0.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.code.gson:gson:2.10.1
|    |    +--- com.google.guava:guava:32.0.1-android
|    |    +--- io.perfmark:perfmark-api:0.26.0
|    |    +--- io.grpc:grpc-context:1.60.0
|    |    |    \--- io.grpc:grpc-api:1.60.0 (*)
|    |    \--- io.grpc:grpc-util:1.60.0
|    |         \--- com.google.guava:guava:32.0.1-android
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    +--- io.grpc:grpc-protobuf-lite:1.60.0
|    |    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    |    +--- com.google.guava:guava:32.0.1-android
|    |    |    \--- com.google.protobuf:protobuf-java -> 3.24.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)
\--- com.swirlds:swirlds-config-impl:0.51.5
     +--- com.swirlds:swirlds-base:0.51.5
     +--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
     \--- com.swirlds:swirlds-config-api:0.51.5

runtimeElements - Runtime elements for the 'main' feature. (n)
No dependencies

runtimeOnly - Runtime-only dependencies for the 'main' feature. (n)
\--- com.swirlds:swirlds-config-impl:0.51.5 (n)

signatures (n)
No dependencies

sourcesElements - sources elements for main. (n)
No dependencies

testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
No dependencies

testCompileClasspath - Compile classpath for source set 'test'.
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1
|    |         \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |              \--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5
|    \--- com.swirlds:swirlds-config-api:0.51.5
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    \--- io.grpc:grpc-api:1.60.0
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    \--- io.grpc:grpc-protobuf-lite:1.60.0
|    |         +--- io.grpc:grpc-api:1.60.0
|    |         \--- com.google.protobuf:protobuf-java -> 3.24.0
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)
+--- org.junit.jupiter:junit-jupiter-api:5.10.2
|    +--- org.junit:junit-bom:5.10.2
|    |    +--- org.junit.jupiter:junit-jupiter:5.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (c)
|    |    +--- org.junit.platform:junit-platform-commons:1.10.2 (c)
|    |    \--- org.junit.jupiter:junit-jupiter-params:5.10.2 (c)
|    +--- org.opentest4j:opentest4j:1.3.0
|    +--- org.junit.platform:junit-platform-commons:1.10.2
|    |    +--- org.junit:junit-bom:5.10.2 (*)
|    |    \--- org.apiguardian:apiguardian-api:1.1.2
|    \--- org.apiguardian:apiguardian-api:1.1.2
+--- org.mockito:mockito-core:5.8.0
|    +--- net.bytebuddy:byte-buddy:1.14.10
|    \--- net.bytebuddy:byte-buddy-agent:1.14.10
+--- org.mockito:mockito-junit-jupiter:5.8.0
|    \--- org.mockito:mockito-core:5.8.0 (*)
\--- org.junit.jupiter:junit-jupiter:5.8.2 -> 5.10.2
     +--- org.junit:junit-bom:5.10.2 (*)
     +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
     \--- org.junit.jupiter:junit-jupiter-params:5.10.2
          +--- org.junit:junit-bom:5.10.2 (*)
          +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
          \--- org.apiguardian:apiguardian-api:1.1.2

testCompileOnly - Compile only dependencies for source set 'test'. (n)
No dependencies

testImplementation - Implementation only dependencies for source set 'test'. (n)
+--- org.junit.jupiter:junit-jupiter-api:5.10.2 (n)
+--- org.mockito:mockito-core:5.8.0 (n)
\--- org.mockito:mockito-junit-jupiter:5.8.0 (n)

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- project :protos
|    \--- com.google.protobuf:protobuf-java:3.24.0
+--- com.google.protobuf:protobuf-java:3.24.0
+--- com.swirlds:swirlds-common:0.51.5
|    +--- net.java.dev.jna:jna:5.14.0
|    +--- io.github.classgraph:classgraph:4.8.65
|    +--- io.prometheus:simpleclient_httpserver:0.16.0
|    |    +--- io.prometheus:simpleclient:0.16.0
|    |    \--- io.prometheus:simpleclient_common:0.16.0
|    |         \--- io.prometheus:simpleclient:0.16.0
|    +--- org.apache.logging.log4j:log4j-core:2.21.1
|    |    +--- org.apache.logging.log4j:log4j-api:2.21.1
|    |    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1
|    |    |         +--- org.apache.logging.log4j:log4j-api:2.21.1 (c)
|    |    |         \--- org.apache.logging.log4j:log4j-core:2.21.1 (c)
|    |    \--- org.apache.logging.log4j:log4j-bom:2.21.1 (*)
|    +--- org.bouncycastle:bcprov-jdk18on:1.78
|    +--- org.hyperledger.besu:secp256k1:0.8.2
|    |    \--- net.java.dev.jna:jna:5.12.1 -> 5.14.0
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-api:0.51.5
|    +--- com.swirlds:swirlds-logging:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    +--- com.swirlds:swirlds-config-extensions:0.51.5
|    |    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    |    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    |    |    \--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0
|    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (c)
|    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (c)
|    |    |         \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0 (c)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.16.0 (*)
|    |    +--- com.swirlds:swirlds-config-api:0.51.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.16.0 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    |    \--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    +--- com.swirlds:swirlds-metrics-api:0.51.5
|    |    \--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-metrics-impl:0.51.5
|    |    +--- com.swirlds:swirlds-base:0.51.5
|    |    \--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.16.0 (*)
|    +--- com.fasterxml.jackson.core:jackson-databind:2.16.0 (*)
|    +--- com.hedera.pbj:pbj-runtime:0.8.9
|    |    \--- org.antlr:antlr4-runtime:4.11.1
|    +--- io.prometheus:simpleclient:0.16.0
|    +--- com.goterl:lazysodium-java:5.1.1
|    |    +--- net.java.dev.jna:jna:5.8.0 -> 5.14.0
|    |    +--- com.goterl:resource-loader:2.0.1
|    |    |    \--- net.java.dev.jna:jna:5.5.0 -> 5.14.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    |         \--- org.slf4j:slf4j-api:1.7.30 (c)
|    +--- org.apache.logging.log4j:log4j-api:2.21.1 (*)
|    \--- com.goterl:resource-loader:2.0.1 (*)
+--- com.swirlds:swirlds-config-api -> 0.51.5
+--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
+--- com.swirlds:swirlds-metrics-api:0.51.5 (*)
+--- io.grpc:grpc-stub -> 1.60.0
|    +--- io.grpc:grpc-api:1.60.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- com.google.guava:guava:32.0.1-android
+--- io.helidon.common:helidon-common -> 4.0.10
+--- io.helidon.config:helidon-config -> 4.0.10
|    +--- io.helidon.common:helidon-common-config:4.0.10
|    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    \--- io.helidon.common:helidon-common-mapper:4.0.10
|    |         \--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common:4.0.10
|    +--- io.helidon.common:helidon-common-media-type:4.0.10
|    |    \--- io.helidon.common:helidon-common:4.0.10
|    \--- io.helidon.inject:helidon-inject-api:4.0.10
|         +--- io.helidon.common:helidon-common-types:4.0.10
|         |    +--- io.helidon.common:helidon-common:4.0.10
|         |    \--- io.helidon.builder:helidon-builder-api:4.0.10
|         |         \--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common:4.0.10
|         +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|         +--- io.helidon.logging:helidon-logging-common:4.0.10
|         |    \--- io.helidon.common:helidon-common:4.0.10
|         +--- jakarta.inject:jakarta.inject-api:2.0.1
|         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver-grpc:4.0.10
|    +--- io.helidon.webserver:helidon-webserver:4.0.10
|    |    +--- io.helidon:helidon:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-context:4.0.10
|    |    |    |    |    \--- io.helidon.common:helidon-common:4.0.10
|    |    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-media-type:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-uri:4.0.10
|    |    |         +--- io.helidon.common:helidon-common:4.0.10
|    |    |         +--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         +--- io.helidon.common:helidon-common-parameters:4.0.10
|    |    |         |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |         |    \--- io.helidon.common:helidon-common-mapper:4.0.10 (*)
|    |    |         \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-socket:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-context:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-key-util:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-configurable:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common:helidon-common-security:4.0.10
|    |    +--- io.helidon.common:helidon-common-task:4.0.10
|    |    +--- io.helidon.common:helidon-common-tls:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-key-util:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    +--- io.helidon.logging:helidon-logging-common:4.0.10 (*)
|    |    +--- io.helidon.http.media:helidon-http-media:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-buffers:4.0.10
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.http.encoding:helidon-http-encoding:4.0.10
|    |    |    +--- io.helidon.common:helidon-common-config:4.0.10 (*)
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    +--- io.helidon.common:helidon-common-uri:4.0.10 (*)
|    |    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    |    +--- io.helidon.common.features:helidon-common-features:4.0.10
|    |    |    +--- io.helidon.common:helidon-common:4.0.10
|    |    |    \--- io.helidon.common.features:helidon-common-features-api:4.0.10
|    |    \--- io.helidon.config:helidon-config:4.0.10 (*)
|    +--- io.helidon.webserver:helidon-webserver-http2:4.0.10
|    |    +--- io.helidon.webserver:helidon-webserver:4.0.10 (*)
|    |    +--- io.helidon.http:helidon-http-http2:4.0.10
|    |    |    +--- io.helidon.http:helidon-http:4.0.10 (*)
|    |    |    \--- io.helidon.common:helidon-common-socket:4.0.10 (*)
|    |    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
|    +--- io.grpc:grpc-core:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.code.gson:gson:2.10.1
|    |    +--- com.google.guava:guava:32.0.1-android
|    |    +--- io.perfmark:perfmark-api:0.26.0
|    |    +--- io.grpc:grpc-context:1.60.0
|    |    |    \--- io.grpc:grpc-api:1.60.0 (*)
|    |    \--- io.grpc:grpc-util:1.60.0
|    |         \--- com.google.guava:guava:32.0.1-android
|    +--- io.grpc:grpc-stub:1.60.0 (*)
|    +--- io.grpc:grpc-protobuf:1.60.0
|    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    +--- com.google.protobuf:protobuf-java:3.24.0
|    |    +--- com.google.api.grpc:proto-google-common-protos:2.22.0
|    |    |    \--- com.google.protobuf:protobuf-java:3.23.2 -> 3.24.0
|    |    +--- io.grpc:grpc-protobuf-lite:1.60.0
|    |    |    +--- io.grpc:grpc-api:1.60.0 (*)
|    |    |    +--- com.google.guava:guava:32.0.1-android
|    |    |    \--- com.google.protobuf:protobuf-java -> 3.24.0
|    |    \--- com.google.guava:guava:32.0.1-android
|    \--- io.helidon.builder:helidon-builder-api:4.0.10 (*)
+--- io.helidon.webserver:helidon-webserver -> 4.0.10 (*)
+--- com.swirlds:swirlds-config-impl:0.51.5
|    +--- com.swirlds:swirlds-base:0.51.5
|    +--- com.swirlds:swirlds-config-extensions:0.51.5 (*)
|    \--- com.swirlds:swirlds-config-api:0.51.5
+--- org.junit.jupiter:junit-jupiter-api:5.10.2
|    +--- org.junit:junit-bom:5.10.2
|    |    +--- org.junit.jupiter:junit-jupiter:5.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (c)
|    |    +--- org.junit.platform:junit-platform-commons:1.10.2 (c)
|    |    +--- org.junit.platform:junit-platform-launcher:1.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-params:5.10.2 (c)
|    |    +--- org.junit.jupiter:junit-jupiter-engine:5.10.2 (c)
|    |    \--- org.junit.platform:junit-platform-engine:1.10.2 (c)
|    +--- org.opentest4j:opentest4j:1.3.0
|    \--- org.junit.platform:junit-platform-commons:1.10.2
|         \--- org.junit:junit-bom:5.10.2 (*)
+--- org.mockito:mockito-core:5.8.0
|    +--- net.bytebuddy:byte-buddy:1.14.10
|    +--- net.bytebuddy:byte-buddy-agent:1.14.10
|    \--- org.objenesis:objenesis:3.3
+--- org.mockito:mockito-junit-jupiter:5.8.0
|    +--- org.mockito:mockito-core:5.8.0 (*)
|    \--- org.junit.jupiter:junit-jupiter-api:5.10.1 -> 5.10.2 (*)
+--- org.junit.jupiter:junit-jupiter:5.8.2 -> 5.10.2
|    +--- org.junit:junit-bom:5.10.2 (*)
|    +--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
|    +--- org.junit.jupiter:junit-jupiter-params:5.10.2
|    |    +--- org.junit:junit-bom:5.10.2 (*)
|    |    \--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
|    \--- org.junit.jupiter:junit-jupiter-engine:5.10.2
|         +--- org.junit:junit-bom:5.10.2 (*)
|         +--- org.junit.platform:junit-platform-engine:1.10.2
|         |    +--- org.junit:junit-bom:5.10.2 (*)
|         |    +--- org.opentest4j:opentest4j:1.3.0
|         |    \--- org.junit.platform:junit-platform-commons:1.10.2 (*)
|         \--- org.junit.jupiter:junit-jupiter-api:5.10.2 (*)
\--- org.junit.platform:junit-platform-launcher -> 1.10.2
     +--- org.junit:junit-bom:5.10.2 (*)
     \--- org.junit.platform:junit-platform-engine:1.10.2 (*)

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

@AlfredoG87 AlfredoG87 added Improvement Code changes driven by non business requirements P2 Required to be completed in the assigned milestone, but may or may not impact release schedule. labels Aug 6, 2024
@AlfredoG87 AlfredoG87 self-assigned this Aug 6, 2024
@AlfredoG87 AlfredoG87 added this to the 0.1.0 milestone Aug 6, 2024
@AlfredoG87 AlfredoG87 changed the title Add metrics base feat: Add metrics base Aug 6, 2024
@AlfredoG87 AlfredoG87 marked this pull request as ready for review August 6, 2024 22:26
@AlfredoG87 AlfredoG87 requested a review from a team as a code owner August 6, 2024 22:26
@AlfredoG87 AlfredoG87 added dependencies Pull requests that update a dependency file New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. labels Aug 6, 2024
Copy link
Contributor

@mattp-swirldslabs mattp-swirldslabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really good start. Are the metrics currently accessible on port 9999? Should we augment the README.md to let devs know how to see the data.

@AlfredoG87 AlfredoG87 force-pushed the add-metrics-base branch 2 times, most recently from 8273015 to 4c6ccd2 Compare August 7, 2024 21:56
@AlfredoG87
Copy link
Contributor Author

AlfredoG87 commented Aug 7, 2024

This is a really good start. Are the metrics currently accessible on port 9999? Should we augment the README.md to let devs know how to see the data.

I added a metrics.md under docs with general information about the metrics implementation and usage.

Copy link
Contributor

@mattp-swirldslabs mattp-swirldslabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

…tFactory as well as MetricsService.

All of them are necessary to be able to create MetricsService and add Metrics to the project, but will also be necessary when importing other modules from hedera platform-sdk

Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
changed logger from log4j to system.loggger

Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Signed-off-by: Alfredo Gutierrez <[email protected]>
Copy link
Member

@jsync-swirlds jsync-swirlds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing blocking, but some concerns worth addressing in a follow-up.
A question about the autoservice dependencies.
A suggestion to upgrade from simpleclient to the replacement java_client for prometheus.

I also have quite a few suggestions for Javadoc (though I stopped adding them after the first several). What's here is very typical "checkbox" Javadoc and adds very little real value. While that is not "bad" per se, it's a far distance from what I would consider ideal.
In my opinion we should strive, as much as resources and time permit, to produce well written, complete, well structured, and thorough Javadoc specification for all public and package-private methods and classes (at minimum).
I would be happy to walk through a class or two with you if that would help to align on what a high quality Javadoc API specification looks like.

@AlfredoG87
Copy link
Contributor Author

Nothing blocking, but some concerns worth addressing in a follow-up. A question about the autoservice dependencies. A suggestion to upgrade from simpleclient to the replacement java_client for prometheus.

I also have quite a few suggestions for Javadoc (though I stopped adding them after the first several). What's here is very typical "checkbox" Javadoc and adds very little real value. While that is not "bad" per se, it's a far distance from what I would consider ideal. In my opinion we should strive, as much as resources and time permit, to produce well written, complete, well structured, and thorough Javadoc specification for all public and package-private methods and classes (at minimum). I would be happy to walk through a class or two with you if that would help to align on what a high quality Javadoc API specification looks like.

Thank you @jsync-swirlds for your valuable review.

I have answered questions about the dependencies in question and indeed are requiered by Platform SDK.
So I will be opening a couple of tickets so this can be reconsidered in the future.

Did the suggestion for a specific comment and I accept your offer of a walk through on java docs so I can improve my javadoc skills and quality. :)

Signed-off-by: Alfredo Gutierrez <[email protected]>
Copy link

codecov bot commented Aug 8, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.00%. Comparing base (aaa23cd) to head (dce5a96).

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #84      +/-   ##
============================================
+ Coverage     64.82%   70.00%   +5.17%     
- Complexity       25       33       +8     
============================================
  Files             6       10       +4     
  Lines           145      170      +25     
  Branches          6        6              
============================================
+ Hits             94      119      +25     
  Misses           47       47              
  Partials          4        4              
Files Coverage Δ
.../block/server/config/BlockNodeConfigExtension.java 100.00% <100.00%> (ø)
...m/hedera/block/server/config/BlockNodeContext.java 100.00% <100.00%> (ø)
...a/block/server/config/BlockNodeContextFactory.java 100.00% <100.00%> (ø)
...om/hedera/block/server/metrics/MetricsService.java 100.00% <100.00%> (ø)

Copy link
Contributor

@mattp-swirldslabs mattp-swirldslabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks Good

@AlfredoG87 AlfredoG87 merged commit 1a98d20 into main Aug 8, 2024
8 of 9 checks passed
@AlfredoG87 AlfredoG87 deleted the add-metrics-base branch August 8, 2024 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file Improvement Code changes driven by non business requirements New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. P2 Required to be completed in the assigned milestone, but may or may not impact release schedule.
Projects
None yet
3 participants