You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by tm...@apache.org on 2019/08/10 15:08:14 UTC

[plc4x] 05/05: adjusted logging to lower level

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

tmitsch pushed a commit to branch feature/improve-scraper-tim
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit f4ace2c8c24287cf1a4577cace62ada4e849dd51
Author: Tim Mitsch <t....@pragmaticindustries.de>
AuthorDate: Sat Jun 22 02:23:11 2019 +0200

    adjusted logging to lower level
---
 .../triggeredscraper/TriggeredScraperImpl.java     | 20 ++++---
 .../triggeredscraper/TriggeredScraperTask.java     | 61 ++++++++++++++++------
 .../triggerhandler/TriggerConfiguration.java       | 17 ++++--
 .../collector/TriggerCollectorImpl.java            |  4 +-
 .../plc4x/java/scraper/TriggeredScraperRunner.java |  2 +-
 5 files changed, 72 insertions(+), 32 deletions(-)

diff --git a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
index 29cd7f4..d3e8a19 100644
--- a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
+++ b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
@@ -165,11 +165,13 @@ public class TriggeredScraperImpl implements Scraper, TriggeredScraperMBean {
         for(ScrapeJob job:jobs){
             //iterate over all source the jobs shall performed on
             for(Map.Entry<String,String> sourceEntry:job.getSourceConnections().entrySet()){
-                LOGGER.debug("Register task for job {} for conn {} ({}) at rate {} ms",
-                    job.getJobName(),
-                    sourceEntry.getKey(),
-                    sourceEntry.getValue(),
-                    job.getScrapeRate());
+                if(LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Register task for job {} for conn {} ({}) at rate {} ms",
+                        job.getJobName(),
+                        sourceEntry.getKey(),
+                        sourceEntry.getValue(),
+                        job.getScrapeRate());
+                }
 
                 //create the regarding triggered scraper task
                 TriggeredScraperTask triggeredScraperTask;
@@ -187,7 +189,9 @@ public class TriggeredScraperImpl implements Scraper, TriggeredScraperMBean {
                         triggerCollector);
 
                     // Add task to internal list
-                    LOGGER.info("Task {} added to scheduling", triggeredScraperTask);
+                    if(LOGGER.isInfoEnabled()) {
+                        LOGGER.info("Task {} added to scheduling", triggeredScraperTask);
+                    }
                     registerTaskMBean(triggeredScraperTask);
                     tasks.put(job, triggeredScraperTask);
                     ScheduledFuture<?> future = scheduler.scheduleAtFixedRate(triggeredScraperTask, 0, job.getScrapeRate(), TimeUnit.MILLISECONDS);
@@ -211,7 +215,9 @@ public class TriggeredScraperImpl implements Scraper, TriggeredScraperMBean {
                     entry.getValue().getPercentageFailed(),
                     statistics.apply(new PercentageAboveThreshold(entry.getKey().getScrapeRate() * 1e6)),
                     statistics.getMin() * 1e-6, statistics.getMean() * 1e-6, statistics.getPercentile(50) * 1e-6);
-                LOGGER.debug(msg);
+                if(LOGGER.isDebugEnabled()) {
+                    LOGGER.debug(msg);
+                }
             }
         }, 1_000, 1_000, TimeUnit.MILLISECONDS);
     }
diff --git a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
index dc0d676..92cfcd9 100644
--- a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
+++ b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
@@ -48,9 +48,7 @@ import java.util.stream.Collectors;
  * performs the triggered task from a job for one device based on the TriggerHandler as defined in Configuration
  * ToDo Implement the monitoring as well: PLC4X-90
  */
-public class TriggeredScraperTask implements ScraperTask {
-
-
+public class TriggeredScraperTask implements ScraperTask, TriggeredScraperTaskMBean {
     private static final Logger LOGGER = LoggerFactory.getLogger(TriggeredScraperTask.class);
 
     private final PlcDriverManager driverManager;
@@ -93,9 +91,14 @@ public class TriggeredScraperTask implements ScraperTask {
     @Override
     //ToDo code-refactoring and improved testing --> PLC4X-90
     public void run() {
+        if(LOGGER.isTraceEnabled()) {
+            LOGGER.trace("Check condition for task of job {} for connection {}", jobName, connectionAlias);
+        }
         if(this.triggerHandler.checkTrigger()) {
             // Does a single fetch only when trigger is valid
-            LOGGER.info("Trigger for job {} and device {} is met ... scraping desired data",jobName,connectionAlias);
+            if(LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Trigger for job {} and device {} is met ... scraping desired data", jobName, connectionAlias);
+            }
             if(LOGGER.isTraceEnabled()) {
                 LOGGER.trace("Start new scrape of task of job {} for connection {}", jobName, connectionAlias);
             }
@@ -139,7 +142,9 @@ public class TriggeredScraperTask implements ScraperTask {
                 // Handle response (Async)
                 CompletableFuture.runAsync(() -> resultHandler.handle(jobName, connectionAlias, TriggeredScraperImpl.convertPlcResponseToMap(response)), executorService);
             } catch (Exception e) {
-                LOGGER.debug("Exception during scrape", e);
+                if(LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Exception during scrape", e);
+                }
                 handleException(e);
             } finally {
                 if (connection != null) {
@@ -174,42 +179,37 @@ public class TriggeredScraperTask implements ScraperTask {
 
     @Override
     public String getJobName() {
-        return null;
+        return this.jobName;
     }
 
     @Override
     public String getConnectionAlias() {
-        return null;
+        return this.connectionAlias;
     }
 
     @Override
     public long getRequestCounter() {
-        return 0;
+        return this.requestCounter.get();
     }
 
     @Override
     public long getSuccessfullRequestCounter() {
-        return 0;
+        return this.successCounter.get();
     }
 
     @Override
     public DescriptiveStatistics getLatencyStatistics() {
-        return null;
-    }
-
-    @Override
-    public double getPercentageFailed() {
-        return 0;
+        return this.latencyStatistics;
     }
 
     @Override
     public void handleException(Exception e) {
-
+        // TODO Implement this
     }
 
     @Override
     public void handleErrorResponse(Map<String, PlcResponseCode> failed) {
-
+        // TODO Implement this
     }
 
     public PlcDriverManager getDriverManager() {
@@ -241,4 +241,31 @@ public class TriggeredScraperTask implements ScraperTask {
             ", triggerHandler=" + triggerHandler +
             '}';
     }
+
+    //---------------------------------
+    // JMX Monitoring
+    //---------------------------------
+    @Override
+    public long getScrapesTotal() {
+        return requestCounter.get();
+    }
+
+    @Override
+    public long getScrapesSuccess() {
+        return successCounter.get();
+    }
+
+    @Override
+    public double getPercentageFailed() {
+        return 100.0 - (double)this.getScrapesSuccess()/this.getScrapesTotal() * 100.0;
+    }
+
+    @Override
+    public String[] getPercentiles() {
+        String[] percentiles = new String[10];
+        for (int i = 1; i <= 10; i += 1) {
+            percentiles[i - 1] = String.format("%d%%: %s ms", 10 * i, latencyStatistics.getPercentile(10.0 * i) * 1e-6);
+        }
+        return percentiles;
+    }
 }
diff --git a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
index 0e74682..6fbd234 100644
--- a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
+++ b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
@@ -325,7 +325,9 @@ public class TriggerConfiguration{
                 return false;
             }
             if(triggerResultList.size()>1) {
-                logger.trace("{}",triggerResultList);
+                if(logger.isTraceEnabled()) {
+                    logger.trace("{}", triggerResultList);
+                }
                 boolean combinedResult=triggerResultList.get(0);
                 for (int countElements = 1; countElements < acquiredValuesList.size(); countElements++) {
                     switch (triggerElementList.get(countElements).getConcatType()){
@@ -368,8 +370,9 @@ public class TriggerConfiguration{
         if(matcher.matches()){
             String triggerStrategy = matcher.group("strategy");
             String scheduledMs = matcher.group("scheduledInterval");
-
-            logger.debug("Strategy: {}, scheduled ms: {}",triggerStrategy,scheduledMs);
+            if(logger.isDebugEnabled()) {
+                logger.debug("Strategy: {}, scheduled ms: {}", triggerStrategy, scheduledMs);
+            }
 
             String triggerVar = matcher.group("triggerVar");
             String comparatorString = matcher.group("comp");
@@ -434,7 +437,9 @@ public class TriggerConfiguration{
 
     private void handleException(Exception e){
         //push up if needed
-        logger.debug("Exception: ", e);
+        if(logger.isDebugEnabled()) {
+            logger.debug("Exception: ", e);
+        }
     }
 
     TriggerType getTriggerType() {
@@ -696,7 +701,9 @@ public class TriggerConfiguration{
 
         void overrideCompareValue(){
             if(this.previousMode && this.reservedCompareValue!=null){
-                logger.info("Compare value overridden, before: {}, now: {}; for Trigger {}",this.compareValue,this.reservedCompareValue,this.triggerJob);
+                if(logger.isDebugEnabled()) {
+                    logger.debug("Compare value overridden, before: {}, now: {}; for Trigger {}", this.compareValue, this.reservedCompareValue, this.triggerJob);
+                }
                 this.compareValue = this.reservedCompareValue;
             }
         }
diff --git a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
index e4be70a..02d158b 100644
--- a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
+++ b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
@@ -94,8 +94,8 @@ public class TriggerCollectorImpl implements TriggerCollector {
         RequestElement requestElement = new RequestElement(plcConnectionString,plcField,interval, uuid);
         if(!currentRequestElements.containsValue(requestElement)){
             currentRequestElements.put(uuid,requestElement);
-            if(logger.isInfoEnabled()) {
-                logger.info("Received request to: {} for PLC: {}", plcField, plcConnectionString);
+            if(logger.isDebugEnabled()) {
+                logger.debug("Received request to: {} for PLC: {}", plcField, plcConnectionString);
             }
             return uuid;
         }
diff --git a/plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunner.java b/plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunner.java
index b9072d9..5c22893 100644
--- a/plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunner.java
+++ b/plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunner.java
@@ -41,7 +41,7 @@ public class TriggeredScraperRunner {
      * testing of TriggeredScraper vs real device
      */
     public static void main(String[] args) throws IOException, ScraperException {
-        TriggeredScraperConfiguration configuration = TriggeredScraperConfiguration.fromFile("plc4j/utils/scraper/src/test/resources/example_triggered_scraper2.yml");
+        TriggeredScraperConfiguration configuration = TriggeredScraperConfiguration.fromFile("plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml");
 
         PlcDriverManager plcDriverManager = new PooledPlcDriverManager();
         TriggerCollector triggerCollector = new TriggerCollectorImpl(plcDriverManager);