


Mengautomasikan Muat Turun Log Pencetus Atlas MongoDB Melepasi Had GUI dan CLI
Baru-baru ini saya menghadapi senario di mana saya perlu memuat turun log yang banyak daripada MongoDB Atlas Triggers secara tempatan. Pada masa ini, terdapat tiga cara untuk memuat turun log daripada Atlas:
- Menggunakan GUI
- Menggunakan CLI
- Menggunakan API Pentadbir Perkhidmatan Apl
Walau bagaimanapun, pilihan GUI dan CLI mempunyai had mengenai volum log yang boleh dimuat turun, terutamanya had 10,000 log.
Had GUI dan CLI untuk Muat Turun Log
Menggunakan GUI
Dengan GUI, pengguna boleh menapis log mengikut tarikh, jenis, ID pengguna atau ID permintaan, tetapi had ditetapkan kepada 10,000 log semasa memuat turun.
Menggunakan CLI
Dengan CLI, kita boleh menjalankan arahan seperti:
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
Walau bagaimanapun, ini juga mempunyai had muat turun yang sama iaitu 10,000 log.
Penyelesaian: API Pentadbir Perkhidmatan Apl dengan Penomboran
Untuk mengatasi had muat turun ini, API Pentadbir Perkhidmatan Aplikasi menyediakan cara untuk mengakses log dengan penomboran. Dengan melaksanakan penomboran, pengguna boleh mengambil log melebihi had 10K lalai.
Arahan terperinci tentang menggunakan penomboran dengan API boleh didapati dalam dokumentasi MongoDB: Dapatkan Log Penomboran.
Penyelesaian yang Dicadangkan: Skrip Automatik untuk Muat Turun Log Besar
Untuk menyelaraskan ini, saya membangunkan skrip yang mengambil log secara automatik menggunakan penomboran. Skrip ini tersedia dalam repositori awam di sini: Atlas App Logs Aggregator.
Ciri-ciri Utama Skrip
- Pengambilan Log Automatik: Mengambil log daripada MongoDB Atlas App Services dengan sokongan untuk set log yang besar melalui penomboran.
- Penapisan Julat Tarikh Fleksibel: Membenarkan penapisan tarikh pilihan menggunakan parameter tarikh_mula dan tarikh_akhir.
- Pengesahan ISO 8601: Sahkan tarikh untuk memastikan ia mengikut format ISO 8601.
- Pengesahan Selamat: Menyokong pengesahan menggunakan kunci API awam dan peribadi MongoDB Atlas.
- ID pengguna pilihan untuk log penapisan ID pengguna.
- Co_id pilihan untuk log penapisan ID korelasi.
- Ambil log ralat sahaja menggunakan pilihan errors_only.
- Tapis log mengikut pasangan nilai kunci menggunakan pilihan --filter.
Skrip hanya menggunakan titik akhir GET dan mengagregat log masuk ke dalam fail tanpa mengubah suai sebarang data.
Cara menggunakannya
Keperluan
- Python 3.6 atau lebih tinggi.
- kebergantungan perpustakaan requirements.txt.
Pemasangan
Cipta persekitaran maya
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
Pasang kebergantungan
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
Penggunaan
Argumen Baris Perintah
- project_id (diperlukan): ID Projek Atlas (rentetan heksadesimal). app_id (diperlukan): ID Apl (rentetan).
- public_api_key (diperlukan): Kunci API Awam Atlas (rentetan).
- private_api_key (diperlukan): Kunci API Peribadi Atlas (rentetan dengan sempang).
- --start_date (pilihan): Tarikh Mula dalam format ISO 8601 (YYYY-MM-DDTHH:MM:SS.MMMZ).
- --end_date (pilihan): Tarikh Tamat dalam format ISO 8601 (YYYY-MM-DDTHH:MM:SS.MMMZ).
- --type (pilihan): Senarai jenis log yang disokong dipisahkan koma. Pada masa ini, jenis yang tersedia ialah: TRIGGER_FAILURE, TRIGGER_ERROR_HANDLER, DB_TRIGGER, AUTH_TRIGGER, SCHEDULED_TRIGGER, FUNCTION, SERVICE_FUNCTION, STREAM_FUNCTION, SERVICE_STREAM_FUNCTION, AUTH, API_PUSHL, AUTH, API_PUSHL, ENDPOINT_API, NECTION_START, SYNC_CONNECTION_END, SYNC_SESSION_START, SYNC_SESSION_END, SYNC_CLIENT_WRITE, SYNC_ERROR , SYNC_OTHER, SCHEMA_ADDITIVE_CHANGE, SCHEMA_GENERATION, SKEMA_VALIDATION, LOG_FORWARDER
- --user_id (pilihan): Kembalikan hanya mesej log yang dikaitkan dengan user_id yang diberikan.
- --co_id (pilihan): Kembalikan hanya mesej log yang dikaitkan dengan permintaan yang diberikan ID Korelasi.
-
--filter (pilihan): Tapis log mengikut pasangan nilai kunci (cth., --filter event_subscription_name=
,function_name= ). - --errors_only (pilihan): Kembalikan mesej log ralat sahaja.
- --verbose (pilihan): Dayakan maklumat pengelogan verbose.
Contoh
pip install -r requirements.txt
Dengan parameter pilihan
python main.py <project_id> <app_id> <public_api_key> <private_api_key> --start_date 2024-10-05T14:30:00.000Z --end_date 2024-10-06T14:30:00.000Z --type TRIGGER_FAILURE,SCHEMA_GENERATION
Jika tarikh_mula dan tarikh_akhir tidak disediakan, skrip akan lalai tarikh_mula hingga 24 jam terakhir dari masa semasa.
Penapisan Log
Pilihan --filter membolehkan anda menapis log mengikut pasangan nilai kunci. Pilihan ini menerima berbilang pasangan nilai kunci yang dipisahkan oleh ruang. Setiap pasangan kunci-nilai hendaklah dalam format key=value.
Pasangan nilai kunci mestilah nilai yang dikembalikan oleh titik akhir. Dengan cara ini ia akan menggunakannya untuk menapis dan hanya menyimpan yang sepadan. Contohnya, untuk "jenis": "SCHEDULED_TRIGGER", nilai kunci respons akan serupa dengan:
python main.py <project_id> <app_id> <public_api_key> <private_api_key> --start_date 2024-10-05T14:30:00.000Z --type TRIGGER_FAILURE,SCHEMA_GENERATION --user_id 671d2e2010733ecbaa2bab8f --filter event_subscription_name=getUnpausedClustersMetrics
Kami boleh menggunakan mana-mana ini dalam pilihan --filter (cth., --filter event_subscription_name=getUnpausedClustersMetrics)
Pembalakan
Skrip menyokong pengelogan ke kedua-dua konsol dan fail log. Secara lalai, fail log disimpan dalam folder log. Nama fail log termasuk cap masa untuk memastikan keunikan bagi setiap larian.
--verbose: Apabila bendera ini digunakan, tahap log ditetapkan kepada DEBUG, memberikan maklumat pengelogan terperinci. Tanpa bendera ini, tahap log ditetapkan kepada INFO.
Lokasi Fail Log
Fail log disimpan dalam folder log. Setiap fail log dinamakan dengan cap masa untuk memastikan log daripada larian yang berbeza tidak menimpa satu sama lain.
Contoh Nama Fail Log
appservices logs list --project 5e208aa2d5ec1375ecd5*** --app triggers_realmapp-**** --type=trigger --start="2024-10-15T00:00:00.000+0000" -o log.logs
Faedah
- Pendapatan Log Automatik: Ambil log dengan mudah daripada MongoDB Atlas App Services tanpa campur tangan manual.
- Penapisan Julat Tarikh: Tapis log mengikut julat tarikh untuk memfokus pada tempoh tertentu.
- Sokongan Penomboran: Kendalikan set besar log dengan cekap menggunakan penomboran.
- Pengesahan: Pastikan input tarikh berada dalam format yang betul untuk mengelakkan ralat.
PENAFIAN
Sila ambil perhatian: Repo ini dikeluarkan untuk kegunaan "SEBAGAIMANA ADANYA" tanpa sebarang jenis jaminan, termasuk, tetapi tidak terhad kepada pemasangan, penggunaan atau prestasinya. Kami menafikan mana-mana dan semua waranti, sama ada nyata atau tersirat, termasuk tetapi tidak terhad kepada sebarang waranti tanpa pelanggaran, kebolehdagangan dan/atau kesesuaian untuk tujuan tertentu. Kami tidak menjamin bahawa teknologi itu akan memenuhi keperluan anda, bahawa operasinya tidak akan terganggu atau bebas ralat, atau bahawa sebarang ralat akan dibetulkan.
Sebarang penggunaan skrip dan alatan ini adalah atas risiko anda sendiri. Tiada jaminan bahawa mereka telah melalui ujian menyeluruh dalam persekitaran yang setanding dan kami tidak bertanggungjawab atas sebarang kerosakan atau kehilangan data yang ditanggung dengan penggunaannya.
Anda bertanggungjawab untuk menyemak dan menguji mana-mana skrip yang anda jalankan dengan teliti sebelum digunakan dalam mana-mana persekitaran bukan ujian.
Atas ialah kandungan terperinci Mengautomasikan Muat Turun Log Pencetus Atlas MongoDB Melepasi Had GUI dan CLI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Pythonlistsarepartofthestandardlibrary, sementara

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak
