use of com.googlecode.jmxtrans.model.Result in project jmxtrans by jmxtrans.
the class JmxResultProcessorTest method canCreateBasicResultData.
@Test
public void canCreateBasicResultData() throws MalformedObjectNameException, InstanceNotFoundException {
Attribute integerAttribute = new Attribute("StartTime", 51L);
ObjectInstance runtime = getRuntime();
List<Result> results = new JmxResultProcessor(dummyQueryWithResultAlias(), runtime, ImmutableList.of(integerAttribute), runtime.getClassName(), TEST_DOMAIN_NAME).getResults();
assertThat(results).hasSize(1);
Result integerResult = results.get(0);
assertThat(integerResult.getAttributeName()).isEqualTo("StartTime");
assertThat(integerResult.getClassName()).isEqualTo("sun.management.RuntimeImpl");
assertThat(integerResult.getKeyAlias()).isEqualTo("resultAlias");
assertThat(integerResult.getTypeName()).isEqualTo("type=Runtime");
assertThat(integerResult.getValues()).hasSize(1);
}
use of com.googlecode.jmxtrans.model.Result in project jmxtrans by jmxtrans.
the class JmxResultProcessorTest method canReadCompositeData.
@Test
public void canReadCompositeData() throws MalformedObjectNameException, AttributeNotFoundException, MBeanException, ReflectionException, InstanceNotFoundException {
ObjectInstance memory = getMemory();
AttributeList attr = ManagementFactory.getPlatformMBeanServer().getAttributes(memory.getObjectName(), new String[] { "HeapMemoryUsage" });
List<Result> results = new JmxResultProcessor(dummyQueryWithResultAlias(), memory, attr.asList(), memory.getClassName(), TEST_DOMAIN_NAME).getResults();
assertThat(results).hasSize(1);
Result result = results.get(0);
assertThat(result.getAttributeName()).isEqualTo("HeapMemoryUsage");
assertThat(result.getTypeName()).isEqualTo("type=Memory");
Map<String, Object> values = result.getValues();
assertThat(values).hasSize(4);
Object objectValue = result.getValues().get("init");
assertThat(objectValue).isInstanceOf(Long.class);
}
use of com.googlecode.jmxtrans.model.Result in project jmxtrans by jmxtrans.
the class TreeWalker2 method walkTree.
public void walkTree(MBeanServerConnection connection, Server server) throws Exception {
// key here is null, null returns everything!
Set<ObjectName> mbeans = connection.queryNames(null, null);
for (ObjectName name : mbeans) {
MBeanInfo info = connection.getMBeanInfo(name);
MBeanAttributeInfo[] attrs = info.getAttributes();
Query.Builder queryBuilder = Query.builder().setObj(name.getCanonicalName()).addOutputWriterFactory(new StdOutWriter(ImmutableList.<String>of(), false, false, Collections.<String, Object>emptyMap()));
for (MBeanAttributeInfo attrInfo : attrs) {
queryBuilder.addAttr(attrInfo.getName());
}
Query query = queryBuilder.build();
try {
Iterable<Result> results = server.execute(query);
query.runOutputWritersForQuery(server, results);
} catch (AttributeNotFoundException anfe) {
log.error("Error", anfe);
}
}
}
use of com.googlecode.jmxtrans.model.Result in project jmxtrans by jmxtrans.
the class LibratoWriter method serialize.
private void serialize(Server server, Query query, List<Result> results, OutputStream outputStream) throws IOException {
JsonGenerator g = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8);
g.writeStartObject();
g.writeArrayFieldStart("counters");
g.writeEndArray();
String source = getSource(server);
g.writeArrayFieldStart("gauges");
List<String> typeNames = getTypeNames();
for (Result result : results) {
Map<String, Object> resultValues = result.getValues();
for (Map.Entry<String, Object> values : resultValues.entrySet()) {
if (isNumeric(values.getValue())) {
g.writeStartObject();
g.writeStringField("name", KeyUtils.getKeyString(query, result, values, typeNames));
if (source != null && !source.isEmpty()) {
g.writeStringField("source", source);
}
g.writeNumberField("measure_time", TimeUnit.SECONDS.convert(result.getEpoch(), TimeUnit.MILLISECONDS));
Object value = values.getValue();
if (value instanceof Integer) {
g.writeNumberField("value", (Integer) value);
} else if (value instanceof Long) {
g.writeNumberField("value", (Long) value);
} else if (value instanceof Float) {
g.writeNumberField("value", (Float) value);
} else if (value instanceof Double) {
g.writeNumberField("value", (Double) value);
}
g.writeEndObject();
}
}
}
g.writeEndArray();
g.writeEndObject();
g.flush();
g.close();
}
use of com.googlecode.jmxtrans.model.Result in project jmxtrans by jmxtrans.
the class ResultTransformerOutputWriterTest method booleanValuesAreTransformed.
@Test
public void booleanValuesAreTransformed() throws Exception {
ResultTransformerOutputWriter<OutputWriter> resultTransformerOutputWriter = booleanToNumber(outputWriter);
resultTransformerOutputWriter.doWrite(dummyServer(), dummyQuery(), singleTrueResult());
verify(outputWriter).doWrite(any(Server.class), any(Query.class), resultsCaptor.capture());
assertThat(resultsCaptor.getValue()).hasSize(1);
Result transformedResult = resultsCaptor.getValue().get(0);
assertThat(transformedResult.getValues()).containsEntry("Verbose", 1);
}
Aggregations