This blog post is about configuring druid to send metrics to graphite/grafana.
kindly refer to steps @
The Grafana dashboard templates are in above github link.
after you have followed the steps above, restart druid and it should send stuff to graphite and grafana.
You should see log statements like
INFO [main] io.druid.emitter.graphite.GraphiteEmitter - Starting Graphite Emitter.
INFO [GraphiteEmitter-0] io.druid.emitter.graphite.GraphiteEmitter - trying to connect to graphite server
INFO [main] io.druid.initialization.Initialization - Loading extension [graphite-emitter] for class
Tip: you can set the frequency at which metrics are reported and also set the types of monitors you wish to have BASED ON THE RELEASE version you USE.
Important Tip: Start off with JVM monitor first, then slowly add. The sys monitor needs sigar jar. some monitors mite nite work immediately.
Recently my team mate Vihag came across an java.lang.Linkage error while doing druid indexing with CDH 5.10.2
It was good fun we must say finding out the reason. hehe taking md5 of class files and comparing and finding out which jar the class is loaded from.
2018-05-11 11:03:04,848 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.lang.LinkageError: loader constraint violation: when resolving overridden method “org.apache.xerces.jaxp.DocumentBuilderImpl.newDocument()Lorg/w3c/dom/Document;” the class loader (instance of org/apache/hadoop/util/ApplicationClassLoader) of the current class, org/apache/xerces/jaxp/DocumentBuilderImpl, and its superclass loader (instance of <bootloader>), have different Class objects for the type org/w3c/dom/Document used in the signature
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
2018-05-11 11:03:04,851 INFO [main] org.apache.hadoop.util.ExitUtil: Exiting with status
Vihag has documented the resolution nicely here @ github
The crux of the matter was that The class ‘DocumentBuilderImpl‘ was present in Druid in the xercesImpl-2.9.1.jar and Yarn was loading it from xercesImpl-2.10.0.jar.
So we removed 2.9.1 jar from druid and replaced it with 2.10.0 jar
Also we noticed that 2.10 jar plays well with xml-apis-1.4.01.jar & not xml-apis-1.3.04.jar
Hope this helps you.
recently encountered this error while generating a project in my intellij.
[ERROR] BUILD FAILURE
[INFO] : org.apache.maven.archetype.exception.UnknownArchetype: The desired archetype does not exist (org.apache.maven.archetypes:maven-archetype-webapp:RELEASE)
The desired archetype does not exist (org.apache.maven.archetypes:maven-archetype-webapp:RELEASE)
Solution: The archtypes are downloaded from the maven central repo, so make sure the repo is specified in your .m2/settings.xml
In the settings.xml, under profiles->profile->repositories add the maven central repo url
<profiles> <profile> <repositories>
<releases> <enabled>true</enabled> </releases>
</repositories> </profile> </profiles>
Tip: Check if the url ‘https://repo1.maven.org/maven2‘ works first , else give a repo which works.
recently i started pushing metrics to prometheus but whenever i sent a sample query to prometheus to see the data points, i would get none.
There were no errors in prometheus and i was scratching my head …. grrr…
I was on Mac OS and using a Docker image of Prometheus (version=1.7.1)
When i went into the docker container and checked the dateTime, walaaaaaaaaaaaa
There was a Time mismatch between host and Docker container.
#___7_day__difference__ –> Possible docker bug !!!
since i was searching in the current timebucket, and the datapoints were going to time bucket 7 days ago, i was not able to find em.
Restarting docker for Mac fixed the issue.
Recently i have been working with Druid & was trying to come up with the disk space sizing on the historical nodes, as we have to deploy onto remote customer locations, for which we need to come up with machine requests way in advance.
This took me into the world of bitmaps : concise and roaring.
Druid uses concise bitmaps by default and has the option for roaring too.
So after reading a bit i decided to come up with a calculator for Druid Segment Sizing needed on the druid HISTORICAL nodes assuming Concise is used.
You can find the calculator @ github.com/jaihind213/druid-calculator
PS: Initially i wanted to write a blog post explaining the logic behind my calculator, but was too lazy, so wrote code and included the rationale in the code comments. 🙂
Thank you and hope you find it useful. Feedback is welcome.