Penjelasan. BeerTender - alat untuk mendinginkan dan membotolkan bir dari Krups dan Heineken. Menurut produsen, itu mempertahankan kualitas bir segar selama 30 hari setelah pembukaan tong. Tentu saja, akan mudah bagi administrator sistem dan devops untuk memantau suhu dan tingkat bir di tong mereka menggunakan dashboard online yang biasa. Artikel sebelumnya menjelaskan cara menghubungkan BeerTender ke Warp 10 , dan sekarang kita akan mengatur dasbor Grafana
OVHcloud, penyedia cloud dan cloud terbesar di Eropa, secara aktif menggunakan platform Warp 10. Semua data pemantauannya mengalir ke dalam satu cluster Warp 10. Ini adalah 400.000 server, 27 pusat data, total beberapa juta metrik per detik!
Mereka memiliki banyak dashboard, dan sekarang OVHcloud adalah pengelola
plugin open source
Warp 10 Grafana , yang kami mulai kembangkan beberapa waktu lalu. Kami akan membicarakannya. Jika Anda ingin mencobanya sendiri, datanya ada di domain publik - Anda dapat menyalin WarpScript di bawah ini.
Kami sudah bicara tentang cara menghubungkan BeerTender ke Warp 10.Instalasi
Pertama, instal Grafana. Ikuti
instruksi di situs web mereka .
Kami terhubung ke
http://localhost:3000/
default
http://localhost:3000/
, buka kata sandi admin / admin default, lalu ubah kata sandi administrator.
Untuk versi terbaru dari Grafana, plug-in harus diinstal secara manual. Metode dengan
grafana-cli
tidak akan bekerja. Anda hanya perlu mengkloning repositori plugin ke direktori plugin Grafana dan memperbaiki izin di mana-mana.
sudo systemctl stop grafana-server.service sudo chown -R grafana:mygroup /var/lib/grafana/ sudo chmod g+rw /var/lib/grafana/plugins git clone git@github.com:ovh/ovh-warp10-datasource.git /var/lib/grafana/plugins/ovh-warp10-datasource sudo chown -R grafana:mygroup /var/lib/grafana/plugins sudo systemctl start grafana-server.service
Konfigurasi
Dalam konfigurasi Grafana, pergi ke bagian Datasources dan tambahkan sumber data bertipe Warp 10. Pastikan itu menunjuk ke instance yang diperlukan dari Warp 10. Anda dapat menentukan pengaturan yang sama dengan kita:
Saatnya mengambil data dari BeerTender ...
Tampilan suhu
Buat dasbor baru, tambahkan panel dengan tipe visualisasi Grafik dan masuk ke mode Permintaan:
Suhu awal (nilai integer dari sensor)- Di sumber data, pilih Warp 10 (atau nilai default)
- Aktifkan Editor WarpScript
- Salin WarpScript di bawah ini
- Di sudut kanan atas, pilih "30 hari terakhir"
- Simpan hasilnya
"gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE [ $rt 'beertender.rawtemperature' {} NOW 30 d ] FETCH 0 GET
Script ini akan menampilkan nilai awal dari sensor ADC. Harap dicatat bahwa editor WarpScript di Grafana tidak sekuat sebelumnya, tidak ada lagi penyelesaian otomatis di sini. Anda dapat menulis skrip dalam WarpStudio atau VSCode, sehingga Anda akan memiliki sintaks penyorotan dan dokumentasi online, dan kemudian salin dan tempel hasilnya ke Grafana.
Penspasian Otomatis
Dalam contoh ini, pilih interval 30 hari dan atur mode tampilan dalam grafik selama 30 hari terakhir. Jika kita memilih mode tampilan untuk hari atau tahun terakhir, WarpScript akan selalu meminta data setiap 30 hari. Plugin menyelesaikan masalah ini: dua variabel tersedia untuk digunakan dalam WarpScript -
$end
dan
$interval
.
[ $rt 'beertender.rawtemperature' {} $end $interval ] FETCH 0
Suhu bir
Saya mengambil beberapa pengukuran air, es dan air panas, membandingkan dengan sensor referensi ... Hasilnya adalah sebagai berikut:
Nilai awal T (° C)
18.3 680
41.5 870
37.6 841
10 586
11 596
8 559
1,467
4,500
6.5 535
Masukkan nilai-nilai ini dalam seri waktu
GTS dan urutkan hasilnya dengan nilai awal dari sensor:
NEWGTS 'linearInterpolation' RENAME 680 NaN NaN NaN 18.3 ADDVALUE 870 NaN NaN NaN 41.5 ADDVALUE 841 NaN NaN NaN 37.6 ADDVALUE 586 NaN NaN NaN 10 ADDVALUE 596 NaN NaN NaN 11 ADDVALUE 559 NaN NaN NaN 8 ADDVALUE 467 NaN NaN NaN 1 ADDVALUE 500 NaN NaN NaN 4.5 ADDVALUE 535 NaN NaN NaN 6.5 ADDVALUE SORT
Interpolasi yang diharapkanSumber data dari sensor datang dalam bentuk bilangan bulat. Cara termudah untuk menginterpolasi adalah dengan terlebih dahulu membangun kurva, dan kemudian menggunakan fungsi
ATTICK untuk membaca nilai dalam derajat dari itu.
Interpolasi dalam WarpScript mudah.
Kami membuat ember untuk mengatur periode yang diinginkan, dan kemudian memulai interpolasi, mengisi nilai-nilai yang hilang.
[ $linearInterpolation bucketizer.last 0 1 0 ] BUCKETIZE 0 GET INTERPOLATE 'truthtableGTS' STORE

Bagus Sekarang Anda perlu menulis mapper Anda sendiri untuk mengganti setiap nilai dari sensor dengan nilai suhu fisik nyata, dan membawa hasilnya ke format yang digunakan oleh graphane.
Peringatan : Nilai tiba setiap 10 detik. Dalam tiga bulan, 270 ribu nilai akan terakumulasi. Terlalu banyak untuk Grafana ... Hanya pertahankan nilai maksimum setiap jam. Di WarpScript, ini
BUCKETIZE dengan bucketizer.max
bucketizer .
Anda dapat menyalin WarpScript ini ke Grafana:
// raw value interpolation "gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE NEWGTS 'linearInterpolation' RENAME 680 NaN NaN NaN 18.3 ADDVALUE 870 NaN NaN NaN 41.5 ADDVALUE 841 NaN NaN NaN 37.6 ADDVALUE 586 NaN NaN NaN 10 ADDVALUE 596 NaN NaN NaN 11 ADDVALUE 559 NaN NaN NaN 8 ADDVALUE 467 NaN NaN NaN 1 ADDVALUE 500 NaN NaN NaN 4.5 ADDVALUE 535 NaN NaN NaN 6.5 ADDVALUE SORT 'linearInterpolation' STORE [ $linearInterpolation bucketizer.last 0 1 0 ] BUCKETIZE 0 GET INTERPOLATE 'truthtableGTS' STORE [ $rt 'beertender.rawtemperature' {} NOW $end $interval ] FETCH // subsampling, keep max of every hour [ SWAP bucketizer.max 0 1 h 0 ] BUCKETIZE UNBUCKETIZE // do not try to interpolate missing buckets. // interpolation [ SWAP <% 'l' STORE [ $l 0 GET //same tick NaN NaN NaN //no latitude/longitude/elevation $truthtableGTS $l 7 GET 0 GET ATTICK 4 GET //take the interpolated value ] %> MACROMAPPER 0 0 0 ] MAP 'temperature (°C)' RENAME
5 ° C, normal untuk bir
Dasbor BeerTender, versi pertamaTingkat barel
Pengukur regangan mengukur level dalam tong ... Tapi ini adalah sensor tiga kawat yang murah pada dudukan logam yang berkarat. Tidak mungkin mendapatkan informasi yang akurat dari peralatan tersebut. Oleh karena itu, tidak mengherankan bahwa output benar-benar hasil yang berisik, dan nilai absolut tidak dapat dipercaya. Untuk BeerTender kami, saya menemukan formula eksperimental untuk Grafana untuk menampilkan level saat ini sebagai persentase.
Kiat: Plugin Warp 10 hanya mengambil data dari GTS. Bahkan jika Anda ingin menampilkan nilai tunggal, Anda harus menampilkannya pada satu titik di data GTS.Ini WarpScript, yang mengambil titik data terakhir dan mengubahnya menjadi nilai persentase, dan juga membuat rangkaian waktu dengan satu titik:
"gCA1SVjbDkaxtmTx9ydI4TI2iGc5hFgcbCWnzMRZSt45XW8dZ53Z7VK_if28i0kXwNDLazXHgLrXUKgxLK0RbS79eJmBCpyBlIxw9US7bPfdWH4Fta51.kXN.D4Hsk5OZOwl.vLRBzMpP7F2pAMfclMXSGtCOT6F" 'rt' STORE //read for beer level [ $rt 'beertender.rawvalue' {} NOW -1 ] FETCH 0 GET VALUES 0 GET 'rawSensorValue' STORE //raw correction: // empty: 30.8e6 // full (and cold): 30.5e6 30.8e6 $rawSensorValue - 0 MAX 2800 / 100 MIN 'beerlevelPercent' STORE $beerlevelPercent NEWGTS 'Barre Level (%25)' RENAME 1 NaN NaN NaN $beerlevelPercent ADDVALUE
Gunakan WarpScript ini sebagai permintaan untuk panel dengan tipe visualisasi Gauge:
Indikator yang bagusJika Anda tertarik, Anda dapat melihat data sumber ... Sekarang kami memiliki token untuk akses ke statistik unik tentang konsumsi bir!
Kesimpulan
- Jika data pemantauan baru-baru ini berada di bawah kendali Anda, Grafana dapat dengan mudah mengintegrasikan sumber data Warp 10.
- Plugin Grafana mengharapkan seri waktu GTS atau daftar GTS.
- OVHcloud adalah pengelola plugin saat ini. Silakan berkontribusi!
- Baca dokumentasi untuk informasi lebih lanjut.
- Jika Anda ingin memperkaya visualisasi data, Anda dapat mengambil komponen web kami yang sudah jadi .
