Include cause for retries into retry metrics

By looking at the metrics we want to know how often a certain error
causes requests to be retried. E.g. it's good that we retry requests on
LOCK_FAILURE, but if LOCK_FAILURES cause too many retries we want to
investigate why they are occurring that often. At the moment the retry
metrics only tell us how often requests were retried but not why.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: If58d87d05bdb64606cb9e37c215727e221c5e327
This commit is contained in:
Edwin Kempin
2019-10-31 10:59:02 +01:00
committed by David Pursehouse
parent 65c1650256
commit d31e337bf1
2 changed files with 54 additions and 13 deletions

View File

@@ -59,6 +59,9 @@ public abstract class Metadata {
// The type of change ID which the user used to identify a change (e.g. numeric ID, triplet etc.).
public abstract Optional<String> changeIdType();
// The cause of an error.
public abstract Optional<String> cause();
// The type of an event.
public abstract Optional<String> eventType();
@@ -158,12 +161,12 @@ public abstract class Metadata {
* Metadata{accountId=Optional.empty, actionType=Optional.empty, authDomainName=Optional.empty,
* branchName=Optional.empty, cacheKey=Optional.empty, cacheName=Optional.empty,
* className=Optional.empty, changeId=Optional[9212550], changeIdType=Optional.empty,
* eventType=Optional.empty, exportValue=Optional.empty, filePath=Optional.empty,
* garbageCollectorName=Optional.empty, gitOperation=Optional.empty, groupId=Optional.empty,
* groupName=Optional.empty, groupUuid=Optional.empty, httpStatus=Optional.empty,
* indexName=Optional.empty, indexVersion=Optional[0], methodName=Optional.empty,
* multiple=Optional.empty, operationName=Optional.empty, partial=Optional.empty,
* noteDbFilePath=Optional.empty, noteDbRefName=Optional.empty,
* cause=Optional.empty, eventType=Optional.empty, exportValue=Optional.empty,
* filePath=Optional.empty, garbageCollectorName=Optional.empty, gitOperation=Optional.empty,
* groupId=Optional.empty, groupName=Optional.empty, groupUuid=Optional.empty,
* httpStatus=Optional.empty, indexName=Optional.empty, indexVersion=Optional[0],
* methodName=Optional.empty, multiple=Optional.empty, operationName=Optional.empty,
* partial=Optional.empty, noteDbFilePath=Optional.empty, noteDbRefName=Optional.empty,
* noteDbSequenceType=Optional.empty, noteDbTable=Optional.empty, patchSetId=Optional.empty,
* pluginMetadata=[], pluginName=Optional.empty, projectName=Optional.empty,
* pushType=Optional.empty, resourceCount=Optional.empty, restViewName=Optional.empty,
@@ -276,6 +279,8 @@ public abstract class Metadata {
public abstract Builder changeIdType(@Nullable String changeIdType);
public abstract Builder cause(@Nullable String cause);
public abstract Builder eventType(@Nullable String eventType);
public abstract Builder exportValue(@Nullable String exportValue);