enrichers().add(Enrichers.builder().propagating(Startable.SERVICE_UP).from(child).build()); enrichers().add(ServiceStateLogic.newEnricherFromChildrenState() .suppressDuplicates(true) if (Boolean.TRUE.equals(propagate)) { if (sensors.isEmpty()) { enrichers().add(Enrichers.builder().propagatingAllButUsualAnd().from(child).build()); } else { enrichers().add(Enrichers.builder().propagating(sensors).from(child).build());
AttributeSensor<? extends Number> total = es.get(1); enrichers().add(Enrichers.builder() .aggregating(t) .publishing(total) .fromMembers() AttributeSensor<Double> average = (AttributeSensor<Double>) es.get(1); enrichers().add(Enrichers.builder() .aggregating(t) .publishing(average) .fromMembers()
AttributeSensor<? extends Number> total = es.get(1); enrichers().add(Enrichers.builder() .aggregating(t) .publishing(total) .fromMembers() .transforming(t) .publishing(average) .computing(new Function<Number, Double>() {
.aggregating(MachineAttributes.CPU_USAGE) .computingAverage() .fromMembers() .build()); hosts.enrichers().add(Enrichers.builder() .aggregating(DOCKER_CONTAINER_COUNT) .computingSum() .fromMembers() .propagating(DOCKER_CONTAINER_COUNT, MachineAttributes.AVERAGE_CPU_USAGE) .from(hosts) .build()); enrichers().add(Enrichers.builder() .propagating(ImmutableMap.of(DynamicCluster.GROUP_SIZE, DOCKER_HOST_COUNT)) .from(hosts) .build()); .configure(ContainerHeadroomEnricher.CONTAINER_HEADROOM_PERCENTAGE, headroomPercent)); hosts.enrichers().add(Enrichers.builder() .propagating( ContainerHeadroomEnricher.DOCKER_CONTAINER_CLUSTER_COLD, ContainerHeadroomEnricher.DOCKER_CONTAINER_CLUSTER_HOT,
.propagating(Attributes.MAIN_URI) .from(getMasterAmbariServer()) .build());
.propagating(LoadBalancer.PROXY_HTTP_PORT, LoadBalancer.PROXY_HTTPS_PORT) .from(controller) .build());
.configure(BrooklynCampConstants.PLAN_ID, "soleChildId")); coreSpec.enricher(Enrichers.builder() .propagatingAllBut(Attributes.SERVICE_UP, Attributes.SERVICE_NOT_UP_INDICATORS, Attributes.SERVICE_STATE_ACTUAL, Attributes.SERVICE_STATE_EXPECTED, Attributes.SERVICE_PROBLEMS)
.build(); enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .from(MANAGEMENT_URL_UP) .computing(Functionals.ifNotEquals(true).value("Management URL not reachable") )
enrichers().add(Enrichers.builder().propagating(Startable.SERVICE_UP).from(child).build()); enrichers().add(ServiceStateLogic.newEnricherFromChildrenState() .suppressDuplicates(true) if (Boolean.TRUE.equals(propagate)) { if (sensors.isEmpty()) { enrichers().add(Enrichers.builder().propagatingAllButUsualAnd().from(child).build()); } else { enrichers().add(Enrichers.builder().propagating(sensors).from(child).build());
enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .from(WEB_CONSOLE_ACCESSIBLE) .computing(Functionals.ifNotEquals(true).value("URL where Brooklyn listens is not answering correctly") ) .build()); addEnricher(Enrichers.builder().transforming(WEB_CONSOLE_ACCESSIBLE) .computing(Functions.identity()) .publishing(SERVICE_PROCESS_IS_RUNNING)
enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .uniqueTag("not-up-unless-url-answers") .from(NGINX_URL_ANSWERS_NICELY)
.build(); enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .from(URL_REACHABLE) .computing(Functionals.ifNotEquals(true).value("URL not reachable"))
.combining(RESPONSES_4XX_COUNT, RESPONSES_5XX_COUNT) .publishing(ERROR_COUNT) .computingSum()
.propagating(ImmutableMap.of(BasicGroup.GROUP_SIZE, DockerAttributes.DOCKER_CONTAINER_COUNT)) .from(containers) .build());
.transforming(STR1) .<Object>publishing(STR2) .computing(new Function<String, Object>() {
AttributeSensor<Object> sourceSensorFromYaml = Sensors.newSensor(Object.class, TestEntity.NAME.getName()); app.enrichers().add(Enrichers.builder() .propagating(Sensors.newSensor(Object.class, TestEntity.NAME.getName())) .from(entity) .build()); app.enrichers().add(Enrichers.builder() .propagating(ImmutableMap.of(sourceSensorFromYaml, targetSensor)) .from(app) .build());
.propagating(Storm.STORM_UI_URL) .from(ui) .build()); enrichers().add(Enrichers.builder() .propagating(Attributes.HOSTNAME) .from(nimbus) .build());
.build(); enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .from(SERVER_OK) .computing(Functionals.ifNotEquals(true).value("Crate server reports it is not ok."))
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected void initEnrichers() { super.initEnrichers(); propagateMasterAttribute(MySqlNode.HOSTNAME); propagateMasterAttribute(MySqlNode.ADDRESS); propagateMasterAttribute(MySqlNode.SUBNET_HOSTNAME); propagateMasterAttribute(MySqlNode.SUBNET_ADDRESS); propagateMasterAttribute(MySqlNode.MYSQL_PORT); propagateMasterAttribute(MySqlNode.DATASTORE_URL); enrichers().add(Enrichers.builder() .aggregating(MySqlNode.DATASTORE_URL) .publishing(SLAVE_DATASTORE_URL_LIST) .computing((Function<Collection<String>, List<String>>)(Function)Functions.identity()) .entityFilter(Predicates.not(MySqlClusterUtils.IS_MASTER)) .fromMembers() .build()); enrichers().add(Enrichers.builder() .aggregating(MySqlNode.QUERIES_PER_SECOND_FROM_MYSQL) .publishing(QUERIES_PER_SECOND_FROM_MYSQL_PER_NODE) .fromMembers() .computingAverage() .defaultValueForUnreportedSensors(0d) .build()); }
@Test public void testAggregatingExcludingBlankString() { group.addMember(entity); group.addMember(entity2); group.enrichers().add(Enrichers.builder() .aggregating(STR1) .publishing(SET1) .fromMembers() .excludingBlank() .computing(new Function<Collection<?>, Set<Object>>() { @Override public Set<Object> apply(Collection<?> input) { // accept null values, so don't use ImmutableSet return (input == null) ? ImmutableSet.<Object>of() : MutableSet.<Object>copyOf(input); }}) .build()); entity.sensors().set(STR1, "1"); entity2.sensors().set(STR1, "2"); EntityAsserts.assertAttributeEqualsEventually(group, SET1, ImmutableSet.<Object>of("1", "2")); entity.sensors().set(STR1, "3"); entity2.sensors().set(STR1, null); EntityAsserts.assertAttributeEqualsEventually(group, SET1, ImmutableSet.<Object>of("3")); entity.sensors().set(STR1, ""); entity2.sensors().set(STR1, "4"); EntityAsserts.assertAttributeEqualsEventually(group, SET1, ImmutableSet.<Object>of("4")); }