This is an automated email from the ASF dual-hosted git repository. abudnikov pushed a commit to branch IGNITE-7595 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit d94ad878ce565c600bb9a504b29ea618eea3e212 Author: abudnikov <[email protected]> AuthorDate: Fri Aug 14 18:44:39 2020 +0300 add initial documentation on tracing --- .../java/org/apache/ignite/snippets/Tracing.java | 42 ++++++++++ docs/_docs/code-snippets/xml/tracing.xml | 29 +++++++ docs/_docs/images/trace_in_zipkin.png | Bin 0 -> 120344 bytes docs/_docs/monitoring-metrics/tracing.adoc | 86 +++++++++++++++++++++ 4 files changed, 157 insertions(+) diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Tracing.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Tracing.java new file mode 100644 index 0000000..fd404e2 --- /dev/null +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Tracing.java @@ -0,0 +1,42 @@ +package org.apache.ignite.snippets; + +import org.apache.ignite.Ignite; +import org.apache.ignite.Ignition; +import org.apache.ignite.configuration.IgniteConfiguration; +import org.junit.jupiter.api.Test; + +import io.opencensus.exporter.trace.zipkin.ZipkinExporterConfiguration; +import io.opencensus.exporter.trace.zipkin.ZipkinTraceExporter; + +public class Tracing { + + @Test + void config() { + //tag::config[] + IgniteConfiguration cfg = new IgniteConfiguration(); + + cfg.setTracingSpi(new org.apache.ignite.spi.tracing.opencensus.OpenCensusTracingSpi()); + + Ignite ignite = Ignition.start(cfg); + //end::config[] + + ignite.close(); + } + + @Test + void exportToZipkin() { + //tag::export-to-zipkin[] + ZipkinTraceExporter.createAndRegister(ZipkinExporterConfiguration.builder() + .setV2Url("http://localhost:9411/api/v2/spans").setServiceName("ignite-cluster").build()); + + IgniteConfiguration cfg = new IgniteConfiguration(); + + cfg.setTracingSpi(new org.apache.ignite.spi.tracing.opencensus.OpenCensusTracingSpi()); + + Ignite ignite = Ignition.start(cfg); + //end::config[] + //end::export-to-zipkin[] + ignite.close(); + + } +} diff --git a/docs/_docs/code-snippets/xml/tracing.xml b/docs/_docs/code-snippets/xml/tracing.xml new file mode 100644 index 0000000..7902987 --- /dev/null +++ b/docs/_docs/code-snippets/xml/tracing.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> + <!-- tag::ignite-config[] --> + <bean class="org.apache.ignite.configuration.IgniteConfiguration"> + + <property name="tracingSpi"> + <bean class="org.apache.ignite.spi.tracing.opencensus.OpenCensusTracingSpi"/> + </property> + + <!-- tag::discovery[] --> + <property name="discoverySpi"> + <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> + <!-- prevent this client from reconnecting on connection loss --> + <property name="clientReconnectDisabled" value="true"/> + <property name="ipFinder"> + <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> + <property name="addresses"> + <list> + <value>127.0.0.1:47500..47509</value> + </list> + </property> + </bean> + </property> + </bean> + </property> + <!-- end::discovery[] --> + </bean> + <!-- end::ignite-config[] --> +</beans> \ No newline at end of file diff --git a/docs/_docs/images/trace_in_zipkin.png b/docs/_docs/images/trace_in_zipkin.png new file mode 100644 index 0000000..fdf1e18 Binary files /dev/null and b/docs/_docs/images/trace_in_zipkin.png differ diff --git a/docs/_docs/monitoring-metrics/tracing.adoc b/docs/_docs/monitoring-metrics/tracing.adoc new file mode 100644 index 0000000..1200afb --- /dev/null +++ b/docs/_docs/monitoring-metrics/tracing.adoc @@ -0,0 +1,86 @@ += Tracing + +:javaFile: {javaCodeDir}/Tracing.java + +A number of APIs in Ignite are instrumented with OpenCensus for tracing. +You can collect distributed traces of various tasks execuded in your cluster and use this information to diagnose latency problems. + +We suggest you get familiar with OpenCensus tracing documentation: https://opencensus.io/tracing/. + +The following APIs are instrumented for tracing: + +* Discovery +* Communication +* Exchange +* Transactions + +== Configuring Tracing + +. Configure OpenCensus tracing in the node configuration: ++ +[tabs] +-- +tab:XML[] +[source, xml] +---- +include::code-snippets/xml/tracing.xml[tags=ignite-config;!discovery, indent=0] +---- + +tab:Java[] +[source, java] +---- +include::{javaFile}[tags=config, indent=0] +---- +tab:C#/.NET[] + +tab:C++[unsupported] +-- + +. Enable sampling of traces for a specific scope: ++ +-- +[source, shell] +---- +./control.sh --tracing-configuration set --scope DISCOVERY --sampling-rate 1 +---- + +The `--scope` parameter specifies the API you want to trace. +The following APIs are instrumented for tracing: + +* `DISCOVERY` — discovery events +* `EXCHANGE` — exchange events +* `COMMUNICATION` — communication events +* `TX` — transactions + +The `--sampling-rate` is the probabilistic sampling rate, a number between `0` and `1`. +`0` means no sampling, `1` means always sampling. +-- + + +== Viewing Traces + +To view traces, you need to export them to an external backend using one of the available exporters. +OpenCensus supports a number of exporter out-of-the-box, and you can write a custom exporter. +Refer to the link:https://opencensus.io/exporters/[OpenCensus Exporters^] for details. + +In this section, we will show how to export traces to link:https://zipkin.io[Zipkin^]. +Follow link:https://zipkin.io/pages/quickstart.html[this guide^] to launch Zipkin in your local machine. + +[source, java] +---- +include::{javaFile}[tags=export-to-zipkin, indent=0] +---- + +Start one server node and then start another node. + +TODO + +open http://localhost:9411[^] in your browser + +This is what a trace of a node join event looks like: + +image::images/trace_in_zipkin.png[] + + + +
