-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Graphite emitter #1978
Graphite emitter #1978
Conversation
@rohitkochar please checkout this and let me know what you think |
## configuration | ||
To use graphite as emitter first set `druid.emitter=graphite` | ||
Also graphite can be used via the composing emitter. | ||
All the configuration for graphite emitter are under `druid.emitter.graphite` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you might need a blank line before the table starts for it to render correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would read better if you said "All the configuration parameters ...". That would solve the subject-verb number disagreement here.
It would be good to have some punctuation at the end, maybe a colon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Thanks @b-slim . |
- 1 First clone this [Docker project](https://github.com/b-slim/docker-grafana-graphite) | ||
|
||
- 2 execute `build` then `start` scripts (assuming docker is working) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of module README, please put this in a the doc file in the docs/development folder and link in TOC as an experimental feature
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
This may be unrelated to this PR but, |
catch (TimeoutException e) { | ||
log.error(e, e.getMessage()); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: you can probably just do
catch (ExecutionException | TimeoutException e) {
log.error(e, e.getMessage());
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
6d8db4b
to
44632ce
Compare
2, | ||
new ThreadFactoryBuilder().setDaemon( | ||
true) | ||
.setNameFormat( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
formatting issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@himanshug and @b-slim - we are using https://github.com/dropwizard/metrics in production for ages now. Just works. I guess it's finally time to write our own emitter (dropwizard -> kafka), I was holding it off for druid 0.8 changes. |
## introduction | ||
|
||
This extension emits some selected druid metrics to a graphite carbon server. | ||
Events are sent after been [pickled](http://graphite.readthedocs.org/en/latest/feeding-carbon.html#the-pickle-protocol) , the size of the batch is configurable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: the comma here should be a semicolon, and no space before it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@himanshug can you please review this ? |
@@ -150,6 +150,11 @@ The Druid servers emit various metrics and alerts via something we call an Emitt | |||
|--------|-----------|-------| | |||
|`druid.emitter.composing.emitters`|List of emitter modules to load e.g. ["logging","http"].|[]| | |||
|
|||
#### Graphite Emitter | |||
|
|||
To use graphite as emitter set `druid.emitter=graphite`. For configuration details please follow this [link](../../extensions/graphite-emitter/README.html) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
md or html?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fjy though the all the MD files are converted to html, ? i am i wrong ?
👍 after my comment around the README fix is addressed |
|
||
The second implementation called `whiteList`, will send only the white listed metrics and dimensions. | ||
Same as for the `all` converter user has control of `<namespacePrefix>.[<druid service name>].[<druid hostname>].` | ||
White-list based converter comes with the following default white list map located under resources |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we just link to the json file containing the whitelist or else the json below has to be kept in sync
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@bslim 👍 besides the minor comments, feel free to merge after resolving the comments |
9ef88a2
to
c075b44
Compare
@rohitkochar are you aware of the current changes on how to supply the whiteList map |
c075b44
to
f5a51cd
Compare
@spektom we changed the way we supply the map in favor of file path. |
f5a51cd
to
e0d90f8
Compare
I added the graphite extension but now even though it is present :
I get this error :
The default
It is just cannot be loaded. Btw the graphite-extension is part of the docker image and |
I think it's a bug, because :
cannot read a path gotten from :
So it basically expect users to always supply custom
|
@l15k4 are you sure your user used to run druid is able to read the file ? |
@b-slim yeah it's a docker container, everything runs as root. Imho it is clear that :
Cannot work ... |
@l15k4 will take a look thanks for you concern ! |
@b-slim thanks, it is weird that it works for others though. I'm using the implydata distribution and docker-distribution image. I had to modify it :
Btw would you mind giving me a hand here? https://groups.google.com/d/msg/druid-user/RnpKpW5vowg/0sTc4syLBAAJ |
Hey @b-slim, I've noticed of another problem, major one, when graphite becomes unreachable for some time (i just stopped it for a few minutes) then even though it becomes reachable the GraphiteEmitter cannot recover from that and it indefinitely throws exceptions every minute :
The |
Adding a new emitter that sends some carefully selected metrics to a graphite server.