Merge changes from topic 'packfile-offloading-stats'

* changes:
  PackWriter/Statistics: Report offloaded size
  CachedPackUriProvider: Add size to the pack information
This commit is contained in:
Jonathan Tan 2019-10-11 17:50:29 -04:00 committed by Gerrit Code Review @ Eclipse.org
commit 52408c6afb
4 changed files with 51 additions and 4 deletions

View File

@ -2077,7 +2077,7 @@ public PackInfo getInfo(CachedPack pack,
assertThat(protocolsSupported, hasItems("https"));
if (!protocolsSupported.contains("https"))
return null;
return new PackInfo("myhash", "myuri");
return new PackInfo("myhash", "myuri", 100);
}
});

View File

@ -76,14 +76,22 @@ public static class PackInfo {
private final String hash;
private final String uri;
private final int size;
/**
* Constructs an object containing information about a packfile.
* @param hash the hash of the packfile as a hexadecimal string
* @param uri the URI corresponding to the packfile
*
* @param hash
* the hash of the packfile as a hexadecimal string
* @param uri
* the URI corresponding to the packfile
* @param size
* the size of the packfile in bytes
*/
public PackInfo(String hash, String uri) {
public PackInfo(String hash, String uri, int size) {
this.hash = hash;
this.uri = uri;
this.size = size;
}
/**
@ -99,5 +107,12 @@ public String getHash() {
public String getUri() {
return uri;
}
/**
* @return the size of the packfile in bytes (-1 if unknown)
*/
public long getSize() {
return size;
}
}
}

View File

@ -1230,6 +1230,8 @@ public void writePack(ProgressMonitor compressMonitor,
if (packInfo != null) {
o.writeString(packInfo.getHash() + ' ' +
packInfo.getUri() + '\n');
stats.offloadedPackfiles += 1;
stats.offloadedPackfileSize += packInfo.getSize();
} else {
unwrittenCachedPacks.add(pack);
}

View File

@ -270,6 +270,20 @@ public static class Accumulator {
* @since 5.4*/
public long treesTraversed;
/**
* Amount of packfile uris sent to the client to download via HTTP.
*
* @since 5.6
*/
public long offloadedPackfiles;
/**
* Total size (in bytes) offloaded to HTTP downloads.
*
* @since 5.6
*/
public long offloadedPackfileSize;
/**
* Statistics about each object type in the pack (commits, tags, trees
* and blobs.)
@ -597,6 +611,22 @@ public long getTreesTraversed() {
return statistics.treesTraversed;
}
/**
* @return amount of packfiles offloaded (sent as "packfile-uri")/
* @since 5.6
*/
public long getOffloadedPackfiles() {
return statistics.offloadedPackfiles;
}
/**
* @return total size (in bytes) offloaded to HTTP downloads.
* @since 5.6
*/
public long getOffloadedPackfilesSize() {
return statistics.offloadedPackfileSize;
}
/**
* Get total time spent processing this pack.
*