In dem Cloudera Manager kann man sich schon verschiedene Grafen der einzelnen Komponenten anschauen, wenn man jedoch auch Grafana benutzt will man nicht wirklich immer umschalten.
Es ist jedoch möglich ein Plugin für Grafana zu schreiben um die Daten direkt aus dem CDH zu ziehen. Amir Pakdel hatte ein Plugin für Grafana 1.x geschrieben, welches ich für Grafana 2.x umgeschrieben habe.
Download: Grafana CDH Datasource Plugin
Installation
Damit wir in kein Problem mit XSS kommen müssen wir unsere anfragen an das CDH mit einem kleinen Proxy über den Server von Grafana abfertigen. Dafür muss folgende Apache Konfiguration angelegt werden:
ProxyPass http://$CLOUDERAMANAGER:7180/api/v9
ProxyPassReverse http://$CLOUDERAMANAGER:7180/api/v9
RequestHeader set Authorization "Basic <base64>"
Header set Access-Control-Allow-Origin "*"
Das $CLOUDERAMANAGER muss mit dem Hostnamen von dem CDH Manager ersetzt werden und in dem RequestHeader der Benutzername:Passwort (in base64) von dem Benutzer der mit der API von CDH reden darf. Anschließend noch ein paar Module aktivieren:
# a2enconf cdh
# a2enmod proxy_http proxy request headers
# service apache2 restart
Anschließend können wir das Modul installieren und Grafana neu starten. Vor dem Neustart, muss jedoch noch die $GRAFANAURL in der datasource.js angepasst werden.
# tar -xzf cdh.tar.gz -C /usr/share/grafana/public/app/plugins/datasource/ # service grafana-server restart
Jetzt kann man schon beginnen eine neue Datasource zu erstellen und fleißig Graphen bauen. Wie baut man die Graphen? Man muss die SQL Statements aus dem CDH in Grafana übertragen. Die Statements bekommt man aus den vorhanden Graphen:
In dem JSON befindet sich das Query, welches einfach in die Row im Grafana eingetragen werden muss. Fertig.