Improved federation stats.

This commit is contained in:
Christian P. MOMON 2020-11-20 17:13:18 +01:00
parent 920be72700
commit bfc3dbb942
4 changed files with 75 additions and 40 deletions

View file

@ -22,7 +22,6 @@ import java.io.File;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Iterator;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -672,41 +671,6 @@ public class Service extends PathPropertyList
return result; return result;
} }
/**
* Checks for filled metrics.
*
* @return true, if successful
*/
public boolean hasFilledMetrics()
{
boolean result;
boolean ended = false;
Iterator<PathProperty> iterator = this.iterator();
result = false;
while (!ended)
{
if (iterator.hasNext())
{
PathProperty property = iterator.next();
if (StringUtils.isNotBlank(property.getValue()))
{
ended = true;
result = true;
}
}
else
{
ended = true;
result = false;
}
}
//
return result;
}
/** /**
* Checks if is registration client. * Checks if is registration client.
* *

View file

@ -354,9 +354,9 @@ public class Htmlizer
OrganizationTurnoutStats stats = StatAgent.statsOrganizationTurnout(organizations); OrganizationTurnoutStats stats = StatAgent.statsOrganizationTurnout(organizations);
PieChart pie = new PieChart("Participation"); PieChart pie = new PieChart("Participation");
pie.add("Active A", stats.getWithSelfFileCount(), ChartColor.ORANGE); pie.add("1 fichier", stats.getWithSelfFileCount(), ChartColor.ORANGE);
pie.add("Active B", stats.getWithServiceFileCount(), ChartColor.YELLOW); pie.add("n fichiers", stats.getWithServiceFileCount(), ChartColor.YELLOW);
pie.add("Active C", stats.getWithServiceMetricCount(), ChartColor.GREEN); pie.add("Métriques", stats.getWithServiceMetricCount(), ChartColor.GREEN);
pie.add("Passive", stats.getPassiveCount(), ChartColor.BLUE); pie.add("Passive", stats.getPassiveCount(), ChartColor.BLUE);
pie.setLegendPosition(Position.RIGHT); pie.setLegendPosition(Position.RIGHT);

View file

@ -22,6 +22,8 @@ import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -160,6 +162,37 @@ public class PathPropertyList extends ArrayList<PathProperty> implements PathPro
return result; return result;
} }
/**
* Gets the by pattern.
*
* @param regex
* the regex
* @return the by pattern
*/
public PathPropertyList getByPattern(final String regex)
{
PathPropertyList result;
result = new PathPropertyList();
if (StringUtils.isNotBlank(regex))
{
Pattern pattern = Pattern.compile(regex);
for (PathProperty property : this)
{
Matcher matcher = pattern.matcher(property.getPath());
if (matcher.matches())
{
result.add(property);
}
}
}
//
return result;
}
/** /**
* Gets the by prefix. * Gets the by prefix.
* *
@ -404,6 +437,41 @@ public class PathPropertyList extends ArrayList<PathProperty> implements PathPro
return result; return result;
} }
/**
* Checks for filled metrics.
*
* @return true, if successful
*/
public boolean hasFilledValue()
{
boolean result;
boolean ended = false;
Iterator<PathProperty> iterator = this.iterator();
result = false;
while (!ended)
{
if (iterator.hasNext())
{
PathProperty property = iterator.next();
if (StringUtils.isNotBlank(property.getValue()))
{
ended = true;
result = true;
}
}
else
{
ended = true;
result = false;
}
}
//
return result;
}
@Override @Override
public void put(final String key, final long value) public void put(final String key, final long value)
{ {

View file

@ -37,6 +37,7 @@ import fr.devinsy.statoolinfos.core.Services;
import fr.devinsy.statoolinfos.core.Software; import fr.devinsy.statoolinfos.core.Software;
import fr.devinsy.statoolinfos.core.Softwares; import fr.devinsy.statoolinfos.core.Softwares;
import fr.devinsy.statoolinfos.crawl.CrawlCache; import fr.devinsy.statoolinfos.crawl.CrawlCache;
import fr.devinsy.statoolinfos.properties.PathPropertyList;
import fr.devinsy.statoolinfos.stats.categories.CategoryStat; import fr.devinsy.statoolinfos.stats.categories.CategoryStat;
import fr.devinsy.statoolinfos.stats.categories.CategoryStats; import fr.devinsy.statoolinfos.stats.categories.CategoryStats;
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats; import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats;
@ -381,7 +382,9 @@ public class StatAgent
{ {
Service service = iterator.next(); Service service = iterator.next();
if (service.hasFilledMetrics()) PathPropertyList lines = service.getByPattern("metrics\\..*\\.\\d{4}\\.(months|weeks|days)");
if (lines.hasFilledValue())
{ {
ended = true; ended = true;
result.incWithServiceMetricCount(); result.incWithServiceMetricCount();