Add `MicrometerRegistryManager`

This commit is contained in:
Chris Eager 2022-02-16 15:41:02 -08:00 committed by Chris Eager
parent a2c4d3fe95
commit b2b20072ae
2 changed files with 32 additions and 0 deletions

View File

@ -134,6 +134,7 @@ import org.whispersystems.textsecuregcm.metrics.GarbageCollectionGauges;
import org.whispersystems.textsecuregcm.metrics.MaxFileDescriptorGauge;
import org.whispersystems.textsecuregcm.metrics.MetricsApplicationEventListener;
import org.whispersystems.textsecuregcm.metrics.MetricsRequestEventListener;
import org.whispersystems.textsecuregcm.metrics.MicrometerRegistryManager;
import org.whispersystems.textsecuregcm.metrics.NetworkReceivedGauge;
import org.whispersystems.textsecuregcm.metrics.NetworkSentGauge;
import org.whispersystems.textsecuregcm.metrics.OperatingSystemMemoryGauge;
@ -296,6 +297,8 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
Metrics.addRegistry(datadogMeterRegistry);
}
environment.lifecycle().manage(new MicrometerRegistryManager(Metrics.globalRegistry));
environment.getObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
environment.getObjectMapper().setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE);
environment.getObjectMapper().setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);

View File

@ -0,0 +1,29 @@
/*
* Copyright 2022 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.whispersystems.textsecuregcm.metrics;
import io.dropwizard.lifecycle.Managed;
import io.micrometer.core.instrument.MeterRegistry;
public class MicrometerRegistryManager implements Managed {
private final MeterRegistry meterRegistry;
public MicrometerRegistryManager(final MeterRegistry meterRegistry) {
this.meterRegistry = meterRegistry;
}
@Override
public void start() throws Exception {
}
@Override
public void stop() throws Exception {
// closing the registry publishes one final set of metrics
meterRegistry.close();
}
}