Hawkular Metrics in Action

- 3 mins

Cassandra

Apache Cassandra is a highly-scalable partitioned row store. Rows are organized into tables with a required primary key.

Reference

CCM「Cassandra Cluster Manager」

A script/library to create, launch and remove an Apache Cassandra cluster on localhost.

Reference

Create Cassandra Cluster & Start & Stop

ccm create -v 3.0.12 -n 1 -s hawkular
ccm updateconf "start_rpc: true"
ccm start
ccm stop
ccm remove

ccm node1 ring
ccm node1 show
ccm node1 cqlsh

desc cluster
desc keyspaces
desc keyspace hawkular_metrics
desc tables
desc table xxx

Hawkular Metrcis

Hawkular Metrics, a storage engine for metric data.

Reference

Run Hawkular Services

cd hawkular
sh bin/add-user.sh -a -u jiangew -p 123456 -g read-write,read-only
sh bin/standalone.sh -Dhawkular.rest.user=jiangew -Dhawkular.rest.password=123456 -Dhawkular.agent.enabled=true

Dashboard

localhost:8080

Metric Types

Availability
Gauge
Counter
String

Creating Tenants

curl -X POST http://localhost:8080/hawkular/metrics/gauges/raw -d @request.json \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: jiangew.me"
curl -X POST http://localhost:8080/hawkular/metrics/tenants -d '{"id": “jiangew.me”}' \
-H "Content-Type: application/json"

Creating Metrics

curl -u jiangew:123456 \
-X POST http://localhost:8080/hawkular/metrics/gauges/temperature/raw \
-d @metrics_day_1.json \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: jiangew.me"
curl -u jiangew:123456 \
-X POST http://localhost:8080/hawkular/alters/import/all \
-d @trigger_definition.json \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: jiangew.me"

Query Metrics

 curl -u jiangew:123456 \
-X GET "http://localhost:8080/hawkular/metrics/gauges/temperature/raw?start=1468578600000&end=1468594800001&order=ASC” \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: jiangew.me" 
curl -u jiangew:123456 \
-X GET "http://localhost:8080/hawkular/metrics/gauges/temperature/stats?bucketDuration=2h&start=1468533600000&end=1468618200001” \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: jiangew.me"
curl -u jiangew:123456 \
-X GET http://0.0.0.0:8080/hawkular/metrics/gauges/temperature/raw \
-H "Content-Type: application/json” \
-H "Hawkular-Tenant: hawkular"

Grafana

Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.

Reference

Install & Start & Stop

brew update
brew install grafana
brew services start grafana

Foreground Run

grafana-server --config=/usr/local/etc/grafana/grafana.ini \
--homepath /usr/local/share/grafana \
cfg:default.paths.logs=/usr/local/var/log/grafana \
cfg:default.paths.data=/usr/local/var/lib/grafana \
cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins

Hawkular Datasource Plugin

grafana-cli plugins install hawkular-datasource

Dashboard

localhost:3000
comments powered by Disqus
rss github weibo twitter instagram pinterest facebook linkedin stackoverflow reddit quora mail