Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Merge pull request #569 from tsegismont/jira/HAWKULAR-698
Browse files Browse the repository at this point in the history
HAWKULAR-698 Upgrade to Hawkular Metrics Component
  • Loading branch information
pilhuhn committed Oct 16, 2015
2 parents ea476bf + c25635c commit 483f29b
Show file tree
Hide file tree
Showing 8 changed files with 8 additions and 97 deletions.
2 changes: 1 addition & 1 deletion dist/assembly.xml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@
<include>org.hawkular.accounts:hawkular-accounts:war</include>
<include>org.hawkular.alerts:hawkular-alerts-rest:war</include>
<include>org.hawkular.alerts:hawkular-alerts-actions-email:war</include>
<include>org.hawkular.metrics:hawkular-metrics-api-jaxrs</include>
<include>org.hawkular.metrics:hawkular-metrics-component</include>
<include>org.hawkular.commons:hawkular-commons-embedded-cassandra-ear</include>
<include>org.hawkular.accounts:hawkular-accounts-events-backend:war</include>
</includes>
Expand Down
2 changes: 1 addition & 1 deletion dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
</dependency>
<dependency>
<groupId>org.hawkular.metrics</groupId>
<artifactId>hawkular-metrics-api-jaxrs</artifactId>
<artifactId>hawkular-metrics-component</artifactId>
<type>war</type>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.hawkular.bus.common.ConnectionContextFactory;
import org.hawkular.bus.common.Endpoint;
import org.hawkular.bus.common.MessageProcessor;
import org.hawkular.bus.common.producer.ProducerConnectionContext;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand Down Expand Up @@ -74,11 +70,12 @@ public void sendToMetricsViaRest(List<SingleAvail> availabilities) {
Availability availability = new Availability(avr.timestamp, avr.avail.toLowerCase());
List<Availability> list = new ArrayList<>(1);
list.add(availability);
String payload = null;
String payload;
try {
payload = new ObjectMapper().writeValueAsString(list);
} catch (JsonProcessingException e) {
Log.LOG.eCouldNotParseMessage(e);
return;
}
request.setEntity(new StringEntity(payload, ContentType.APPLICATION_JSON));

Expand All @@ -92,24 +89,4 @@ public void sendToMetricsViaRest(List<SingleAvail> availabilities) {
}
}
}

public void publishToTopic(List<SingleAvail> availRecordList, MetricReceiver metricReceiver) {
if (metricReceiver.topic != null) {
AvailDataMessage.AvailData availData = new AvailDataMessage.AvailData();
availData.setData(availRecordList);

try (ConnectionContextFactory factory = new ConnectionContextFactory(metricReceiver.connectionFactory)) {
Endpoint endpoint = new Endpoint(Endpoint.Type.TOPIC, metricReceiver.topic.getTopicName());
ProducerConnectionContext pc = factory.createProducerConnectionContext(endpoint);
MessageProcessor processor = new MessageProcessor();
AvailDataMessage msg = new AvailDataMessage(availData);
processor.send(pc, msg);
} catch (Exception e) {
Log.LOG.eCouldNotSendMessage(e);
}
}
else {
Log.LOG.wNoTopicConnection("HawkularAvailData");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ public void onMessage(Message message) {
}
availPublisher.sendToMetricsViaRest(outer);

availPublisher.publishToTopic(outer, this);

} catch (Exception e) {
Log.LOG.eCouldNotHandleBusMessage(e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,13 @@

import javax.ejb.Asynchronous;
import javax.ejb.Stateless;
import javax.jms.ConnectionFactory;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.hawkular.bus.common.BasicMessage;
import org.hawkular.bus.common.ConnectionContextFactory;
import org.hawkular.bus.common.Endpoint;
import org.hawkular.bus.common.MessageProcessor;
import org.hawkular.bus.common.producer.ProducerConnectionContext;
import org.hawkular.metrics.client.common.SingleMetric;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand All @@ -63,12 +56,6 @@ private static void addDataItem(List<Map<String, Object>> mMetrics, String resou
mMetrics.add(outer);
}

@javax.annotation.Resource(lookup = "java:/topic/HawkularMetricData")
javax.jms.Topic topic;

@javax.annotation.Resource(lookup = "java:/HawkularBusConnectionFactory")
ConnectionFactory connectionFactory;

private final PingerConfiguration configuration = PingerConfiguration.getInstance();

/**
Expand All @@ -89,11 +76,12 @@ public void sendToMetricsViaRest(PingStatus status) {
addDataItem(mMetrics, resourceId, timestamp, status.getCode(), "code");

// Send it to metrics via rest
String payload = null;
String payload;
try {
payload = new ObjectMapper().writeValueAsString(mMetrics);
} catch (JsonProcessingException e) {
Log.LOG.eCouldNotParseMessage(e);
return;
}
HttpClient client = HttpClientBuilder.create().build();

Expand All @@ -112,45 +100,4 @@ public void sendToMetricsViaRest(PingStatus status) {
}
}

/**
* Serializes the given {@link PingStatus} and then submits it on the Metrics topic of the bus.
*
* @param status
* the {@link PingStatus} to publish
*/
@Asynchronous
public void publishToTopic(PingStatus status) {
if (topic != null) {

try (ConnectionContextFactory factory = new ConnectionContextFactory(connectionFactory)) {

List<SingleMetric> singleMetrics = new ArrayList<>();

final PingDestination dest = status.getDestination();
final String resourceId = dest.getResourceId();
final long timestamp = status.getTimestamp();

SingleMetric singleMetric = new SingleMetric(resourceId + ".status.duration", timestamp,
(double) status.getDuration());
singleMetrics.add(singleMetric);
singleMetric = new SingleMetric(resourceId + ".status.code", timestamp, (double) status.getCode());
singleMetrics.add(singleMetric);

MetricDataMessage.MetricData metricData = new MetricDataMessage.MetricData();
metricData.setTenantId(status.getDestination().getTenantId());
metricData.setData(singleMetrics);

Endpoint endpoint = new Endpoint(Endpoint.Type.TOPIC, topic.getTopicName());
ProducerConnectionContext pc = factory.createProducerConnectionContext(endpoint);
BasicMessage msg = new MetricDataMessage(metricData);
MessageProcessor processor = new MessageProcessor();
processor.send(pc, msg);
} catch (Exception e) {
Log.LOG.eCouldNotSendMessage(e);
}
} else {
Log.LOG.wNoTopicConnection("HawkularMetricData");
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@ private void reportResults(List<PingStatus> results) {

for (PingStatus status : results) {
metricPublisher.sendToMetricsViaRest(status);
metricPublisher.publishToTopic(status);
traitsPublisher.publish(status);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ public void testScheduleWork() throws Exception {
Mockito.verify(manager.metricPublisher).sendToMetricsViaRest(metricsRestStatusCaptor.capture());
assertStatus(expectedDest, expectedPoweredBy, metricsRestStatusCaptor.getValue());

ArgumentCaptor<PingStatus> metricsStatusCaptor = ArgumentCaptor.forClass(PingStatus.class);
Mockito.verify(manager.metricPublisher).publishToTopic(metricsStatusCaptor.capture());
assertStatus(expectedDest, expectedPoweredBy, metricsStatusCaptor.getValue());

ArgumentCaptor<PingStatus> traitsStatusCaptor = ArgumentCaptor.forClass(PingStatus.class);
Mockito.verify(manager.traitsPublisher).publish(traitsStatusCaptor.capture());
assertStatus(expectedDest, expectedPoweredBy, traitsStatusCaptor.getValue());
Expand Down
10 changes: 2 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
<version.org.hawkular.bus>0.7.1.Final-SRC-revision-dcf45532ff3dee64048989aa89889be5cadef69f</version.org.hawkular.bus>
<version.org.hawkular.commons>0.2.2.Final-SRC-revision-f4f9deaa1b7dd4c0c7b61a39bdf12fd62d31a651</version.org.hawkular.commons>
<version.org.hawkular.cmdgw>0.9.1.Final-SRC-revision-d8f85d04925ffe7e8e172a5b5059f9a14b9fef53</version.org.hawkular.cmdgw>
<version.org.hawkular.metrics>0.7.0.Final</version.org.hawkular.metrics>
<version.org.hawkular.metrics>0.9.0.Final-SRC-revision-9080fcfbe40a66ce8143c477b5d6f8fbadeecf3a</version.org.hawkular.metrics>
<version.org.hawkular.inventory>0.6.0.Final</version.org.hawkular.inventory>
<version.org.hawkular.nest>${version.org.hawkular.bus}</version.org.hawkular.nest>
<version.org.keycloak>1.3.1.Final</version.org.keycloak>
Expand Down Expand Up @@ -201,15 +201,9 @@
<type>war</type>
</dependency>

<dependency>
<groupId>org.rhq.metrics</groupId>
<artifactId>rhq-metrics-api</artifactId>
<version>${version.org.hawkular.metrics}</version>
</dependency>

<dependency>
<groupId>org.hawkular.metrics</groupId>
<artifactId>hawkular-metrics-api-jaxrs</artifactId>
<artifactId>hawkular-metrics-component</artifactId>
<version>${version.org.hawkular.metrics}</version>
<type>war</type>
</dependency>
Expand Down

0 comments on commit 483f29b

Please sign in to comment.