add some tags to ProfileController.versionNotFound
This commit is contained in:
parent
55f85a81c6
commit
1a46ac122a
|
@ -9,8 +9,8 @@ import static org.whispersystems.textsecuregcm.metrics.MetricsUtil.name;
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import io.dropwizard.auth.Auth;
|
import io.dropwizard.auth.Auth;
|
||||||
import io.micrometer.core.instrument.Counter;
|
|
||||||
import io.micrometer.core.instrument.Metrics;
|
import io.micrometer.core.instrument.Metrics;
|
||||||
|
import io.micrometer.core.instrument.Tags;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
@ -79,6 +79,7 @@ import org.whispersystems.textsecuregcm.identity.IdentityType;
|
||||||
import org.whispersystems.textsecuregcm.identity.PniServiceIdentifier;
|
import org.whispersystems.textsecuregcm.identity.PniServiceIdentifier;
|
||||||
import org.whispersystems.textsecuregcm.identity.ServiceIdentifier;
|
import org.whispersystems.textsecuregcm.identity.ServiceIdentifier;
|
||||||
import org.whispersystems.textsecuregcm.limits.RateLimiters;
|
import org.whispersystems.textsecuregcm.limits.RateLimiters;
|
||||||
|
import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil;
|
||||||
import org.whispersystems.textsecuregcm.s3.PolicySigner;
|
import org.whispersystems.textsecuregcm.s3.PolicySigner;
|
||||||
import org.whispersystems.textsecuregcm.s3.PostPolicyGenerator;
|
import org.whispersystems.textsecuregcm.s3.PostPolicyGenerator;
|
||||||
import org.whispersystems.textsecuregcm.storage.Account;
|
import org.whispersystems.textsecuregcm.storage.Account;
|
||||||
|
@ -121,7 +122,7 @@ public class ProfileController {
|
||||||
|
|
||||||
private static final String EXPIRING_PROFILE_KEY_CREDENTIAL_TYPE = "expiringProfileKey";
|
private static final String EXPIRING_PROFILE_KEY_CREDENTIAL_TYPE = "expiringProfileKey";
|
||||||
|
|
||||||
private static final Counter VERSION_NOT_FOUND_COUNTER = Metrics.counter(name(ProfileController.class, "versionNotFound"));
|
private static final String VERSION_NOT_FOUND_COUNTER_NAME = name(ProfileController.class, "versionNotFound");
|
||||||
|
|
||||||
public ProfileController(
|
public ProfileController(
|
||||||
Clock clock,
|
Clock clock,
|
||||||
|
@ -237,6 +238,7 @@ public class ProfileController {
|
||||||
return buildVersionedProfileResponse(targetAccount,
|
return buildVersionedProfileResponse(targetAccount,
|
||||||
version,
|
version,
|
||||||
maybeRequester.map(requester -> ProfileHelper.isSelfProfileRequest(requester.getUuid(), accountIdentifier)).orElse(false),
|
maybeRequester.map(requester -> ProfileHelper.isSelfProfileRequest(requester.getUuid(), accountIdentifier)).orElse(false),
|
||||||
|
false,
|
||||||
containerRequestContext);
|
containerRequestContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -390,20 +392,27 @@ public class ProfileController {
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
|
||||||
return new ExpiringProfileKeyCredentialProfileResponse(
|
return new ExpiringProfileKeyCredentialProfileResponse(
|
||||||
buildVersionedProfileResponse(account, version, isSelf, containerRequestContext),
|
buildVersionedProfileResponse(account, version, isSelf, true, containerRequestContext),
|
||||||
expiringProfileKeyCredentialResponse);
|
expiringProfileKeyCredentialResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
private VersionedProfileResponse buildVersionedProfileResponse(final Account account,
|
private VersionedProfileResponse buildVersionedProfileResponse(final Account account,
|
||||||
final String version,
|
final String version,
|
||||||
final boolean isSelf,
|
final boolean isSelf,
|
||||||
|
final boolean hasCredentialRequest,
|
||||||
final ContainerRequestContext containerRequestContext) {
|
final ContainerRequestContext containerRequestContext) {
|
||||||
|
|
||||||
final Optional<VersionedProfile> maybeProfile = profilesManager.get(account.getUuid(), version);
|
final Optional<VersionedProfile> maybeProfile = profilesManager.get(account.getUuid(), version);
|
||||||
|
|
||||||
if (maybeProfile.isEmpty()) {
|
if (maybeProfile.isEmpty()) {
|
||||||
// Hypothesis: this should basically never happen since clients can't delete versions
|
// Hypothesis: this should basically never happen since clients can't delete versions
|
||||||
VERSION_NOT_FOUND_COUNTER.increment();
|
Metrics.counter(
|
||||||
|
VERSION_NOT_FOUND_COUNTER_NAME,
|
||||||
|
Tags.of(
|
||||||
|
"self", String.valueOf(isSelf),
|
||||||
|
"credential_request", String.valueOf(hasCredentialRequest),
|
||||||
|
"platform", UserAgentTagUtil.getPlatformTag(containerRequestContext.getHeaderString("User-Agent")).getValue()))
|
||||||
|
.increment();
|
||||||
}
|
}
|
||||||
|
|
||||||
final byte[] name = maybeProfile.map(VersionedProfile::name).orElse(null);
|
final byte[] name = maybeProfile.map(VersionedProfile::name).orElse(null);
|
||||||
|
|
Loading…
Reference in New Issue