Otomatiskan konsumsi dan visualisasi metrik kustom Amazon MWAA di Amazon Managed Grafana dengan menggunakan Terraform - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otomatiskan konsumsi dan visualisasi metrik kustom Amazon MWAA di Amazon Managed Grafana dengan menggunakan Terraform

Faisal Abdullah dan Satya Vajrapu, Amazon Web Services

Ringkasan

Pola ini membahas cara menggunakan Grafana Terkelola Amazon untuk membuat dan memantau metrik khusus yang dicerna oleh Alur Kerja Terkelola Amazon untuk Apache Airflow (Amazon MWAA). Amazon MWAA berfungsi sebagai orkestrator untuk alur kerja, menggunakan Directed Acyclic Graphs () yang ditulis dengan Python. DAGs Pola ini berpusat pada pemantauan metrik kustom, termasuk jumlah total DAGs berjalan dalam satu jam terakhir, hitungan lulus dan gagal DAGs setiap jam, dan durasi rata-rata proses ini. Analisis ini menunjukkan bagaimana Grafana Terkelola Amazon berintegrasi dengan Amazon MWAA untuk memungkinkan pemantauan dan wawasan komprehensif tentang orkestrasi alur kerja dalam lingkungan ini.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS dengan izin pengguna yang diperlukan untuk membuat dan mengelola hal berikut: Layanan AWS

    • AWS Identity and Access Management (IAM) peran dan kebijakan

    • AWS Lambda

    • Amazon Managed Grafana

    • Amazon Managed Workflows for Apache Airflow (Amazon MWAA)

    • Amazon Simple Storage Service (Amazon S3)

    • Amazon Timestream

  • Akses ke lingkungan shell yang dapat menjadi terminal pada mesin lokal Anda atau AWS CloudShell.

  • Lingkungan shell dengan Git diinstal dan versi terbaru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Menginstal atau memperbarui ke versi terbaru dari AWS CLI dokumentasi. AWS CLI

  • Versi Terraform berikut diinstal: required_version = ">= 1.6.1, < 2.0.0" Anda dapat menggunakan tfswitch untuk beralih di antara berbagai versi Terraform.

  • Sumber identitas yang dikonfigurasi AWS IAM Identity Center untuk Anda Akun AWS. Untuk informasi selengkapnya, lihat Konfirmasi sumber identitas Anda di Pusat Identitas IAM di dokumentasi Pusat Identitas IAM. Anda dapat memilih dari default Direktori Pusat Identitas IAM, Active Directory, atau penyedia Identitas eksternal (iDP) seperti Okta. Untuk informasi selengkapnya, lihat Sumber daya terkait.

Batasan

Versi produk

  • Terraform required_version = ">= 1.6.1, < 2.0.0"

  • Grafana yang Dikelola Amazon versi 9.4 atau yang lebih baru. Pola ini diuji pada versi 9.4.

Arsitektur

Diagram arsitektur berikut menyoroti yang Layanan AWS digunakan dalam solusi.

Alur kerja untuk mengotomatiskan konsumsi metrik kustom Amazon MWAA.

Diagram sebelumnya melangkah melalui alur kerja berikut:

  1. Metrik khusus dalam Amazon MWAA berasal dari DAGs yang dijalankan di dalam lingkungan. Metrik diunggah ke bucket Amazon S3 dalam format file CSV. Berikut ini DAGs menggunakan kemampuan kueri database Amazon MWAA:

    • run-example-dag— DAG ini berisi contoh kode Python yang mendefinisikan satu atau lebih tugas. Ini berjalan setiap 7 menit dan mencetak tanggal. Setelah mencetak tanggal, DAG menyertakan tugas untuk tidur, atau menjeda, eksekusi untuk durasi tertentu.

    • other-sample-dag— DAG ini berjalan setiap 10 menit dan mencetak tanggalnya. Setelah mencetak tanggal, DAG menyertakan tugas untuk tidur, atau menjeda, eksekusi untuk durasi tertentu.

    • data-extract— DAG ini berjalan setiap jam dan menanyakan database Amazon MWAA dan mengumpulkan metrik. Setelah metrik dikumpulkan, DAG ini menuliskannya ke bucket Amazon S3 untuk diproses dan dianalisis lebih lanjut.

  2. Untuk merampingkan pemrosesan data, fungsi Lambda berjalan saat dipicu oleh peristiwa Amazon S3, yang memfasilitasi pemuatan metrik ke Timestream.

  3. Timestream terintegrasi sebagai sumber data dalam Grafana Terkelola Amazon tempat semua metrik khusus dari Amazon MWAA disimpan.

  4. Pengguna dapat melakukan kueri data dan membuat dasbor khusus untuk memvisualisasikan indikator kinerja utama dan mendapatkan wawasan tentang orkestrasi alur kerja dalam Amazon MWAA.

Alat

Layanan AWS

  • AWS IAM Identity Centermembantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan. Dalam pola ini, AWS Lambda jalankan kode Python sebagai respons terhadap peristiwa Amazon S3 dan mengelola sumber daya komputasi secara otomatis.

  • Grafana Terkelola Amazon adalah layanan visualisasi data terkelola sepenuhnya yang dapat Anda gunakan untuk menanyakan, mengkorelasikan, dan memvisualisasikan, serta memperingatkan metrik, log, dan jejak Anda. Pola ini menggunakan Grafana Terkelola Amazon untuk membuat dasbor visualisasi dan peringatan metrik.

  • Amazon Managed Workflows for Apache Airflow (Amazon MWAA) adalah layanan orkestrasi terkelola untuk Apache Airflow yang dapat Anda gunakan untuk menyiapkan dan mengoperasikan pipeline data di cloud dalam skala besar. Apache Airflow adalah alat open source yang digunakan untuk secara terprogram menulis, menjadwalkan, dan memantau urutan proses dan tugas yang disebut sebagai alur kerja. Dalam pola ini, sampel DAGs dan ekstraktor metrik DAG digunakan di Amazon MWAA.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data. Dalam pola ini, Amazon S3 digunakan untuk menyimpan DAGs, skrip, dan metrik khusus dalam format CSV.

  • Amazon Timestream for LiveAnalytics is adalah database deret waktu yang cepat, terukur, dikelola sepenuhnya, dan dibuat khusus yang memudahkan penyimpanan dan analisis triliunan titik data deret waktu per hari. Timestream for LiveAnalytics juga terintegrasi dengan layanan yang umum digunakan untuk pengumpulan data, visualisasi, dan pembelajaran mesin. Dalam pola ini, ini digunakan untuk menelan metrik kustom Amazon MWAA yang dihasilkan.

Alat-alat lainnya

  • HashiCorp Terraform adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud. Pola ini menggunakan modul Terraform untuk mengotomatiskan penyediaan infrastruktur di. AWS

Repositori kode

Kode untuk pola ini tersedia GitHub di repositori visualize-amazon-mwaa-custom-metrics-grafana. stacks/InfraFolder berisi yang berikut:

  • File konfigurasi Terraform untuk semua sumber daya AWS

  • Grafana dasbor file.json di folder grafana

  • Alur Kerja Terkelola Amazon untuk Apache DAGs Airflow di folder mwaa/dags

  • Kode Lambda untuk mengurai file.csv dan menyimpan metrik di database Timestream di folder src

  • Kebijakan IAM. File json di folder templates

Praktik terbaik

Terraform harus menyimpan status tentang infrastruktur dan konfigurasi terkelola Anda sehingga dapat memetakan sumber daya dunia nyata ke konfigurasi Anda. Secara default, Terraform menyimpan status secara lokal dalam file bernama. terraform.tfstate Sangat penting untuk memastikan keamanan dan integritas file status Terraform Anda karena file tersebut mempertahankan status infrastruktur Anda saat ini. Untuk informasi selengkapnya, lihat Remote State dalam dokumentasi Terraform.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan infrastruktur.

Untuk menerapkan infrastruktur solusi, lakukan hal berikut:

  1. Buka terminal atau command prompt di komputer lokal Anda atau dengan menggunakan AWS CloudShell.

  2. Arahkan ke direktori tempat Anda ingin mengkloning repositori.

  3. Untuk mengkloning repositori, jalankan perintah berikut:

    git clone https://github.com/aws-samples/visualize-amazon-mwaa-custom-metrics-grafana
  4. Setelah proses kloning selesai, jalankan perintah berikut untuk menavigasi ke direktori repositori kloning:

    cd visualize-amazon-mwaa-custom-metrics-grafana/stacks/infra
  5. Untuk mengunduh dan menginisialisasi penyedia yang diperlukan, jalankan perintah berikut:

    terraform init
  6. Untuk mendapatkan tampilan komprehensif dari semua sumber daya yang akan dibuat Terraform, jalankan perintah berikut:

    terraform plan

    Terraform menyediakan sumber daya berikut:

    • Amazon Virtual Private Cloud (Amazon VPC) dan komponen jaringan terkait

    • Sumber daya Amazon S3

    • AWS Lambda fungsi

    • Sumber daya Grafana yang Dikelola Amazon (ruang kerja, dasbor, sumber data)

    • Mendukung sumber daya IAM (peran dan kebijakan)

  7. Untuk membuat AWS sumber daya dari output rencana, jalankan perintah berikut:

    terraform apply -auto-approve

    Penyediaan infrastruktur selesai dalam waktu kurang lebih 20 menit.

  8. Untuk membuat AWS sumber daya yang ditentukan sesuai dengan konfigurasi yang ditentukan dalam file Terraform Anda, jalankan perintah berikut:

    terraform apply
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Validasi lingkungan Amazon MWAA.

Untuk memvalidasi lingkungan Amazon MWAA, lakukan hal berikut:

  1. Masuk ke Konsol Manajemen AWS, navigasikan ke konsol dasbor Amazon MWAA dan pilih Open Airflow UI.

  2. Anda akan melihat tiga berikut DAGs dalam status Aktif:

    • data-ekstrak

    • run-example-dag

    • other-sample-dag

  3. Jika DAG tidak aktif, Anda dapat mengaktifkannya dengan mengaktifkan sakelar sakelar di sebelah nama DAG.

AWS DevOps, Insinyur data

Verifikasi jadwal DAG.

Untuk melihat setiap jadwal DAG, buka tab Jadwal di UI Aliran Udara.

Masing-masing dari berikut ini DAGs memiliki jadwal pra-konfigurasi, yang berjalan di lingkungan Amazon MWAA dan menghasilkan metrik khusus:

  • run-example-dag- Berjalan setiap 7 menit

  • other-sample-dag- Berjalan setiap 10 menit

  • data-extract - Berjalan setiap jam

Anda juga dapat melihat keberhasilan menjalankan setiap DAG di bawah kolom Runs.

Insinyur data, AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan akses ke ruang kerja Grafana Terkelola Amazon.

Skrip Terraform membuat ruang kerja, dasbor, dan metrik Grafana Terkelola Amazon yang diperlukan. Untuk mengonfigurasi akses sehingga Anda dapat melihatnya, lakukan hal berikut:

  1. Buka konsol Grafana yang Dikelola Amazon.

  2. Di Ruang kerja, pilih ruang kerjagrafana-ws-dev, dan arahkan ke tab Otentikasi di panel bawah.

  3. Pilih tombol Tetapkan pengguna atau grup baru.

  4. Tambahkan grup Anda di tab Grup atau pengguna di tab Pengguna, lalu pilih tombol Tetapkan pengguna dan grup.

  5. Setelah pengguna (atau grup) ditambahkan, jadikan pengguna ini (atau grup) admin. Pilih pengguna di Pengguna atau grup yang ditugaskan di tab grup pengguna yang ditugaskan dan pilih Buat admin dari menu tarik-turun. Untuk informasi selengkapnya, lihat Menggunakan AWS IAM Identity Center dengan ruang kerja Grafana Terkelola Amazon di dokumentasi Grafana Terkelola Amazon.

  6. Arahkan ke Ruang Kerja, lalu pilih URL ruang kerja Grafana. Untuk masuk ke Grafana Terkelola Amazon sebagai admin, pilih Masuk dengan. AWS IAM Identity Center

AWS DevOps

Instal plugin Amazon Timestream.

Metrik kustom Amazon MWAA dimuat ke database Timestream. Anda menggunakan plugin Timestream untuk memvisualisasikan metrik dengan dasbor Grafana Terkelola Amazon.

Untuk menginstal plugin Timestream, lakukan hal berikut:

  1. Di konsol Grafana yang Dikelola Amazon, perluas menu di panel navigasi kiri dan buka Administrasi, Plugin.

  2. Cari dan kemudian instal versi terbaru dari plugin Amazon Timestream.

  3. Setelah plugin diinstal, buka Administrasi, Sumber data untuk melihat sumber data Timestream. Jika sumber data tidak terdaftar, segarkan halaman.

Untuk informasi selengkapnya, lihat Memperluas ruang kerja Anda dengan plugin di dokumentasi Grafana Terkelola Amazon.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Lihat dasbor Grafana Terkelola Amazon.

Untuk melihat metrik yang dimasukkan ke dalam ruang kerja Grafana Terkelola Amazon, lakukan hal berikut:

  1. Di konsol Grafana Terkelola Amazon, pilih Dasbor di panel navigasi kiri.

  2. Untuk melihat metrik, pilih dasbor peristiwa MWAA lalu pilih mwaa_metrics.

Halaman metrik dasbor menampilkan informasi berikut:

  • Total DAG berjalan dalam satu jam terakhir

  • Total berhasil, gagal, dan menjalankan DAG berjalan dalam satu jam terakhir

  • Durasi rata-rata untuk semua, berhasil, dan gagal DAG berjalan

AWS DevOps

Sesuaikan dasbor Grafana Terkelola Amazon.

Untuk menyesuaikan dasbor untuk penyempurnaan masa depan lebih lanjut, lakukan hal berikut:

  1. Di mwaa_metrics halaman dasbor Grafana Terkelola Amazon, pilih ikon Pengaturan Dasbor.

  2. Untuk melihat struktur data yang mendefinisikan dasbor, pilih model JSON. Anda dapat menyesuaikan dasbor dengan mengedit model JSON ini langsung di konsol.

Atau, kode sumber untuk dasbor ini tersedia dalam dashboard.json file di stacks/infra/grafana folder di GitHub repositori.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Jeda Amazon MWAA DAG berjalan.

Untuk menjeda DAG berjalan, lakukan hal berikut:

  1. Di konsol Amazon MWAA, navigasikan ke lingkungan Airflow dan pilih Open Airflow UI.

  2. Untuk menjeda DAG, gunakan sakelar sakelar di sebelah setiap DAG.

  3. Segarkan halaman UI Airflow, yang seharusnya mencantumkan tiga DAGs di bagian Dijeda.

AWS DevOps, Insinyur data

Hapus objek di bucket Amazon S3.

Untuk menghapus bucket Amazon S3 mwaa-events-bucket-* dan mwaa-metrics-bucket-*, ikuti petunjuk penggunaan konsol Amazon S3 di Menghapus bucket di dokumentasi Amazon S3.

AWS DevOps

Hancurkan sumber daya yang dibuat oleh Terraform.

Untuk menghancurkan sumber daya yang dibuat oleh Terraform dan file status Terraform lokal terkait, lakukan hal berikut:

  1. (Opsional) Sebelum menghapus sumber daya, Anda dapat melihat pratinjau perubahan yang akan dilakukan Terraform. Untuk membuat rencana, jalankan perintah berikut:

    terraform plan -destroy

    Output perintah menunjukkan bahwa destroy perintah akan menghapus semua AWS sumber daya yang dibuat sebelumnya.

  2. terraform destroy -auto-approve

    Perintah ini membutuhkan waktu sekitar 20 menit untuk menghancurkan infrastruktur.

    catatan

    Untuk menghancurkan semua sumber daya yang dikelola oleh Terraform, jalankan perintah berikut. : -auto-approve Tag tidak menunggu konfirmasi pengguna untuk mulai menghancurkan sumber daya.

  3. Untuk menghapus file status Terraform lokal, jalankan perintah berikut:

    rm .terraform.lock.hcl rm -rf .terraform rm terraform.tfstate*
AWS DevOps

Pemecahan Masalah

IsuSolusi

null_resource.plugin_mgmt (local-exec): aws: error: argument operation: Invalid choice, valid choices are:

Tingkatkan versi Anda AWS CLI ke versi terbaru.

Memuat sumber data kesalahan -

Fetch error: 404 Not Found Instantiating…

Kesalahannya terputus-putus. Tunggu beberapa menit, lalu segarkan sumber data Anda untuk melihat sumber data Timestream yang terdaftar.

Sumber daya terkait

AWS dokumentasi

AWS video

https://www.youtube-nocookie.com/embed/XX2Xcz-Ps9U? kontrol=0

https://www.youtube-nocookie.com/embed/Z4 JHxl2xp Og? kontrol=0

Informasi tambahan

Anda dapat membuat solusi pemantauan dan peringatan komprehensif untuk lingkungan Amazon MWAA Anda, memungkinkan manajemen proaktif dan respons cepat terhadap potensi masalah atau anomali. Grafana yang Dikelola Amazon mencakup kemampuan berikut:

Peringatan — Anda dapat mengonfigurasi lansiran di Grafana Terkelola Amazon berdasarkan ambang batas atau kondisi yang telah ditentukan sebelumnya. Siapkan notifikasi email untuk mengingatkan pemangku kepentingan terkait saat metrik tertentu melebihi atau jatuh di bawah ambang batas yang ditentukan. Untuk informasi selengkapnya, lihat Peringatan Grafana di dokumentasi Grafana Terkelola Amazon.

Integrasi — Anda dapat mengintegrasikan Grafana Terkelola Amazon dengan berbagai alat pihak ketiga seperti OpsGenie, PagerDuty, atau Slack untuk kemampuan notifikasi yang ditingkatkan. Misalnya, Anda dapat mengatur webhook atau mengintegrasikan dengan APIs untuk memicu insiden dan notifikasi di platform ini berdasarkan peringatan yang dihasilkan di Amazon Managed Grafana. Selain itu, pola ini menyediakan GitHub repositori untuk membuat AWS sumber daya. Anda dapat mengintegrasikan kode ini lebih lanjut dengan alur kerja penerapan infrastruktur Anda.