Grafana: Grafana Meta Query (Transformasi Generik pada Hasil Query Time Series)

Dibuat pada 7 Jan 2016  ·  90Komentar  ·  Sumber: grafana/grafana

Akan mengaktifkan dukungan untuk fungsi transformasi seperti skala, turunan, timeShift, movingAverage ke semua sumber data.

prioritimportant-longterm typfeature-request

Komentar yang paling membantu

Bisakah Anda setidaknya menerapkan sesuatu yang sederhana seperti menambah dan mengurangi?

  • Metrik C: #A - #B
  • Metrik D: #A + #B

Semua 90 komentar

Saya harap fitur ini dirilis tidak sejauh ini :-)

:+1:

Kapan fitur ini diharapkan dirilis untuk sumber data elasticsearch?

bukan ETA, semoga tahun ini :)

Jika kami tertarik/mungkin untuk membantu pengembangan - dari mana kami akan memulai? Apakah ada kode sebagai titik awal?

Saya rasa belum ada kode untuk ini. Keputusan umum harus dibuat apakah permintaan meta dilakukan di sisi server atau sisi klien. Saya mendukung melakukan sisi server ini sehingga dapat digunakan untuk memperingatkan juga. Kerugiannya adalah ini hanya akan berfungsi untuk sumber data yang diproksi, tetapi saya pikir inilah yang dilakukan kebanyakan orang.

Jika itu membantu sama sekali - Saya telah memikirkan masalah ini dan berdiskusi dengan Rashid sebelum timelion dirilis (komit pribadi pertama berasal dari sebelum diskusi kami jadi saya tidak dapat mengklaim kredit apa pun :)

https://drive.google.com/drive/folders/0B9HCLnVMhNurTVY1UUJWZGxOdEU

Saya tidak tahu apakah ini visi yang tepat, tetapi saya telah memikirkan komponen modular yang beberapa di antaranya berpotensi menjadi klien pengguna atau sisi server. Keuntungan dari server termasuk caching dan meminimalkan transfer data untuk kueri/kombinasi yang lebih besar. Keuntungan untuk sisi klien adalah untuk sumber data lain di mana izin diberikan melalui browser atau berpotensi untuk menambahkan rangkaian baru ke grafik yang ada - klien dapat langsung menanyakannya secara langsung.

Saya akan berpikir kode timelion akan menjadi awal yang menarik. Kami menggunakan pembagian iframe dari timelion dan templating di grafana untuk membuat kueri timelion templat di grafana - sedikit meretas tetapi memecahkan masalah sampai solusi yang lebih baik muncul.

Terima kasih!

@yehosef Hei terima kasih untuk semua materi ini. Saya telah mulai mengerjakan ini juga, tetapi kemudian, setelah melalui diskusi ini, menyadari bahwa menambahkan timeshift hanya untuk ES bukanlah ide yang jauh lebih baik, seperti menambahkan kueri meta seperti yang disarankan Torkeo di atas. Jika kalian sudah mulai mengkodekan bagian ini, saya akan dapat membantu kalian. Jika tidak, dengan senang hati saya akan meneruskannya dengan ulasan untuk desain Anda yang akan datang nanti..

Bersulang.

@arcolife Kami belum mulai mengerjakannya - akan senang jika seseorang dapat mengambilnya.

Saya tidak tahu bagaimana hal-hal semacam ini bekerja, tetapi mungkin saja kami akan mampu/bersedia membayar untuk pengembangan fitur-fitur ini jika itu membuatnya lebih layak. Saya tidak tahu apakah ada sistem bounty untuk hal-hal semacam ini - misalnya raintank atau perusahaan lain mengatakan akan membutuhkan biaya "$x" untuk mengembangkan fitur dan berbagai pihak yang berkepentingan dapat berkontribusi. Bagi kami, ini dan kemampuan untuk melakukan kueri SQL sangat berharga.

@yehosef Hei terima kasih! Saya senang bisa berkontribusi. :)
PS: kalau nanti ada pertemuan (untuk membahas maket itu) membantu, ayo kita lakukan?

Saya senang melakukan apa pun yang saya bisa untuk membantu kemajuan ini. hubungi saya di [email protected] jika Anda ingin mencoba mengatur pertemuan - atau hanya berkorespondensi tentang ide untuk melanjutkan.

@yehosef "Akun email yang Anda coba hubungi tidak ada." :)
Saya mencobanya di [github_id] @ google [dot] com Anda.

maaf - ini gmail.com

Hai, jadi kami memiliki ETA kapan fitur ini akan tersedia untuk sumber data OpenTSDB.

belum ada ETA, mungkin dalam 4.1 atau 4.2 yang berarti mudah-mudahan dalam 6 bulan

Saya tidak yakin apakah masalah ini mirip dengan "Permintaan fitur: Dua data deret rentang waktu yang berbeda ditampilkan dalam grafik yang sama #3235" karena saya mengkhawatirkan #3235 .
Jadi jika Anda bisa memberi tahu saya secara khusus untuk ini bahwa ketika fitur ini akan tersedia untuk sumber data OpenTSDB.

@torkelo setiap kali masalah ini ditinjau, silakan salin saya dan @yehosef karena kami memiliki beberapa pertukaran email seputar pemikiran ini dan desain yang diusulkan Yehosef di utas ini, dan saya menyadari bahwa lebih baik membawa ide-ide itu kembali ke sini untuk lebih luas paparan. Terima kasih.

cukup tertarik dengan pembaruan tentang ini!

Adakah pembaruan pada tanggal rilis untuk fitur ini? Saya sangat menantikan untuk menggunakan opsi timeshift untuk sumber data Elasticsearch.

Kami juga akan sangat tertarik dengan ini. Atm hanya ada Timelion untuk Kibana

+1

Mungkinkah membuat plugin sumber data yang memiliki akses ke sumber data lain?
Cara ini memungkinkan untuk membungkus respons sumber data dan kemudian mengubahnya.

Ya,

sumber data yang disertakan -- Campuran -- melakukan ini:

https://github.com/grafana/grafana/blob/master/public/app/plugins/datasource/mixed/datasource.ts#L13

Pada Rabu, 23 Nov 2016 jam 15:26, Bruno Meneguello [email protected]
menulis:

Dimungkinkan untuk membuat plugin sumber data yang memiliki akses ke yang lain
sumber data?
Cara ini memungkinkan untuk membungkus respons sumber data dan kemudian mengubahnya.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/grafana/grafana/issues/3677#issuecomment -262526082,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAAq94YeRbQxzw_CDfEiDjjbZj4pJLmTks5rBE0wgaJpZM4HAses
.

Ini sempurna! Saya pikir saya akan mencoba membangun sesuatu di atas ini, untuk membuat beberapa bahasa untuk mengambil seri dari sumber data lain dan memprosesnya dengan fungsi.
Ada lagi yang tertarik?

@bkmeneguello pastikan untuk membaca komentar saya: https://github.com/grafana/grafana/issues/3677#issuecomment -230233579. Sebelum mengimplementasikan sesuatu, kita harus menyepakati apakah ini harus dilakukan di sisi klien (js) atau sisi server.

Tentu, jika implementasi ini akan menjadi inti, tetapi untuk pratinjau dapat dibuat sebagai plugin sumber data.

@torkelo Apakah ini memungkinkan "membagi" dua kueri?

Sangat tertarik dengan fungsi ini juga.

Saya juga akan tertarik dengan ini. Saya dapat menggunakan ini untuk memiliki kemampuan untuk menampilkan "total gabungan" di kursor semua metrik pada panel yang ditumpuk.

@torkelo Hai, apakah kami memiliki ETA sekarang kapan fitur ini akan tersedia untuk sumber data OpenTSDB.

@shivam009 tidak ada ETA saat ini

@torkelo Halo,

Apakah ada ETA untuk #3677 ? Ini akan sangat membantu ketika menggabungkan sum/avg/etc pada hasil beberapa metrik dengan cara yang sama seperti sumber data Graphite.
Menggunakan Elasticsearch sebagai sumber data di sini.

belum ada ETA, tapi itu adalah sesuatu yang kami harapkan bisa tercapai tahun ini.

Mungkin berguna untuk membandingkan dengan rentang waktu yang berubah-ubah (misalnya, "referensi data")

Hai @torkelo ,

Ada pembaruan di #3677 ??

tidak ada pembaruan :( Saya akan memposting pembaruan di sini jika ada

Hai @torkelo ,

Terima kasih atas respon cepatnya. Pada dasarnya, persyaratan saya adalah rata-rata poin data yang dikembalikan dari ES dan mengelompokkannya selama interval waktu 1 menit. Apakah ada alternatif lain untuk mencapai fungsionalitas meringkas dan sumSeries di Elasticsearch?

@ shiv6146 tidak bisakah Anda menggunakan fungsi interval histogram tanggal Elasticsearch untuk itu?

@torkelo Saya dapat melakukan grup bersarang dengan, menggunakan histogram tanggal tetapi sayangnya Grafana tidak mengizinkan saya untuk menyembunyikan grup dalam dengan keluaran dan hanya memplot titik data agregat :(

Bisakah Anda setidaknya menerapkan sesuatu yang sederhana seperti menambah dan mengurangi?

  • Metrik C: #A - #B
  • Metrik D: #A + #B

@mtipanov ada di peta jalan kami, tetapi kami sibuk dengan fitur lain hingga setelah musim panas.

@mstipanov
Looking forward untuk melihat ini ASAP juga. Menggunakan influxdb

•Metrik C: #A - #B
•Metrik D: #A + #B

pasti ingin membantu yang satu ini jika ada spek. Setiap tempat saya bisa mulai bekerja untuk yang satu ini ? Juga mungkin ada beberapa metrik yang mungkin memerlukan lebih banyak data yang tersedia di "A" yang ada misalnya, rata-rata pergerakan 7 hari akan membutuhkan (seri saat ini + data 7 hari sebelumnya)

@torkelo apakah Anda punya ide tentang bagaimana menurut Anda kita harus menerapkannya? Saya bersedia menginvestasikan waktu untuk membangun ini. Butuh frontend di atas Druid.

melihat ke dalam memperluas melalui plugin. Harus meneruskan datasourceSrv ke meta-queries-plugin dan kemudian membiarkan plugin melakukan panggilan kembali ke sumber data. Berencana untuk bekerja di Moving average & Time Shift terlebih dahulu.

Halo teman-teman, saya mengalami masalah seperti @f1-outsourcing dan @mtipanov (metrik A (+-) metrik B). Dan kemudian, saya mengembangkan plugin panel untuk melakukan ini, yang disebut "Plugin Calculated Stat". Jika Anda tertarik, ini github saya https://github.com/fabiojose/grafana-calcltdstat-plugin .

@fabiojose terima kasih, saya melihat plugin Anda. Terima kasih telah memadamkannya. Saya pikir mungkin lebih baik untuk mengimplementasikannya sebagai sumber data sehingga kita dapat menggunakan panel apa pun seperti tabel atau grafik. Saya selesai dengan Time Shift. Akan membuka sumbernya dalam satu atau dua hari. Akan selesai dengan rata-rata bergerak saat itu juga

Poshmark telah open source https://github.com/GoshPosh/grafana-meta-queries , mendukung kolom yang dihitung, Moving Average & Timeshift

Menakjubkan! selamat bekerja!

@torkelo jika Anda punya waktu, bisakah Anda memberikan tanggapan Anda tentang plugin?

@Gauravshah ya! maaf, tim hole sibuk mempersiapkan dan melakukan perjalanan ke konferensi pengembang yang kami sponsori minggu ini sehingga ulasan & umpan balik plugin lambat. Mungkin minggu depan atau minggu setelahnya

@torkelo jangan khawatir, harap luangkan waktu Anda. Terima kasih

@torkelo Apakah ada pembaruan?

Saya ingin melihat fitur ini diimplementasikan secepatnya juga

Hai,
menggunakan grafana v4.5.2 dengan Elasticsearch.
Perlu mengonversi stempel waktu ke nilai boolean berdasarkan apakah waktu telah berlalu sejak stempel waktu kurang dari 5 menit.
nilai bidang skrip (Waktu adalah fungsi yang mengembalikan zaman saat ini):
boolean( Waktu - _nilai > 300 )
Apakah itu juga dalam rencana Anda?
Selain itu, kita memerlukan opsi untuk menghasilkan grafik yang merupakan pembagian dua nilai dari kueri yang berbeda, dari waktu ke waktu.
Terima kasih,

@lilachmaliniak
Anda bisa melakukan ((new Date()).getTime() - A['_value']) > 300
dua sumber data yang berbeda akan bekerja

Terima kasih @Gauravshah
Saya tidak dapat melakukan persis seperti yang Anda sarankan, mungkin karena tipe nilai, yaitu angka/int.
Saya mendapat kesalahan: 500
saat itulah saya mengatur skrip Opsi ke: (((new Date()).getTime() - _value) < 300000 )
Ini adalah kuerinya:
{"search_type":"query_then_fetch","ignore_unavailable":true,"index":"beaconindex"} {"size":0,"query":{"bool":{"filter":[{"range": {"private_data.timestamp":{"gte":"1513673225106","lte":"1513676825106","format":"epoch_millis"}}},{"query_string":{"analyze_wildcard":true,"query" :"private_data.kes_hostname.keyword:(\"lilach\-centos\-vm.com\")"}}]}},"aggs":{"5":{"terms":{"field":" private_data.kes_hostname.keyword","size":10,"order":{"_term":"desc"},"min_doc_count":1},"aggs":{"1":{"max":{" field":"private_data.timestamp","missing":0,"script":{"inline":"((( new Date()).getTime() - _value) < 300000 ) "}}},"3 ":{"min":{"field":"private_data.systemMetrics.systemData.system.uptime"}}}}}} "
Menjalankan kueri yang sama dari Kibana, saya mendapatkan:
{
"kesalahan": {
"akar masalah": [
{
"type": "class_cast_exception",
"alasan": null
}
],
"type": "search_phase_execution_exception",
"reason": "semua pecahan gagal",
"fase": "permintaan",
"dikelompokkan": benar,
"failed_shards": [
{
"pecahan": 0,
"indeks": "indeks suar",
"simpul": "TGW3SyrEQHSnIi8qQt3rNw",
"alasan": {
"type": "class_cast_exception",
"alasan": null
}
}
]
},
"status": 500
}

Jadi saya menggunakan skrip berikut, di Opsi: (((new Date()).getTime() - _value) < 300000 ) ? 1: 0
Dan itu berfungsi mengubah nilai menjadi rang: [0,1]

Pertanyaan saya adalah: bagaimana saya bisa mengonversi nilai lebih lanjut di Grafana, untuk menampilkan token sebagai gantinya (mis.

Saya pikir itu harus didukung oleh grafana dan bukan oleh plugin ini. Anda mungkin dapat menetapkan (((new Date()).getTime() - _value) < 300000 ) ? '↑' : '↓' belum mencoba

@Gauravshah , terima kasih
Bisakah Anda lebih spesifik, di mana saya mengatur ini?
Jika saya menulisnya di tab Metrik di bawah Metric->Options->Script, skrip tersebut termasuk dalam kueri Lucene sebagai properti sebaris dan kueri gagal dengan status kesalahan 500.
"script":{"inline":"(((new Date()).getTime() - _value) < 300000 ) ? 'naik' : 'turun'"}

Saya pikir saya telah salah memahami pertanyaan Anda. Saya tidak tahu banyak tentang permintaan pencarian elastis. Saya pikir Anda bertanya tentang bagaimana melakukannya di plugin meta-queries

@Gauravshah , ya saya mencoba melakukannya dengan kueri ES. Saya sudah menginstal plugin meta-queries tetapi karena alasan tertentu gagal membuat dasbor dengannya. Saat membuat dasbor baru, opsi jenis MetaQuery tidak tersedia. Saya akan mencobanya lagi, terima kasih.

@Gauravshah , bagaimana cara menggunakan MetaQuery dengan sumber data ES?
di mana saya dapat menemukan dokumen plugin?
karena saya tidak dapat menemukan dokumen di git: https://github.com/GoshPosh/grafana-meta-queries
Terima kasih

Hai @Gauravshah ,
Saya berhasil membuat dasbor baru setelah menginstal plugin sumber data MetaQueries.
setelah membuat tabel baru dan atur Tabel Sumber Data menjadi -- Campuran --
menambahkan 2 pertanyaan:
Metrik ($sumber data): Maks(private_data.timestamp), Kelompokkan menurut: Istilah(private_data.kes_hostname.keyword)
B (Sumber Data MetaQuery) Ketik Ekspresi Aritmatika ((Tanggal baru()).getTime() - A['_value']) < 300000 ? 'atas': 'turun'
Kueri A mengembalikan nilai yang diharapkan dan berhasil ditampilkan dalam tabel.
tetapi, saya gagal menampilkan kolom dengan nilai ekspresi dari kueri B, dan saya tidak dapat melihat apa output ekspresi, baik itu berhasil atau gagal. Tidak ada indikasi.
Pertanyaan saya: bagaimana cara men-debug kueri (yang menggunakan metaQuery DS), dan menampilkan nilai ekspresi dalam tabel sebagai kolom tambahan?
Bersulang

sumber data harus disetel ke Meta Queries & tidak dicampur. Akan menambahkannya ke readme plugin :(

Hai @Gauravshah ,
Terima kasih.
Mengubah sumber data tabel menjadi "Sumber Data MetaQuery" seperti yang Anda sarankan.
Sekarang saya mendapatkan kesalahan "tidak dapat membaca properti 'panjang' tidak terdefinisi" dan tabel gagal menampilkan pemikiran, seperti sebelumnya kueri dari ES berhasil dengan nilai yang diharapkan.

@lilachmaliniak dapatkah Anda membuat masalah di https://github.com/GoshPosh/grafana-meta-queries , juga harap lampirkan jejak tumpukan dari browser Anda

Hai @Gauravshah ,
Menambahkan masalah baru: https://github.com/GoshPosh/grafana-meta-queries/issues/9

👍

Masalah ini sudah >2 tahun. Apakah permintaan fitur ini digulirkan ke permintaan yang berbeda?

👍

Banyak penyimpanan data deret waktu dapat melakukan ini untuk Anda, tetapi beberapa (melihat cloudwatch Anda) tidak dan mungkin tidak pernah mendukung hal semacam ini.

Sementara itu kita setidaknya bisa melakukan timeShift dengan dua panel, tetapi timeshift per-query untuk melakukan grafik perbandingan di panel yang sama akan sangat fantastis.

+1

@matschaffer & @JJMVG Anda harus dapat menggunakan https://github.com/GoshPosh/grafana-meta-queries

@SwathiMuppala Anda harus membuat masalah di repo plugin tidak di sini.

+1

+1 ini akan menjadi yuge -- Saya belum banyak berhasil dengan plugin grafana-meta-queries dengan 6.4 :(

Sebagai lapisan visualisasi yang mendukung banyak sumber data, ini bisa menjadi permata mahkota fitur pemantauan. Kami menggabungkan data dari MySQL, Elasticsearch, dan Prometheus di dasbor kami, dan menormalkan data dari satu sumber berdasarkan sumber lain dapat menjadi lompatan besar dalam pentingnya produk dalam tumpukan pemantauan kami.

Ini bukan komentar +1 lainnya.

Ini adalah +100 🙏🏼✌🏼

@torkelo Mungkin dimungkinkan untuk menggunakan sesuatu seperti https://github.com/wesm/feather atau https://arrow.Apache.org/docs/python/ipc.html sebagai semacam "cache penyimpanan kolom" yang kemudian dapat digunakan untuk pemrosesan atau manipulasi tambahan.

Anda mungkin mendapatkan ide lain dari pekerjaan di https://www.dremio.com/ - sepertinya ruang masalah yang sedikit terkait (meminta berbagai sumber data dan menyimpan di Arrow dll. untuk manipulasi dan kueri lebih lanjut.)

@torkelo Mungkin dimungkinkan untuk menggunakan sesuatu seperti https://github.com/wesm/feather atau https://arrow.Apache.org/docs/python/ipc.html sebagai semacam "cache penyimpanan kolom" yang kemudian dapat digunakan untuk pemrosesan atau manipulasi tambahan.

Meskipun bagus untuk memiliki alat eksternal untuk fungsi lanjutan, ini tidak mengatasi masalah dalam hal kesederhanaan atau integrasi dengan Grafana. Memberikan operasi aritmatika yang sangat dasar pada dua deret dapat menyelesaikan 80% masalah hanya dengan 20% waktu.

@redlus @yehosef mengapa https://github.com/GoshPosh/grafana-meta-queries bukan solusi?

@torkelo jika menurut Anda https://github.com/GoshPosh/grafana-meta-queries memecahkan masalah yang disebutkan dalam masalah ini, kita harus menutup masalah yang membahas bahwa itu sedang diselesaikan oleh plugin untuk grafana. Sulit bagi orang untuk memindai masalah panjang untuk mengetahui bahwa ada plugin yang menyelesaikan masalah.

@Gauravshah
Ingin melihat plugin yang berfungsi, tetapi kami mengalami masalah saat menggunakan plugin ini dengan versi Grafana yang lebih baru; yaitu
https://github.com/GoshPosh/grafana-meta-queries/issues/82

@redlus Anda harus mencobanya lagi, ini berfungsi pada grafana 6.4. Juga jika versi grafana terbaru adalah satu-satunya masalah, ada opsi untuk kembali ke satu versi minor. Tidak yakin mengapa Anda menelepon would love to see a working plugin

@Gauravshah sayangnya masih tidak berfungsi dengan Grafana 6.5.1 - Saya tidak mencoba dengan 6.4 tetapi beralih ke rilis yang lebih lama mungkin tidak dapat diterima oleh sebagian besar pengguna.

tidak ada perkembangan ...

Saya melihat banyak orang terpental di sini mencoba untuk menggabungkan beberapa sumber data. Saya ingin tahu apakah panel blendstat memecahkan masalah beberapa orang dan apakah desain itu dapat digunakan kembali di panel lain?

https://grafana.com/grafana/plugins/farski-blendstat-panel

Blendstat memang mengisi celah, tetapi tidak bekerja dengan pengulangan atau pengulangan untuk semua variabel. Kalau ada cara saya tidak tahu caranya.

Saya baru saja menemukan kasus penggunaan lain, saya harap ini menyelesaikannya. Saya mendapatkan kembali metrik CloudWatch dengan persen (0,0-0,1) yang memberi saya bilangan bulat 5, 7, dll. Saya mengharapkan 0,5%, 0,7% dan saya tidak melihat cara untuk mengubahnya.

Hai, maaf jika saya menginjak tanah lama di sini, tetapi ini adalah utas yang cukup panjang:

Apakah saya benar dalam berpikir bahwa permintaan fitur ini adalah untuk mendukung grafik yang dihasilkan sebagai hasil dari menggabungkan beberapa kueri? Misalnya, jika pekerjaan ini selesai, Anda dapat mengambil deret waktu dari Prometheus dan menjumlahkannya dengan deret waktu dari, katakanlah, Stack Driver?

Jika ya: apakah pekerjaan ini masih direncanakan, apa road mapnya dan apakah Anda memerlukan bantuan? :)

itu, ditambah (saya harap) waktu menggeser grafik apa pun sehingga saya dapat membandingkan grafik hari ini dengan kemarin, Atau rata-rata 7 hari.
Ya, beberapa penyimpanan data sudah dapat melakukannya, tetapi ini harus menjadi fitur umum.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat