[java-identity-provider] branch master updated: Add new metrics to gauge set from OSJ-200 and OSJ-202.
Brent Putman
putmanb at georgetown.edu
Fri Jun 23 17:36:08 EDT 2017
This is an automated email from the git hooks/post-receive script.
putmanb pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=e3f062d93919175a44b63fcc5e6c7ff24b23f6bd
The following commit(s) were added to refs/heads/master by this push:
new e3f062d Add new metrics to gauge set from OSJ-200 and OSJ-202.
e3f062d is described below
commit e3f062d93919175a44b63fcc5e6c7ff24b23f6bd
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Fri Jun 23 17:35:22 2017 -0400
Add new metrics to gauge set from OSJ-200 and OSJ-202.
---
.../impl/MetadataResolverServiceGaugeSet.java | 71 +++++++++++++++++++---
1 file changed, 61 insertions(+), 10 deletions(-)
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
index a206969..27ace76 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/MetadataResolverServiceGaugeSet.java
@@ -16,6 +16,18 @@
*/
package net.shibboleth.idp.saml.metadata.impl;
+import java.util.Collections;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+
+import org.joda.time.DateTime;
+import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver;
+import org.opensaml.saml.metadata.resolver.MetadataResolver;
+import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver;
+import org.opensaml.saml.metadata.resolver.impl.AbstractReloadingMetadataResolver;
+
import com.codahale.metrics.Gauge;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
@@ -31,16 +43,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.service.ServiceableComponent;
-import java.util.Collections;
-import java.util.Map;
-
-import javax.annotation.Nonnull;
-
-import org.joda.time.DateTime;
-import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver;
-import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
-
/**
* Additional gauges for metadata resolvers.
*/
@@ -51,6 +53,7 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet i
*
* @param metricName name to include in metric names produced by this set
*/
+ // Checkstyle: MethodLength OFF
public MetadataResolverServiceGaugeSet(
@Nonnull @NotEmpty @ParameterName(name="metricName") final String metricName) {
super(metricName);
@@ -98,7 +101,55 @@ public class MetadataResolverServiceGaugeSet extends ReloadableServiceGaugeSet i
return mapBuilder.build();
}
});
+
+ //TODO v4.0.0 - Switch to use RefreshableMetadataResolver when new methods promoted to interface
+ getMetricMap().put(
+ MetricRegistry.name(DEFAULT_METRIC_NAME, metricName, "successfulRefresh"),
+ new Gauge<Map<String,DateTime>>() {
+ public Map<String,DateTime> getValue() {
+ final Builder mapBuilder = ImmutableMap.<String,DateTime>builder();
+ final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent();
+ if (component != null) {
+ try {
+ for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) {
+ if (resolver instanceof AbstractReloadingMetadataResolver) {
+ mapBuilder.put(resolver.getId(),
+ ((AbstractReloadingMetadataResolver) resolver)
+ .getLastSuccessfulRefresh());
+ }
+ }
+ } finally {
+ component.unpinComponent();
+ }
+ }
+ return mapBuilder.build();
+ }
+ });
+
+ //TODO v4.0.0 - Switch to use BatchMetadataResolver when new methods promoted to interface
+ getMetricMap().put(
+ MetricRegistry.name(DEFAULT_METRIC_NAME, metricName, "rootValidUntil"),
+ new Gauge<Map<String,DateTime>>() {
+ public Map<String,DateTime> getValue() {
+ final Builder mapBuilder = ImmutableMap.<String,DateTime>builder();
+ final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent();
+ if (component != null) {
+ try {
+ for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) {
+ if (resolver instanceof AbstractBatchMetadataResolver) {
+ mapBuilder.put(resolver.getId(),
+ ((AbstractBatchMetadataResolver) resolver).getRootValidUntil());
+ }
+ }
+ } finally {
+ component.unpinComponent();
+ }
+ }
+ return mapBuilder.build();
+ }
+ });
}
+ // Checkstyle: MethodLength ON
/** {@inheritDoc} */
@Override
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list