This is an automated email from the ASF dual-hosted git repository.

timoninmaxim pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 21a552a  IGNITE-15649 : Add documentation for the java service 
duration metrics (#9454)
21a552a is described below

commit 21a552a1259aff5f97930a4202efb9bde3ad1442
Author: Vladimir Steshin <vlads...@gmail.com>
AuthorDate: Mon Jan 17 14:16:05 2022 +0300

    IGNITE-15649 : Add documentation for the java service duration metrics 
(#9454)
---
 .../ignite/snippets/services/ServiceExample.java   | 24 ++++++++++++++++++-
 docs/_docs/services/services.adoc                  | 27 ++++++++++++++++++++++
 2 files changed, 50 insertions(+), 1 deletion(-)

diff --git 
a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java
 
b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java
index a1658f1..c57856c 100644
--- 
a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java
+++ 
b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java
@@ -87,7 +87,7 @@ public class ServiceExample {
         //tag::deploy-by-key[]
         Ignite ignite = Ignition.start();
 
-        //making sure the cache exists
+        // Making sure the cache exists.
         ignite.getOrCreateCache("orgCache");
 
         ServiceConfiguration serviceCfg = new ServiceConfiguration();
@@ -157,6 +157,28 @@ public class ServiceExample {
     }
 
     @Test
+    void startWithStatistics() {
+        //tag::start-with-statistics[]
+        Ignite ignite = Ignition.start();
+
+        ServiceConfiguration serviceCfg = new ServiceConfiguration();
+
+        serviceCfg.setName("myService");
+        serviceCfg.setMaxPerNodeCount(1);
+        serviceCfg.setService(new MyCounterServiceImpl());
+
+        // Enable service statistics.
+        serviceCfg.setStatisticsEnabled(true);
+
+        ignite.services().deploy(serviceCfg);
+
+        MyCounterService svc = ignite.services().serviceProxy("myService", 
MyCounterService.class, true)
+        //end::start-with-statistics[]
+
+        ignite.close();
+    }
+
+    @Test
     void serviceConfiguration() {
         //tag::service-configuration[]
         ServiceConfiguration serviceCfg = new ServiceConfiguration();
diff --git a/docs/_docs/services/services.adoc 
b/docs/_docs/services/services.adoc
index dfdf114..8ff98ab 100644
--- a/docs/_docs/services/services.adoc
+++ b/docs/_docs/services/services.adoc
@@ -261,6 +261,33 @@ Use the following procedure to redeploy the service:
 
 In this way, you don't have to stop the server nodes, so you don't interrupt 
the operation of your cluster.
 
+== Service Statistics
+
+You can measure durations of your service's methods. If you want this 
analytics, enable service statistics in the
+service configuration. Service statistics are collected under name "Services" 
in
+link:monitoring-metrics/new-metrics-system.adoc[metrics], in
+link:monitoring-metrics/system-views.adoc[system views], and in JMX.
+
+[tabs]
+--
+tab:Java[]
+[source, java]
+----
+include::{javaFile}[tags=start-with-statistics, indent=0]
+----
+tab:C#/.NET[]
+tab:C++[]
+--
+
+[NOTE]
+====
+You should be aware:
+
+1. Overloaded service methods have the same metric by the method name.
+2. Service statistics do not take in account serialization and network issues.
+3. Service statistics slows down the invocations of service methods. Probably 
it's not
+an issue for slow-by-nature jobs like working with a DB.
+====
 
 // TODO: add how to  call java services from .NET
 

Reply via email to