use of lombok.Synchronized in project pravega by pravega.
the class StatsProviderImpl method start.
@Synchronized
@Override
public void start() {
init();
if (conf.isEnableCSVReporter()) {
// NOTE: metrics output files are exclusive to a given process
File outdir;
if (!Strings.isNullOrEmpty(conf.getMetricsPrefix())) {
outdir = new File(conf.getCsvEndpoint(), conf.getMetricsPrefix());
} else {
outdir = new File(conf.getCsvEndpoint());
}
outdir.mkdirs();
log.info("Configuring stats with csv output to directory [{}]", outdir.getAbsolutePath());
reporters.add(CsvReporter.forRegistry(getMetrics()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build(outdir));
}
if (conf.isEnableStatsdReporter()) {
log.info("Configuring stats with statsD at {}:{}", conf.getStatsDHost(), conf.getStatsDPort());
reporters.add(StatsDReporter.forRegistry(getMetrics()).build(conf.getStatsDHost(), conf.getStatsDPort()));
}
if (conf.isEnableGraphiteReporter()) {
log.info("Configuring stats with graphite at {}:{}", conf.getGraphiteHost(), conf.getGraphitePort());
final Graphite graphite = new Graphite(new InetSocketAddress(conf.getGraphiteHost(), conf.getGraphitePort()));
reporters.add(GraphiteReporter.forRegistry(getMetrics()).prefixedWith(conf.getMetricsPrefix()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).build(graphite));
}
if (conf.isEnableJMXReporter()) {
log.info("Configuring stats with jmx {}", conf.getJmxDomain());
final JmxReporter jmx = JmxReporter.forRegistry(getMetrics()).inDomain(conf.getJmxDomain()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build();
jmx.start();
}
if (conf.isEnableGangliaReporter()) {
try {
log.info("Configuring stats with ganglia at {}:{}", conf.getGangliaHost(), conf.getGangliaPort());
final GMetric ganglia = new GMetric(conf.getGangliaHost(), conf.getGangliaPort(), GMetric.UDPAddressingMode.MULTICAST, 1);
reporters.add(GangliaReporter.forRegistry(getMetrics()).prefixedWith(conf.getMetricsPrefix()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build(ganglia));
} catch (IOException e) {
log.warn("ganglia create failure: {}", e);
}
}
if (conf.isEnableConsoleReporter()) {
log.info("Configuring console reporter");
reporters.add(ConsoleReporter.forRegistry(getMetrics()).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build());
}
for (ScheduledReporter r : reporters) {
r.start(conf.getStatsOutputFrequencySeconds(), TimeUnit.SECONDS);
}
}
use of lombok.Synchronized in project cas by apereo.
the class SamlRegisteredServiceMetadataResolverCacheLoader method load.
@Override
@Synchronized
@SneakyThrows
public ChainingMetadataResolver load(final SamlRegisteredService service) {
final ChainingMetadataResolver metadataResolver = new ChainingMetadataResolver();
final List<MetadataResolver> metadataResolvers = new ArrayList<>();
final Collection<SamlRegisteredServiceMetadataResolver> availableResolvers = this.metadataResolutionPlan.getRegisteredMetadataResolvers();
availableResolvers.stream().filter(Objects::nonNull).filter(r -> r.supports(service)).map(r -> r.resolve(service)).forEach(metadataResolvers::addAll);
if (metadataResolvers.isEmpty()) {
throw new SamlException("No metadata resolvers could be configured for service " + service.getName() + " with metadata location " + service.getMetadataLocation());
}
metadataResolver.setId(ChainingMetadataResolver.class.getCanonicalName());
metadataResolver.setResolvers(metadataResolvers);
metadataResolver.initialize();
LOGGER.debug("Metadata resolvers active for this request are [{}]", metadataResolver);
return metadataResolver;
}
use of lombok.Synchronized in project pravega by pravega.
the class S3ProxyImpl method putObject.
@Synchronized
@Override
public void putObject(String bucketName, String key, Range range, Object content) {
byte[] totalByes = new byte[Math.toIntExact(range.getLast() + 1)];
try {
if (range.getFirst() != 0) {
int bytesRead = client.getObject(bucketName, key).getObject().read(totalByes, 0, Math.toIntExact(range.getFirst()));
if (bytesRead != range.getFirst()) {
throw new IllegalStateException("Unable to read from the object " + key);
}
}
int bytesRead = ((InputStream) content).read(totalByes, Math.toIntExact(range.getFirst()), Math.toIntExact(range.getLast() + 1 - range.getFirst()));
if (bytesRead != range.getLast() + 1 - range.getFirst()) {
throw new IllegalStateException("Not able to read from input stream.");
}
client.putObject(new PutObjectRequest(bucketName, key, (Object) new ByteArrayInputStream(totalByes)));
aclMap.put(key, aclMap.get(key).withSize(range.getLast() - 1));
} catch (IOException e) {
throw new S3Exception("NoObject", HttpStatus.SC_NOT_FOUND, "NoSuchKey", key);
}
}
use of lombok.Synchronized in project pravega by pravega.
the class StatsProviderImpl method init.
@Synchronized
private void init() {
// I'm not entirely sure that re-inserting is necessary, but given that
// at this point we are preserving the registry, it seems safer to remove
// and re-insert.
MemoryUsageGaugeSet memoryGaugeNames = new MemoryUsageGaugeSet();
GarbageCollectorMetricSet gcMetricSet = new GarbageCollectorMetricSet();
memoryGaugeNames.getMetrics().forEach((key, value) -> metrics.remove(key));
gcMetricSet.getMetrics().forEach((key, value) -> metrics.remove(key));
metrics.registerAll(new MemoryUsageGaugeSet());
metrics.registerAll(new GarbageCollectorMetricSet());
}
use of lombok.Synchronized in project pravega by pravega.
the class StatsProviderImpl method close.
@Synchronized
@Override
public void close() {
for (ScheduledReporter r : reporters) {
try {
r.report();
r.stop();
} catch (Exception e) {
log.error("Exception report or stop reporter", e);
}
}
metrics.removeMatching(MetricFilter.ALL);
}
Aggregations