diff --git a/security-admin/src/main/java/org/apache/ranger/metrics/RangerAdminMetricsWrapper.java b/security-admin/src/main/java/org/apache/ranger/metrics/RangerAdminMetricsWrapper.java index 42ad39efd8..5709ab3f22 100644 --- a/security-admin/src/main/java/org/apache/ranger/metrics/RangerAdminMetricsWrapper.java +++ b/security-admin/src/main/java/org/apache/ranger/metrics/RangerAdminMetricsWrapper.java @@ -21,6 +21,7 @@ import org.apache.ranger.metrics.source.RangerAdminMetricsSourceContextEnricher; import org.apache.ranger.metrics.source.RangerAdminMetricsSourceDenyConditions; +import org.apache.ranger.metrics.source.RangerAdminMetricsSourceGds; import org.apache.ranger.metrics.source.RangerAdminMetricsSourcePolicyMasking; import org.apache.ranger.metrics.source.RangerAdminMetricsSourcePolicyResourceAccess; import org.apache.ranger.metrics.source.RangerAdminMetricsSourcePolicyRowFiltering; @@ -72,6 +73,9 @@ public class RangerAdminMetricsWrapper { @Autowired private RangerAdminMetricsSourceSummary summarySource; + @Autowired + private RangerAdminMetricsSourceGds gdsSource; + @PostConstruct public void init() { LOG.info("===>> RangerAdminMetricsWrapper.init()"); @@ -100,6 +104,9 @@ public void init() { //Source: Summary sourceWrappers.add(new RangerMetricsSourceWrapper("RangerAdminMetricsSourceSummary", "Summary in Ranger Admin", context, summarySource)); + //Source: Gds + sourceWrappers.add(new RangerMetricsSourceWrapper("RangerAdminMetricsSourceGds", "Gds in Ranger Admin", context, gdsSource)); + rangerMetricsSystemWrapper.init(context, sourceWrappers, Collections.emptyList()); } catch (Exception e) { LOG.error("RangerAdminMetricsWrapper: Exception occured while initializing Metric Starter:", e); diff --git a/security-admin/src/main/java/org/apache/ranger/metrics/RangerMetricsFetcher.java b/security-admin/src/main/java/org/apache/ranger/metrics/RangerMetricsFetcher.java index d8ec1426b2..c7184d5c35 100644 --- a/security-admin/src/main/java/org/apache/ranger/metrics/RangerMetricsFetcher.java +++ b/security-admin/src/main/java/org/apache/ranger/metrics/RangerMetricsFetcher.java @@ -173,6 +173,9 @@ public Map getSummary() { //policies ret.put("TotalPolicies", summaryPolicy.values().stream().mapToLong(Long::longValue).sum()); + //securityzones + ret.put("TotalSecurityZones", daoMgr.getXXSecurityZoneDao().getAllCount()); + //x_trx_log_v2 ret.put("TotalAdminAudits", daoMgr.getXXTrxLogV2().getAllCount()); @@ -187,4 +190,22 @@ public Map getSummary() { return ret; } + + public Map getGdsMetrics() { + Map ret = new HashMap<>(); + + //x_gds_dataset + ret.put("Dataset", daoMgr.getXXGdsDataset().getAllCount()); + + //x_gds_data_share + ret.put("DataShare", daoMgr.getXXGdsDataShare().getAllCount()); + + //x_gds_shared_resource + ret.put("SharedResource", daoMgr.getXXGdsSharedResource().getAllCount()); + + //x_gds_project + ret.put("Project", daoMgr.getXXGdsProject().getAllCount()); + + return ret; + } } diff --git a/security-admin/src/main/java/org/apache/ranger/metrics/source/RangerAdminMetricsSourceGds.java b/security-admin/src/main/java/org/apache/ranger/metrics/source/RangerAdminMetricsSourceGds.java new file mode 100644 index 0000000000..1fc75d6fc8 --- /dev/null +++ b/security-admin/src/main/java/org/apache/ranger/metrics/source/RangerAdminMetricsSourceGds.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.ranger.metrics.source; + +import org.apache.ranger.metrics.RangerMetricsFetcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class RangerAdminMetricsSourceGds extends RangerAdminMetricsSourceBase { + @Autowired + private RangerMetricsFetcher rangerMetricsFetcher; + + public RangerAdminMetricsSourceGds() { + super("admin", "Gds"); + } + + @Override + protected void refresh() { + Map gdsMetrics = rangerMetricsFetcher.getGdsMetrics(); + + addMetricEntries("GdsCount", gdsMetrics); + } +}