Hawkular Metrics in Action
- 3 minsCassandra
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
- Hawkular Metrics Quickstart Guide
- Hawkular Metrics Installation Guide
- Hawkular Metrics User Guide
- Hawkular Metrics Github
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
- Hawkular Client Grafana Quickstart Guide
- Hawkular Datasource For Grafana
- Grafana Installation Config
- Grafana Github
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