private static void printStatValue(StatArchiveReader.StatValue v, long startTime, long endTime, boolean nofilter, boolean persec, boolean persample, boolean prunezeros, boolean details) { v = v.createTrimmed(startTime, endTime); if (nofilter) { v.setFilter(StatArchiveReader.StatValue.FILTER_NONE); } else if (persec) { v.setFilter(StatArchiveReader.StatValue.FILTER_PERSEC); } else if (persample) { v.setFilter(StatArchiveReader.StatValue.FILTER_PERSAMPLE); } if (prunezeros) { if (v.getSnapshotsMinimum() == 0.0 && v.getSnapshotsMaximum() == 0.0) { return; } } System.out.println(" " + v.toString()); if (details) { System.out.print(" values="); double[] snapshots = v.getSnapshots(); for (int i = 0; i < snapshots.length; i++) { System.out.print(' '); System.out.print(snapshots[i]); } System.out.println(); String desc = v.getDescriptor().getDescription(); if (desc != null && desc.length() > 0) { System.out.println(" " + desc); } } }
if (result.length > 0) { for (int i = 0; i < values.length; i++) { long[] valueTimeStamps = values[i].getRawAbsoluteTimeStamps(); double[] valueSnapshots = values[i].getRawSnapshots(); double currentValue = 0.0; int curIdx = 0; if (values[i].isTrimmedLeft() && valueSnapshots.length > 0) { currentValue = valueSnapshots[0];
public CombinedResources(StatValue v) { super(Arrays.asList(v.getResources())); }
public void load() throws IOException { if (cleanDatabaseOnLoad) { doCreateEmptyDatabase(); } statValueCache.clear(); statValueEmpty.clear(); final StatArchiveReader reader = new StatArchiveReader(new File[] { archiveFileName }, statFilters, false); for (Object r : reader.getResourceInstList()) { final StatArchiveReader.ResourceInst ri = (StatArchiveReader.ResourceInst) r; if (statFilters != null && statFilters.length > 0 && !statFilters[0].typeMatches(ri.getType().getName())) { // Filter out measurement types not in the allowed types list continue; } String measurementName = ri.getType().getName() + ":" + ri.getName(); LOG.info("Measurement [" + measurementName + "], Samples: " + ri.getSampleCount() + ", Fields: " + ri.getStatValues().length); doPrepareMeasurementLoad(); for (int measurementIndex = 0; measurementIndex < ri.getSampleCount(); measurementIndex++) { StatArchiveReader.StatValue[] measurementFields = ri.getStatValues(); long measurementTimestamp = measurementFields[0].getRawAbsoluteTimeStamps()[measurementIndex]; doLoadMeasurement(measurementName, ri.getType().getName(), measurementIndex, measurementTimestamp, measurementFields); } doCompleteMeasurementLoad(); } }
private double[] getCachedSeries(StatArchiveReader.StatValue measurementField) { if (!statValueCache.containsKey(measurementField)) { // System.out.println("Cache statistics values for : " + measurementField.getDescriptor().getName()); statValueCache.put(measurementField, measurementField.getRawSnapshots()); } return statValueCache.get(measurementField); }
/** * Computes a name for the provided measurement field. * @param measurementField field to compute the measurement name for. * @return Returns a measurement name for the provided measurementField */ public String getMeasurementFieldName(StatArchiveReader.StatValue measurementField) { return measurementField.getDescriptor().getName(); }
return new long[0]; long[] valueTimeStamps = values[0].getRawAbsoluteTimeStamps(); int tsCount = valueTimeStamps.length + 1; long[] ourTimeStamps = new long[(tsCount * 2) + 1]; valueTimeStamps = values[i].getRawAbsoluteTimeStamps(); if (valueTimeStamps.length == 0) { continue;
this.filter = this.values[0].getFilter(); String typeName = this.values[0].getType().getName(); String statName = this.values[0].getDescriptor().getName(); int bestTypeIdx = 0; for (int i = 1; i < this.values.length; i++) { if (this.filter != this.values[i].getFilter()) { if (!typeName.equals(this.values[i].getType().getName())) { throw new IllegalArgumentException( "Cannot combine values with different types."); if (!statName.equals(this.values[i].getDescriptor().getName())) { throw new IllegalArgumentException( "Cannot combine different stats."); if (this.values[i].getDescriptor().isCounter()) { if (!this.values[i].getDescriptor().isLargerBetter()) { } else if (this.values[bestTypeIdx].getDescriptor() .isCounter() == this.values[bestTypeIdx].getDescriptor().isLargerBetter()) { if (this.values[i].getDescriptor().isLargerBetter()) { if (this.values[bestTypeIdx].getDescriptor().isCounter() == this.values[bestTypeIdx] .getDescriptor().isLargerBetter()) { this.type = this.values[bestTypeIdx].getType(); this.descriptor = this.values[bestTypeIdx].getDescriptor();
private ComboValue(ComboValue original, long startTime, long endTime) { this.startTime = startTime; this.endTime = endTime; this.type = original.getType(); this.descriptor = original.getDescriptor(); this.filter = original.getFilter(); this.values = new StatValue[original.values.length]; for (int i = 0; i < this.values.length; i++) { this.values[i] = original.values[i].createTrimmed(startTime, endTime); } }
private static void addResourceInstsToSet(final File archiveFile, final String specString, final Set<ResourceInst> resourceInsts) throws IOException { StatSpec statSpec = new StatSpec(specString); StatArchiveReader reader = new StatArchiveReader(new File[] {archiveFile}, new StatSpec[] {statSpec}, true); StatValue[] statValues = reader.matchSpec(statSpec); for (StatValue statValue : statValues) { for (ResourceInst resourceInst : statValue.getResources()) { resourceInsts.add(resourceInst); } } }
@Override public ResourceInst[] getResources() { Set set = new HashSet(); for (int i = 0; i < values.length; i++) { set.addAll(Arrays.asList(values[i].getResources())); } ResourceInst[] result = new ResourceInst[set.size()]; return (ResourceInst[]) set.toArray(result); }