code: @Override
      public void execute(TridentTuple tuple, TridentCollector collector)
      {
          String ipAddress = tuple.getStringByField("IPaddress");
          ApacheLog response = (ApacheLog) tuple.getValueByField("responseTime");
  
          ChangeFinder targetChangeFinder = this.changeFinderMap.get(ipAddress);
  
          if (targetChangeFinder == null)
          {
              targetChangeFinder = new ChangeFinder(this.arDimensionNum, this.smoothingWindow,
                      this.forgetability, true);
              this.changeFinderMap.put(ipAddress, targetChangeFinder);
          }
  
          Long longResponseTime = response.getTimeSum();
          Double responseTime = longResponseTime.doubleValue();
          double changeScore = targetChangeFinder.calculateScore(responseTime);
  
          if (logger.isDebugEnabled() == true)
          {
              logger.debug("Change Find Result: Host=" + ipAddress + ", response time="
                      + responseTime + ", score:" + changeScore);
          }
  
          if (changeScore > this.scoreThreshold)
          {
              logger.info("Over scoreThreshold: Host=" + ipAddress + ", response time="
                      + responseTime + ", score:" + changeScore);
          }
  
          response.setAnomalyScore(changeScore);
  
          collector.emit(new Values(response));
      }
docs: {@inheritDoc}