Masa depan Prometheus dan ekosistem proyek (2020)

Approx. terjemahan. : Ini adalah terjemahan dari artikel berdasarkan pembicaraan baru-baru ini oleh Richard Hartmann, anggota terkemuka dari tim pengembangan Prometheus, direktur komunitas di Grafana Labs, pendiri proyek OpenMetrics dan ketua kelompok SIG Observability di CNCF. Penulis merangkum hasil tahun lalu dalam kehidupan proyek Open Source (dan komunitas) Prometheus, serta berbicara tentang kesulitan utama dan prospek jangka pendek.







Selama PromCon Online 2020, saya memberikan ceramah berjudul "Masa depan Prometheus dan ekosistemnya". Dan saya ingin berbagi dengan Anda poin-poin utamanya.



Ringkasan



Sejak konferensi terakhir PromCon - 2019, ada banyak perubahan di Prometheus.





2.14



Versi 2.14 memperkenalkan antarmuka baru di React. Meskipun dari segi fungsionalitas masih tertinggal dari yang lama, kami sedang mengerjakannya dan terus meningkatkannya.



2.15



Versi 2.15 berada di bawah bendera Metadata API. Format Eksposur Prometheus telah lama mendukung ekspresi khusus HELP, TYPEdll., Namun Prometheus sendiri biasanya membuang data ini. Sekarang mereka tetap ada, Anda dapat membuka akses eksternal melalui API. Misalnya, Grafana telah memanfaatkan peluang ini dan memberi pengguna informasi tambahan tentang deret waktu tempat mereka bekerja:







2.16



Versi 2.16 berfokus pada berbagai peningkatan dan stabilitas. Misalnya, sejak 2016, pengguna telah bertanya tentang kemampuan untuk memilih waktu lokal di UI, serta penerapan log kueri - senang bisa menutup masalah ini.



2.17



Berbicara tentang permintaan fitur yang tersisa, versi 2.17 akhirnya menghadirkan "I" yang telah lama ditunggu-tunggu di ACID untuk database : isolation .



2.18



Di 2.18 , penelusuran dan dukungan untuk contoh format eksposur telah ditingkatkan. Instance adalah dampak pertama yang terlihat oleh pengguna dari penerapan OpenMetrics di Prometheus. Dengan menggabungkannya dengan Grafana, Anda dapat mencapai perincian yang nyaman, memungkinkan Anda beralih dari:







... ke:







2.19



Di 2.19, kami mengurangi konsumsi memori sebanyak 50%! Meskipun Prometheus sudah cukup efektif, ada potensi signifikan untuk pengoptimalan - ini menarik dan menakutkan.



Grafik ini adalah ilustrasi yang bagus untuk ini:







2.20



Versi 2.20 membanggakan changelog terpanjang sejak v2.6 (!). Yang utama mungkin adalah dukungan penemuan layanan asli untuk Docker Swarm dan DigitalOcean.



Namun ada perubahan yang lebih penting yang melampaui penerapan dua mekanisme penemuan layanan independen: kami memisahkan Prometheus dan melihat kembali banyak solusi lama dan pendekatan yang sudah mapan. Dunia telah berubah (mungkin kami juga ikut campur dalam hal ini) - ini harus diperhitungkan baik dalam proyek itu sendiri maupun dalam proyek lain.



node_exporter



Untuk meringkas, saya ingin menunjukkan bahwa node_exporter telah mencapai versi 1.0 dan sekarang menyertakan dukungan TLS EKSPERIMEN. Cloud Native Computing Foundation mensponsori audit node_exporter oleh Cure53 (ini mencakup eksportir secara umum dan implementasi TLS kami secara khusus). Dan itu sangat berharga: kami tidak hanya memeriksa TLS sebelum menyalinnya ke eksportir lain, tetapi juga menggunakan node_exporter sebagai kelinci percobaan dari mana pola lain disalin.



Masa depan



Kadang-kadang saya merasa bahwa kami, sebagai sebuah proyek, sedang berpuas diri. Beberapa waktu lalu saya mengadakan sesi curah pendapat di dalam Grafana dengan moto "Prometheus kekurangan fitur" dan mendorong Red Hat untuk melakukan hal yang sama. Sepanjang jalan, kami membuat dokumen tentang SEMUANYA yang tersedia untuk seluruh tim Prometheus. Ini berfungsi sebagai kerangka kerja untuk membahas topik tertentu, dipecah menjadi poin-poin untuk diskusi selama dev-KTT (segera setelah poin-poin ini siap).



Pengembang Summits



Tahun lalu kami memiliki dua KTT pengembang: satu setelah KubeCon EU, yang kedua setelah PromCon. Direncanakan untuk melakukan hal yang sama pada tahun 2020, tetapi COVID mencegahnya. Tidak ada pertemuan puncak tahun ini, tetapi saya yakin kami telah menemukan jalan keluar: pertemuan yang lebih singkat, lebih sering, dan virtual. Kami menghabiskan blok 4 jam alih-alih mengumpulkan selama 1-2 hari sekaligus. Pertemuan puncak dev yang pertama berlangsung pada 10 Juli, dan yang berikutnya mungkin akan berlangsung pada 7 Agustus. Kami akan terus melakukannya sampai kami menganalisis semua pertanyaan yang terkumpul (meskipun jumlahnya terus bertambah karena semakin banyak item baru dari dokumen di atas ditambahkan).



Saat ini saya ingin melakukan dua hal:



  1. , . , , . , . β€” , , .
  2. , , . , , .




Metadata mulai membawa nilai nyata ke Prometheus (lihat 2.15 di atas). Kita perlu menerapkan lebih banyak opsi untuk bekerja dengan metadata (misalnya, mendistribusikannya melalui baca / tulis jarak jauh). Konsensus di bawah ini tidak mencakup pertanyaan menarik seperti "Bagaimana jika metadata berubah / hilang?" atau "Bagaimana jika mereka menjadi vektor serangan?"



KONSENSUS: Kami ingin menjaga metadata dengan lebih baik. Pekerjaan akan dilakukan dalam dokumen khusus .



KONSENSUS: PR 6815 akan digunakan sebagai solusi EKSPERIMEN. Kemungkinan besar, ini akan berbeda di versi 3.x.


Perubahan alur kerja dan s / master / main /



Topik pembersihan sampah yang menumpuk dalam proses kerja tidak memerlukan penjelasan khusus, tetapi beberapa kata harus dikatakan tentang menghilangkan verbiage (kesatuan terminologi). Kami serius untuk membersihkan terminologi: ini bukan hal terpenting, tetapi sesuatu yang dapat kami lakukan sekarang. Sementara kami menunggu toolkit yang sesuai dari GitHub. Segera setelah muncul, kami akan mencoba menarik magang berbayar untuk pekerjaan ini melalui Jembatan Komunitas.



Saya sedang dalam pembicaraan dengan Linux Foundation dan CNCF untuk kemungkinan menerapkan ini di semua proyek. Kesempatan besar bagi siapa saja yang tertarik dengan topik ini: kesempatan untuk menjelajahi banyak proyek, bekerja dengan berbagai alat, bertemu banyak orang. Hubungi saya di Twitter ( @TwitchiH ) atau melalui surat ( richih di grafana.com) jika Anda tertarik.



KONSENSUS: Setel "Wajibkan pemeriksaan status sebelum bergabung" di semua prometheus / repositories ... Jangan izinkan dorongan langsung di cabang utama? Jangan biarkan dorongan paksa di cabang utama?



KONSENSUS: Nonaktifkan dorongan paksa ke semua cabang utama.



KONSENSUS: Perilaku default memungkinkan mendorong di cabang utama, namun itu harus dinonaktifkan untuk beberapa repo "penting", misalnya, prometheus / prometheus (atas kebijaksanaan pengelola).


Mengisi dengan data (pengisian ulang)



Ini adalah salah satu permintaan fitur tertua dan contoh yang baik tentang cara mendekati konsensus. Ada banyak pendapat berbeda yang beredar di tim Prometheus tentang masalah ini, dan sulit untuk sampai pada penyebut yang sama. Oleh karena itu, saya menulis proposal konsensus yang terbatas dan sangat spesifik dengan tiga kriteria: "Kami ingin mendukung penimbunan ulang melalui jaringan setidaknya di blok yang tidak tumpang tindih dengan blok kepala ."



Setelah diskusi yang panjang dan upaya untuk mencapai konsensus, menjadi jelas bahwa tidak mudah untuk melakukan ini. Oleh karena itu, saya merumuskan kembali proposal sebagai berikut: β€œKami ingin mendukung pengurukan melalui jaringan setidaknya oleh aliran yang tidak bersinggungan dengan blok head".



Hanya dengan memaksa setiap orang untuk mengungkapkan pendapat mereka sendiri tentang masalah ini, kami dapat mencapai versi final: "Kami ingin mendukung pengurukan melalui jaringan di blok yang tidak bersinggungan dengan blok kepala, asalkan diterapkan dengan benar ." Setiap kata di sini telah dipilih untuk mencerminkan cakupan dan batasan konsensus yang tepat.



: Prometheus OpenMetrics, CSV- .



: backfilling , .



: backfilling , .



: backfilling , .




Tugas lain yang terkait dengan menertibkan sesuatu. Di sini saya ingin mengkritik Go: Go dikembangkan di dunia di mana mono tunggal adalah norma. Google menyimpan semua (atau sebagian besar) kode umumnya dalam satu repositori. Pendekatan ini memiliki banyak keuntungan, tetapi tidak diterjemahkan dengan baik ke dalam kondisi dunia nyata. Go perlahan tapi pasti menjauh dari warisan ini.



Fakta menyenangkan: Saya menulis proposal konsensus hampir di awal diskusi. Jelas bahwa kami setidaknya akan mencobanya. Jelas bahwa Ben Kochie secara sukarela melakukan ini. Dan jelas bahwa node_exporter akan menjadi "korban". Sebagai aturan, kami berusaha untuk meningkatkan alur kerja, dan Ben selalu menjadi sukarelawan, dan node_exporter adalah bangku tes yang kemudian kami salin hasilnya ke eksportir lain. Dan ya, penting bahwa diskusi berlangsung sebentar dan orang-orang sampai pada hal ini sendiri, daripada mengkonfrontasi mereka dengan fakta.



KONSENSUS: Hapus di node_exporter dan lihat apakah kami puas dengan hasilnya.


Milis dan IRC



Google diblokir di China, tetapi milis kami berfungsi di sana. Kami memutuskan untuk mencoba membuatnya mungkin untuk berlangganan melalui email. Saya memeriksa: prometheus-users+subscribe@googlegroups.com berfungsi. Anda juga dapat membaca arsip ( https://www.mail-archive.com/prometheus-users@googlegroups.com/maillist.html ) jika Anda mau.



Selain itu, kami memastikan bahwa setiap orang dapat menggunakan IRC melalui Matrix, karena untuk beberapa xkcd 1782 sangat relevan.



:



, Google ; - .



docs/community , Google.



IRC, Matrix; , .




Izinkan saya mengulangi apa yang saya katakan di KTT: β€œHal pertama yang saya tidak suka tentang Prometheus di tahun 2015 adalah dokumentasinya; pada tahun 2020, saya hanya membencinya. Sulit digunakan dan hampir tidak berguna, hanya cocok untuk mereka yang sudah tahu apa yang mereka lakukan, atau setidaknya memiliki ide bagus tentang konsepnya. " Singkatnya, kami akan bekerja ke arah ini:



:



:



* (user manual) .

* (reference) , PromQL /.

* (guides), .



Diana Payton , .. .



.


Jika Anda tertarik, kami sedang mencari penulis teknis di Grafana Cloud yang akan mengerjakan dokumentasi hulu resmi untuk Prometheus. Pada akhirnya, kami menganggap serius komitmen kami kepada komunitas.



Seperti biasa, catatan dari dev-Summit akan dipublikasikan. Anda juga bisa membaca hasil KTT dan KTT 2020-1 tahun lalu .



PS dari penerjemah



Baca juga di blog kami:






All Articles