Giter VIP home page Giter VIP logo

dropwizard-influxdb-reporter's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dropwizard-influxdb-reporter's Issues

config.yml parse failed |

I am trying to integrate a dropwizard service metrics with influxdb using your metrics reporter.But i getting the below exception while running the code present at

https://github.com/tosheer/analysis

``
IND00090:dropwizard-metrics-example tosheer.kalra$
java -jar target/metrics-example-1.0-SNAPSHOT.jar server config.yml

config.yml has an error:

  • Failed to parse configuration at: metrics.reporters; Argument #0 of constructor [constructor for com.kickstarter.dropwizard.metrics.influxdb.transformer.TaggedPattern, annotations: {interface com.fasterxml.jackson.annotation.JsonCreator=@com.fasterxml.jackson.annotation.JsonCreator(mode=DEFAULT)}] has no property name annotation; must have name when multiple-parameter constructor annotated as Creator
    at [Source: N/A; line: -1, column: -1] (through reference chain: com.example.application.ExampleConfiguration["metrics"]->io.dropwizard.metrics.MetricsFactory["reporters"])
    ``

Can you please give me some pointer regarding what i am doing wrong.

Make API more user friendly for non Dropwizard users

It's a little difficult to use this library in applications that use dropwizard metrics without the rest of the framework. It would be more user friendly to add setters to the Factory classes so its possible to create them manually.

The following would make this much more convenient to use.

new InfluxDbWriter.Factory()
    .host(host)
    .port(port)
    .build(registry);

Even in the unit tests the way its constructed is a little awkward where it builds the object from a json string and deserializes it into the object since there is no access to set these parameters.

This also applies to the reporter factory.

Consider supporting of serializing a gauge with the value a collection

By default a Dropwizard app exposes a gauge which reports a set of names of deadlocked threads.
See https://github.com/dropwizard/metrics/blob/3.2-development/metrics-jvm/src/main/java/com/codahale/metrics/jvm/ThreadStatesGaugeSet.java#L82

Currently the reporter throws an IllegalArgumentException for this metric and writes a warning in the log:

WARN  c.k.d.m.i.t.DropwizardTransformer: InfluxDbMeasurement field 'deadlocks' must be String or primitive: []

It would be nice to report the value of this metric as a string (a result of toString on the collection).

Warning log messages for grouped counters and gauges

When reporting metrics from a Dropwizard app I get the following warning log messages:

WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: jvm_memory
WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: thread_pools
WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: jvm_gc
WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: client_connections
WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: jvm_memory
WARN  c.k.d.m.i.t.DropwizardTransformer: Measurement has no valid fields: jvm_buffers

This seems counterintuitive, because the measurements get reported to InfluxDB.

Error getting reflective information for class org.eclipse.jetty.server.handler.IdleTimeoutHandler$1

Right after i add the dependency in the pom.xml and try to deploy on wildfly, i get this error

"Error getting reflective information for class org.eclipse.jetty.server.handler.IdleTimeoutHandler$1 with ClassLoader ModuleClassLoader for Module "deployment.test.war:main" from Service Module Loader"

Should i be manually adding any other dependencies? Tried adding this dependency

**<!-- https://mvnrepository.com/artifact/org.eclipse.jetty.server/source -->
<dependency>
  <groupId>org.eclipse.jetty.server</groupId>
  <artifactId>source</artifactId>
  <version>8.1.3</version>
</dependency>**

but maven couldn't find any such dependency.

Exceptions probably shouldn't close the writer

Just hit an issue where the http writer got a timeout exception from our metrics relay which may have been backed up or had a hiccup. This line closed the http writer which made it so metrics could not report for the rest of the JVM processes lifetime.

Is there a particular reason the writers are closed here? That makes it so they can't recover. I think the writers should be able to handle their own failures and it seems like they already can. The HTTP writer will just get a new http connection and try again on the next pass. Once its closed it just fails forever.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.