summaryrefslogtreecommitdiffstats
path: root/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-04-22 15:57:26 +0200
committerGitHub <noreply@github.com>2022-04-22 15:57:26 +0200
commit4646ccafd4e6c119b7821b35e4ee648dee9a79e9 (patch)
treeda6cd1bff647355c70fbac32b6f5444381183bb1 /vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
parent3e390a207678ffc4add70ab0b05a59c6bebb61c7 (diff)
parent2c6f9ee65bdcc2da21669f341da4103fddfe92b9 (diff)
Merge pull request #22194 from vespa-engine/olaa/zms-quota-monitoring
Monitor ZMS quota
Diffstat (limited to 'vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
new file mode 100644
index 00000000000..8e9c7de9272
--- /dev/null
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/QuotaUsage.java
@@ -0,0 +1,55 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.athenz.client.zms;
+
+import com.yahoo.vespa.athenz.client.zms.bindings.StatisticsEntity;
+
+/**
+ * @author olaa
+ */
+public class QuotaUsage {
+
+ private double subdomainUsage;
+ private double roleUsage;
+ private double policyUsage;
+ private double serviceUsage;
+ private double groupUsage;
+
+
+ public QuotaUsage(double subdomainUsage, double roleUsage, double policyUsage, double serviceUsage, double groupUsage) {
+ this.subdomainUsage = subdomainUsage;
+ this.roleUsage = roleUsage;
+ this.policyUsage = policyUsage;
+ this.serviceUsage = serviceUsage;
+ this.groupUsage = groupUsage;
+ }
+
+ public static QuotaUsage calculateUsage(StatisticsEntity used, StatisticsEntity quota) {
+ return new QuotaUsage(
+ (double) used.getSubdomains() / quota.getSubdomains(),
+ (double) used.getRoles() / quota.getRoles(),
+ (double) used.getPolicies() / quota.getPolicies(),
+ (double) used.getServices() / quota.getServices(),
+ (double) used.getGroups() / quota.getGroups()
+ );
+ }
+
+ public double getSubdomainUsage() {
+ return subdomainUsage;
+ }
+
+ public double getRoleUsage() {
+ return roleUsage;
+ }
+
+ public double getPolicyUsage() {
+ return policyUsage;
+ }
+
+ public double getServiceUsage() {
+ return serviceUsage;
+ }
+
+ public double getGroupUsage() {
+ return groupUsage;
+ }
+} \ No newline at end of file