Search in sources :

Example 26 with Result

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);
}
Also used : Attribute(javax.management.Attribute) ObjectInstance(javax.management.ObjectInstance) JmxResultProcessor(com.googlecode.jmxtrans.model.JmxResultProcessor) Result(com.googlecode.jmxtrans.model.Result) Test(org.junit.Test)

Example 27 with Result

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);
}
Also used : AttributeList(javax.management.AttributeList) ObjectInstance(javax.management.ObjectInstance) JmxResultProcessor(com.googlecode.jmxtrans.model.JmxResultProcessor) Result(com.googlecode.jmxtrans.model.Result) Test(org.junit.Test)

Example 28 with Result

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);
        }
    }
}
Also used : AttributeNotFoundException(javax.management.AttributeNotFoundException) MBeanInfo(javax.management.MBeanInfo) Query(com.googlecode.jmxtrans.model.Query) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) ObjectName(javax.management.ObjectName) StdOutWriter(com.googlecode.jmxtrans.model.output.StdOutWriter) Result(com.googlecode.jmxtrans.model.Result)

Example 29 with Result

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();
}
Also used : JsonGenerator(com.fasterxml.jackson.core.JsonGenerator) Map(java.util.Map) Result(com.googlecode.jmxtrans.model.Result)

Example 30 with Result

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);
}
Also used : ServerFixtures.dummyServer(com.googlecode.jmxtrans.model.ServerFixtures.dummyServer) Server(com.googlecode.jmxtrans.model.Server) QueryFixtures.dummyQuery(com.googlecode.jmxtrans.model.QueryFixtures.dummyQuery) Query(com.googlecode.jmxtrans.model.Query) OutputWriter(com.googlecode.jmxtrans.model.OutputWriter) Result(com.googlecode.jmxtrans.model.Result) ResultFixtures.singleTrueResult(com.googlecode.jmxtrans.model.ResultFixtures.singleTrueResult) ResultFixtures.singleFalseResult(com.googlecode.jmxtrans.model.ResultFixtures.singleFalseResult) Test(org.junit.Test)

Aggregations

Result (com.googlecode.jmxtrans.model.Result)38 Test (org.junit.Test)17 JmxResultProcessor (com.googlecode.jmxtrans.model.JmxResultProcessor)9 ObjectInstance (javax.management.ObjectInstance)9 Query (com.googlecode.jmxtrans.model.Query)8 Map (java.util.Map)8 Server (com.googlecode.jmxtrans.model.Server)7 Attribute (javax.management.Attribute)6 JsonGenerator (com.fasterxml.jackson.core.JsonGenerator)4 ServerFixtures.dummyServer (com.googlecode.jmxtrans.model.ServerFixtures.dummyServer)4 JestResult (io.searchbox.client.JestResult)4 ToString (lombok.ToString)4 OutputWriter (com.googlecode.jmxtrans.model.OutputWriter)3 QueryFixtures.dummyQuery (com.googlecode.jmxtrans.model.QueryFixtures.dummyQuery)3 ResultFixtures.singleTrueResult (com.googlecode.jmxtrans.model.ResultFixtures.singleTrueResult)3 DocumentResult (io.searchbox.core.DocumentResult)3 ArrayList (java.util.ArrayList)3 AttributeList (javax.management.AttributeList)3 ImmutableList (com.google.common.collect.ImmutableList)2 ImmutableMap (com.google.common.collect.ImmutableMap)2