public class HttpFeed extends AbstractFeed
private HttpFeed feed;
//@Override
protected void connectSensors() {
super.connectSensors();
feed = HttpFeed.builder()
.entity(this)
.period(200)
.baseUri(String.format("http://%s:%s/management/subsystem/web/connector/http/read-resource", host, port))
.baseUriVars(ImmutableMap.of("include-runtime","true"))
.poll(new HttpPollConfig<Boolean>(SERVICE_UP)
.onSuccess(HttpValueFunctions.responseCodeEquals(200))
.onError(Functions.constant(false)))
.poll(new HttpPollConfig<Integer>(REQUEST_COUNT)
.onSuccess(HttpValueFunctions.jsonContents("requestCount", Integer.class)))
.build();
}
{@literal @}Override
protected void disconnectSensors() {
super.disconnectSensors();
if (feed != null) feed.stop();
}
This also supports giving a Supplier for the URL
(e.g. Entities.attributeSupplier(brooklyn.entity.Entity, brooklyn.event.AttributeSensor)
)
from a sensor. Note however that if a Supplier-based sensor is *https*,
https-specific initialization may not occur if the URL is not available at start time,
and it may report errors if that sensor is not available.
Some guidance for controlling enablement of a feed based on availability of a sensor
can be seen in HttpLatencyDetector (in brooklyn-policy).
Modifier and Type | Class and Description |
---|---|
static class |
HttpFeed.Builder |
AbstractEntityAdjunct.AdjunctTagSupport
BrooklynObject.TagSupport
Configurable.ConfigurationSupport
BrooklynObjectInternal.ConfigurationSupportInternal
Modifier and Type | Field and Description |
---|---|
static org.slf4j.Logger |
log |
static ConfigKey<com.google.common.collect.SetMultimap<brooklyn.event.feed.http.HttpFeed.HttpPollIdentifier,HttpPollConfig<?>>> |
POLLS |
ONLY_IF_SERVICE_UP
Constructor and Description |
---|
HttpFeed()
For rebind; do not call directly; use builder
|
Modifier and Type | Method and Description |
---|---|
static HttpFeed.Builder |
builder() |
destroy, getEntity, getRebindSupport, isActivated, isActive, isRunning, isSuspended, resume, setEntity, start, stop, suspend
config, configure, getAllConfig, getConfig, getConfigMap, getDisplayName, getName, getUniqueTag, isDestroyed, setConfig, setDisplayName, setName, tags, toString
getCatalogItemId, getId, getManagementContext, getTagSupport, init, rebind, setCatalogItemId, setManagementContext
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getId, getName, getUniqueTag, isDestroyed
getCatalogItemId, getDisplayName, getTagSupport, tags
config, setConfig
setCatalogItemId
public static final org.slf4j.Logger log
public static final ConfigKey<com.google.common.collect.SetMultimap<brooklyn.event.feed.http.HttpFeed.HttpPollIdentifier,HttpPollConfig<?>>> POLLS
public static HttpFeed.Builder builder()