## Pkg 🔹 damv1alertdaemon2025
<b>[ Monitoring Loki Grafana Alert System – Eco Mode Enhanced ]</b> <br />
Ringkasan: <br />
Package ini adalah sistem polling dan pengiriman alert dari Loki ke Discord, dengan dukungan Eco Mode yang mengatur perilaku bundle dan single alert agar lebih efisien pada waktu tertentu. Seluruh komponen sudah divalidasi untuk memastikan presisi logika, kompatibilitas antar modul, dan kesesuaian format output.
<br />
Installation
<pre>
❯ pip install damv1alertdaemon2025
</pre>
<br />
Logic Features → +Eco Mode
<pre>
Mode Format / Template Panjang Maks Isi Log Maks Tujuan
---------------- ---------------------- -------------- --------------- -----------------------------------
Bundle (Normal) Detail + sectioned 2000 chars 800 chars/log Penuh, sesuai header + log konteks
Single (Normal) Per alert, detail 2000 chars 800 chars/log Penuh, hanya 1 alert per pesan
Bundle (Eco) Ringkasan (compact) 2000 chars - Efisien, rekap singkat per alert
Single (Eco) Ringkasan (compact) 2000 chars - Efisien, rekap singkat per alert
</pre>
<br />
Prinsip kerja:
- Non-Eco Mode: Bundle & single bekerja seperti normal.
- Eco Mode: Semua alert (bundle maupun single) otomatis mengikuti format Eco Mode yang lebih ringkas.
<br />
<b>Validasi Struktural & Fungsi Global.</b>
1. `build_section()`
- Sudah direfaktor menjadi fungsi global reusable di `discord_sender.py`.
- Digunakan oleh `send_discord_bundle_messages()` dan `send_discord_bundle_messages_eco()`.
<br />
2. `polling_state_eco`
- Terintegrasi di:
- polling_state_manager.py
- enqueue_alerts()
- process_alerts()
- send_discord_bundle_messages_eco() (menandai label direktori eco-mode di log).
<br />
3. Struktur direktori terpisah
- Normal mode → temp/polling_state/
- Eco mode → temp/polling_state_eco/
<br />
---
<b>Validasi Kompatibilitas & Konsistensi.</b>
<pre>
Komponen Status Catatan Tambahan
------------------------------ ------------------------- ----------------------------------------------------------------------------------
discord_sender.py ✅ Refactor lengkap Fungsi build_section, send_discord_bundle_messages, send_discord_bundle_messages_eco selaras
alert_daemon.py ✅ Kompatibel penuh Sudah adaptif terhadap polling_state_path dan eco_mode
polling_state_manager.py ✅ Refactor modular Mendukung path ganda untuk polling state
enqueue_alerts() ✅ Kompatibel Path polling state sudah berdasarkan eco_mode
process_alerts() ✅ Presisi logika bundle ECO dan NON-ECO mode sudah dipisah logika polling state-nya
Validasi ISO time & timezone ✅ Presisi Semua konversi datetime sudah menggunakan Asia/Jakarta
Pola aman known_safe_patterns ✅ Berfungsi Rotasi dan validasi sudah lengkap
Output log/debug Discord ✅ Konsisten Label ECO dan direktori bundle dicetak di log
discord_delete_filters ✅ Sesuai Aturan cleanup pesan Discord mengikuti filter author, is_bot, channel, usia (created_at_older_than)
config_loader.py ✅ Konsisten ENV_FILE dan alert-config/*.json sudah ter-parse dengan fallback default
cleanup_daemon.py ✅ Selaras Usia pesan Discord diverifikasi dengan CLEANUP_OLD_ENTRIES_SECONDS & created_at_older_than
eco_mode (alert-config) ✅ Valid Interval, start_hour, end_hour, timezone sudah teruji
patterns_messages_discord ✅ Akurat Regex validasi pesan Discord (bundle/single/eco) sudah cocok dengan output
polling_state_ttl_seconds ✅ Efektif TTL file polling_state kedaluwarsa otomatis sesuai konfigurasi
restart_info_handler ✅ Lengkap Informasi restart tersimpan di temp/last_restart_info.json dan terbaca saat startup
timestamp_store ✅ Konsisten Penyimpanan timestamp query di last_timestamps.json sesuai alur polling
</pre>
<br />
---
<b>Konfigurasi .env & Variabel config:</b> <br />
Berikut adalah daftar environment variable dan variabel config yang digunakan pada project_x/main.py dan dapat di-customize oleh pengguna di proyek lain:
<pre>
Komponen Status Catatan Tambahan
------------------------------- ------------------------- ----------------------------------------------------------------------------------
ALERT_CONFIG_PATH str Path file konfigurasi alert (default: ./alert-config/alerts.json)
CHANNEL_ID int ID channel Discord (cleanup) (default: None)
CLEANUP_MODE str Mode cleanup: simulate atau execute (default: simulate)
CLEANUP_OLD_ENTRIES_SECONDS int TTL untuk entri lama di last_timestamps.json, default 86400 detik (24 jam). Digunakan untuk housekeeping log lama, bukan untuk pesan Discord
DEFAULT_BUNDLE_MODE str Mode bundle default untuk pengiriman alert. Nilai: bundle atau split (default: bundle)
DEFAULT_END_OFFSET int Offset akhir default (detik) (default: 3)
DEFAULT_OFFSET dict Offset gabungan {start_offset, end_offset} yang dipakai saat query Loki jika tidak override (default: {'start_offset': 3, 'end_offset': 3})
DEFAULT_OFFSET_ECO int Offset default (detik) khusus eco-mode (default: 3)
DEFAULT_OFFSET_END int Offset akhir default (detik) (default: 3)
DEFAULT_OFFSET_START int Offset awal default (detik) (default: 3)
DEFAULT_POLLING_STATE_DIR str Direktori default untuk menyimpan polling state (default: temp/polling_state)
DEFAULT_POLLING_STATE_ECO_DIR str Direktori default untuk polling state saat eco-mode aktif (default: temp/polling_state_eco)
DEFAULT_START_OFFSET int Offset awal default (detik) (default: 3)
DELAY_BUFFER_SECONDS int Buffer delay (detik) sebelum mengambil data log dari Loki (default: 2)
DISCORD_LOG_CHAR_LIMIT int Batas karakter per log yang di-embed di pesan Discord (default: 800)
DISCORD_MAX_LENGTH int Batas total karakter untuk satu payload pesan Discord (default: 2000)
DISCORD_TOKEN str Token bot Discord (mode cleanup) (default: None)
DISCORD_WEBHOOK_URL str Webhook Discord untuk alert (default: None)
ECO_CONFIG dict Konfigurasi eco-mode (enabled, jam start/end, polling interval, timezone, include_single_mode). Default: {'enabled': True, 'start_hour': 14, 'end_hour': 16, 'polling_interval': 60, 'timezone': 'Asia/Jakarta', 'include_single_mode': True}
ECO_POLL_INTERVAL int Interval polling eco-mode (detik) (default: 60)
GRAFANA_BASE_URL str Base URL Grafana (default: None)
GRAFANA_DATASOURCE_UID str UID datasource Grafana (default: None)
KNOWN_SAFE_PATTERNS_META_PATH str Path file metadata rotasi pola aman (default: ./temp/known_safe_patterns_meta.json)
KNOWN_SAFE_PATTERNS_PATH str Path file JSON berisi pola aman yang sudah disimpan (default: ./temp/known_safe_patterns.json)
KNOWN_SAFE_PATTERNS_ROTATE_HOURS int Jam rotasi pola aman (default: 24)
LIMIT int Batas jumlah log per query (default: 100)
LOKI_URL str URL endpoint Loki (default: None)
POLL_INTERVAL int Interval polling (detik) (default: 30)
POLLING_STATE_TTL_SECONDS int TTL untuk file polling state di temp/polling_state/, default 3600 detik (1 jam). Setelah lewat TTL, file polling state akan dihapus otomatis
PROCESSED_IDS_WINDOW_SECONDS int Window waktu (detik) untuk menyaring ID log yang sudah diproses agar tidak duplikat (default: 10)
RESTART_INFO_PATH str Path file untuk menyimpan informasi restart terakhir (default: ./temp/last_restart_info.json)
SCAN_LIMIT int Batas scan pesan Discord (cleanup) (default: 50)
THREAD_MONITOR_INTERVAL int Interval monitor thread (detik) (default: 60)
TIMESTAMP_STORE str Nama file penyimpanan timestamp hasil polling (default: last_timestamps.json)
</pre>
<br />
<b>ECO MODE CONFIGURATION (eco_mode)</b> <br />
Fitur ECO Mode digunakan untuk mengurangi frekuensi polling dan notifikasi selama periode waktu tertentu,
misalnya di luar jam kerja, dengan tetap mengumpulkan data untuk diproses nanti.
<pre>
Struktur Konfigurasi:
"eco_mode": {
"enabled": true,
"start_hour": 23,
"end_hour": 4,
"polling_interval": 60,
"timezone": "Asia/Jakarta",
"include_single_mode": true
}
</pre>
Penjelasan Parameter:
- enabled: (boolean) Aktifkan atau nonaktifkan ECO Mode.
- start_hour: (integer) Jam mulai ECO Mode (0-23, dalam zona waktu yang ditentukan).
- end_hour: (integer) Jam berakhir ECO Mode (0-23).
Jika end_hour < start_hour (contoh: 23 → 4), rentang melewati tengah malam dan tetap didukung.
- polling_interval: (detik) Interval polling saat ECO Mode aktif. Nilai harus lebih besar dari POLL_INTERVAL normal.
- timezone: Zona waktu acuan. Harus valid sesuai database IANA (contoh: "Asia/Jakarta").
- include_single_mode: (boolean) Jika true, alert dengan mode "single" tetap diproses meskipun dalam ECO Mode.
<br />
Catatan:
- Semua nilai dapat di-override melalui ENV atau file `.env`.
- `ECO_POLL_INTERVAL` memiliki prioritas: ENV > `ECO_CONFIG` > default.
- ECO Mode dievaluasi setiap siklus polling berdasarkan waktu sistem saat ini.
- Konfigurasi bersifat harian (tidak bisa dijadwalkan per tanggal spesifik).
- Saat ECO Mode aktif, bundle alert dikirim dalam format ringkasan (eco) dan polling berjalan lebih lambat.
---
<b>Struktur File Konfigurasi: alert-config/*.json:</b> <br />
File konfigurasi yang berisi aturan pemantauan log Loki, pengiriman alert ke Discord, pola validasi pesan, dan aturan cleanup pesan.
<pre>
Komponen Status Catatan Tambahan
------------------------------- ------------ ------------------------------------------------------------------------
default_offset dict Offset default untuk query ke Loki.
- start_offset (int): offset awal (detik) (default: 3)
- end_offset (int): offset akhir (detik) (default: 3)
default_bundle_mode str Mode bundle default untuk alert.
- "bundle": alert digabungkan
- "single": alert dikirim satu per satu
(default: bundle)
eco_mode dict Konfigurasi eco-mode polling.
- enabled (bool): aktif/tidak eco-mode
- start_hour (int): jam mulai eco (0-23)
- end_hour (int): jam selesai eco (0-23)
- polling_interval (int): interval polling (detik)
- timezone (str): zona waktu (contoh: Asia/Jakarta)
- include_single_mode (bool): apakah alert mode "single" ikut di eco-mode
alerts list Daftar alert yang akan dipantau.
├─ title str Judul alert (deskripsi singkat).
├─ category str Kategori alert (misal: Database, JavaException, Monitoring).
├─ query str Query Loki untuk mendeteksi alert.
├─ start_offset int (opsional) offset awal khusus alert ini (override default_offset.start).
├─ end_offset int (opsional) offset akhir khusus alert ini (override default_offset.end).
├─ mode str (opsional) mode alert: "bundle" atau "single".
├─ include_bundle_header bool (opsional) apakah header bundle disertakan dalam pesan Discord.
├─ polling_delay int (opsional) delay tambahan polling (detik).
└─ mentions list[str] (opsional) daftar mention Discord, contoh: ["@here", "<@1234567890>"]
patterns_messages_discord dict Definisi pola regex untuk mengenali pesan Discord yang dihasilkan alert.
├─ KNOWN_PATTERNS_CONTENT list[dict] Pola regex untuk isi pesan alert Discord (mode bundle/single).
├─ name str Nama pola (deskripsi pola regex).
└─ regex str Regex pattern untuk validasi isi pesan.
└─ KNOWN_PATTERNS_EMBED list[dict] Pola regex untuk pesan dalam bentuk embed.
├─ name str Nama pola (deskripsi pola regex).
└─ regex str Regex pattern untuk validasi embed alert.
discord_delete_filters dict Filter untuk proses cleanup pesan di Discord.
├─ author str Nama author pesan (misal: "damv1 alert#0000").
├─ is_bot bool Apakah pesan berasal dari bot (default: true).
├─ channel_name str Nama channel Discord target (contoh: "#alarm-alert").
├─ guild_name str Nama guild/server Discord.
├─ status_content str Status konten yang dikenali (misal: "recognized").
├─ pattern_source str Sumber pola untuk validasi pesan (misal: "KNOWN_PATTERNS_CONTENT").
└─ created_at_older_than str Batas usia pesan yang akan dihapus. Format waktu:
- "20m" = 20 menit
- "1h" = 1 jam
- "1d" = 1 hari
</pre>
Raw data
{
"_id": null,
"home_page": null,
"name": "damv1alertdaemon2025",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.0",
"maintainer_email": null,
"keywords": "alertdaemon2025, discord_cleanup_daemon, discord_sender, polling-logs, grafana_url_generator",
"author": "dhonyabumuhammad (Bekasi)",
"author_email": "<baba-rtw24133@tutamail.com>",
"download_url": null,
"platform": null,
"description": "## Pkg \ud83d\udd39 damv1alertdaemon2025\n<b>[ Monitoring Loki Grafana Alert System \u2013 Eco Mode Enhanced ]</b> <br />\n\nRingkasan: <br />\nPackage ini adalah sistem polling dan pengiriman alert dari Loki ke Discord, dengan dukungan Eco Mode yang mengatur perilaku bundle dan single alert agar lebih efisien pada waktu tertentu. Seluruh komponen sudah divalidasi untuk memastikan presisi logika, kompatibilitas antar modul, dan kesesuaian format output.\n\n<br />\nInstallation\n<pre>\n\u276f pip install damv1alertdaemon2025\n</pre>\n\n<br />\nLogic Features \u2192 +Eco Mode\n<pre>\n Mode Format / Template Panjang Maks Isi Log Maks Tujuan \n ---------------- ---------------------- -------------- --------------- -----------------------------------\n Bundle (Normal) Detail + sectioned 2000 chars 800 chars/log Penuh, sesuai header + log konteks \n Single (Normal) Per alert, detail 2000 chars 800 chars/log Penuh, hanya 1 alert per pesan \n Bundle (Eco) Ringkasan (compact) 2000 chars - Efisien, rekap singkat per alert \n Single (Eco) Ringkasan (compact) 2000 chars - Efisien, rekap singkat per alert \n</pre>\n\n<br />\nPrinsip kerja:\n\n- Non-Eco Mode: Bundle & single bekerja seperti normal.\n- Eco Mode: Semua alert (bundle maupun single) otomatis mengikuti format Eco Mode yang lebih ringkas.\n\n<br />\n\n<b>Validasi Struktural & Fungsi Global.</b>\n\n1. `build_section()`\n - Sudah direfaktor menjadi fungsi global reusable di `discord_sender.py`.\n - Digunakan oleh `send_discord_bundle_messages()` dan `send_discord_bundle_messages_eco()`.\n\n <br />\n\n2. `polling_state_eco`\n - Terintegrasi di:\n - polling_state_manager.py\n - enqueue_alerts()\n - process_alerts()\n - send_discord_bundle_messages_eco() (menandai label direktori eco-mode di log).\n\n <br />\n\n3. Struktur direktori terpisah\n - Normal mode \u2192 temp/polling_state/\n - Eco mode \u2192 temp/polling_state_eco/\n\n<br />\n\n---\n\n<b>Validasi Kompatibilitas & Konsistensi.</b>\n<pre>\nKomponen Status Catatan Tambahan \n------------------------------ ------------------------- ----------------------------------------------------------------------------------\ndiscord_sender.py \u2705 Refactor lengkap Fungsi build_section, send_discord_bundle_messages, send_discord_bundle_messages_eco selaras\nalert_daemon.py \u2705 Kompatibel penuh Sudah adaptif terhadap polling_state_path dan eco_mode\npolling_state_manager.py \u2705 Refactor modular Mendukung path ganda untuk polling state\nenqueue_alerts() \u2705 Kompatibel Path polling state sudah berdasarkan eco_mode\nprocess_alerts() \u2705 Presisi logika bundle ECO dan NON-ECO mode sudah dipisah logika polling state-nya\nValidasi ISO time & timezone \u2705 Presisi Semua konversi datetime sudah menggunakan Asia/Jakarta\nPola aman known_safe_patterns \u2705 Berfungsi Rotasi dan validasi sudah lengkap\nOutput log/debug Discord \u2705 Konsisten Label ECO dan direktori bundle dicetak di log\ndiscord_delete_filters \u2705 Sesuai Aturan cleanup pesan Discord mengikuti filter author, is_bot, channel, usia (created_at_older_than)\nconfig_loader.py \u2705 Konsisten ENV_FILE dan alert-config/*.json sudah ter-parse dengan fallback default\ncleanup_daemon.py \u2705 Selaras Usia pesan Discord diverifikasi dengan CLEANUP_OLD_ENTRIES_SECONDS & created_at_older_than\neco_mode (alert-config) \u2705 Valid Interval, start_hour, end_hour, timezone sudah teruji\npatterns_messages_discord \u2705 Akurat Regex validasi pesan Discord (bundle/single/eco) sudah cocok dengan output\npolling_state_ttl_seconds \u2705 Efektif TTL file polling_state kedaluwarsa otomatis sesuai konfigurasi\nrestart_info_handler \u2705 Lengkap Informasi restart tersimpan di temp/last_restart_info.json dan terbaca saat startup\ntimestamp_store \u2705 Konsisten Penyimpanan timestamp query di last_timestamps.json sesuai alur polling \n</pre>\n\n<br />\n\n---\n\n<b>Konfigurasi .env & Variabel config:</b> <br />\nBerikut adalah daftar environment variable dan variabel config yang digunakan pada project_x/main.py dan dapat di-customize oleh pengguna di proyek lain:\n<pre>\nKomponen Status Catatan Tambahan \n------------------------------- ------------------------- ----------------------------------------------------------------------------------\nALERT_CONFIG_PATH str Path file konfigurasi alert (default: ./alert-config/alerts.json)\nCHANNEL_ID int ID channel Discord (cleanup) (default: None)\nCLEANUP_MODE str Mode cleanup: simulate atau execute (default: simulate)\nCLEANUP_OLD_ENTRIES_SECONDS int TTL untuk entri lama di last_timestamps.json, default 86400 detik (24 jam). Digunakan untuk housekeeping log lama, bukan untuk pesan Discord\nDEFAULT_BUNDLE_MODE str Mode bundle default untuk pengiriman alert. Nilai: bundle atau split (default: bundle)\nDEFAULT_END_OFFSET int Offset akhir default (detik) (default: 3)\nDEFAULT_OFFSET dict Offset gabungan {start_offset, end_offset} yang dipakai saat query Loki jika tidak override (default: {'start_offset': 3, 'end_offset': 3})\nDEFAULT_OFFSET_ECO int Offset default (detik) khusus eco-mode (default: 3)\nDEFAULT_OFFSET_END int Offset akhir default (detik) (default: 3)\nDEFAULT_OFFSET_START int Offset awal default (detik) (default: 3)\nDEFAULT_POLLING_STATE_DIR str Direktori default untuk menyimpan polling state (default: temp/polling_state)\nDEFAULT_POLLING_STATE_ECO_DIR str Direktori default untuk polling state saat eco-mode aktif (default: temp/polling_state_eco)\nDEFAULT_START_OFFSET int Offset awal default (detik) (default: 3)\nDELAY_BUFFER_SECONDS int Buffer delay (detik) sebelum mengambil data log dari Loki (default: 2)\nDISCORD_LOG_CHAR_LIMIT int Batas karakter per log yang di-embed di pesan Discord (default: 800)\nDISCORD_MAX_LENGTH int Batas total karakter untuk satu payload pesan Discord (default: 2000)\nDISCORD_TOKEN str Token bot Discord (mode cleanup) (default: None)\nDISCORD_WEBHOOK_URL str Webhook Discord untuk alert (default: None)\nECO_CONFIG dict Konfigurasi eco-mode (enabled, jam start/end, polling interval, timezone, include_single_mode). Default: {'enabled': True, 'start_hour': 14, 'end_hour': 16, 'polling_interval': 60, 'timezone': 'Asia/Jakarta', 'include_single_mode': True}\nECO_POLL_INTERVAL int Interval polling eco-mode (detik) (default: 60)\nGRAFANA_BASE_URL str Base URL Grafana (default: None)\nGRAFANA_DATASOURCE_UID str UID datasource Grafana (default: None)\nKNOWN_SAFE_PATTERNS_META_PATH str Path file metadata rotasi pola aman (default: ./temp/known_safe_patterns_meta.json)\nKNOWN_SAFE_PATTERNS_PATH str Path file JSON berisi pola aman yang sudah disimpan (default: ./temp/known_safe_patterns.json)\nKNOWN_SAFE_PATTERNS_ROTATE_HOURS int Jam rotasi pola aman (default: 24)\nLIMIT int Batas jumlah log per query (default: 100)\nLOKI_URL str URL endpoint Loki (default: None)\nPOLL_INTERVAL int Interval polling (detik) (default: 30)\nPOLLING_STATE_TTL_SECONDS int TTL untuk file polling state di temp/polling_state/, default 3600 detik (1 jam). Setelah lewat TTL, file polling state akan dihapus otomatis\nPROCESSED_IDS_WINDOW_SECONDS int Window waktu (detik) untuk menyaring ID log yang sudah diproses agar tidak duplikat (default: 10)\nRESTART_INFO_PATH str Path file untuk menyimpan informasi restart terakhir (default: ./temp/last_restart_info.json)\nSCAN_LIMIT int Batas scan pesan Discord (cleanup) (default: 50)\nTHREAD_MONITOR_INTERVAL int Interval monitor thread (detik) (default: 60)\nTIMESTAMP_STORE str Nama file penyimpanan timestamp hasil polling (default: last_timestamps.json)\n\n</pre>\n\n<br />\n\n<b>ECO MODE CONFIGURATION (eco_mode)</b> <br />\n\nFitur ECO Mode digunakan untuk mengurangi frekuensi polling dan notifikasi selama periode waktu tertentu, \nmisalnya di luar jam kerja, dengan tetap mengumpulkan data untuk diproses nanti.\n\n<pre>\nStruktur Konfigurasi:\n \"eco_mode\": {\n \"enabled\": true,\n \"start_hour\": 23,\n \"end_hour\": 4,\n \"polling_interval\": 60,\n \"timezone\": \"Asia/Jakarta\",\n \"include_single_mode\": true\n }\n</pre>\n\nPenjelasan Parameter:\n- enabled: (boolean) Aktifkan atau nonaktifkan ECO Mode.\n- start_hour: (integer) Jam mulai ECO Mode (0-23, dalam zona waktu yang ditentukan).\n- end_hour: (integer) Jam berakhir ECO Mode (0-23). \n Jika end_hour < start_hour (contoh: 23 \u2192 4), rentang melewati tengah malam dan tetap didukung.\n- polling_interval: (detik) Interval polling saat ECO Mode aktif. Nilai harus lebih besar dari POLL_INTERVAL normal.\n- timezone: Zona waktu acuan. Harus valid sesuai database IANA (contoh: \"Asia/Jakarta\").\n- include_single_mode: (boolean) Jika true, alert dengan mode \"single\" tetap diproses meskipun dalam ECO Mode.\n\n<br />\n\nCatatan:\n- Semua nilai dapat di-override melalui ENV atau file `.env`.\n- `ECO_POLL_INTERVAL` memiliki prioritas: ENV > `ECO_CONFIG` > default.\n- ECO Mode dievaluasi setiap siklus polling berdasarkan waktu sistem saat ini.\n- Konfigurasi bersifat harian (tidak bisa dijadwalkan per tanggal spesifik).\n- Saat ECO Mode aktif, bundle alert dikirim dalam format ringkasan (eco) dan polling berjalan lebih lambat.\n\n \n\n---\n\n<b>Struktur File Konfigurasi: alert-config/*.json:</b> <br />\nFile konfigurasi yang berisi aturan pemantauan log Loki, pengiriman alert ke Discord, pola validasi pesan, dan aturan cleanup pesan.\n<pre>\n\nKomponen Status Catatan Tambahan\n------------------------------- ------------ ------------------------------------------------------------------------\ndefault_offset dict Offset default untuk query ke Loki.\n - start_offset (int): offset awal (detik) (default: 3)\n - end_offset (int): offset akhir (detik) (default: 3)\n\ndefault_bundle_mode str Mode bundle default untuk alert.\n - \"bundle\": alert digabungkan\n - \"single\": alert dikirim satu per satu\n (default: bundle)\n\neco_mode dict Konfigurasi eco-mode polling.\n - enabled (bool): aktif/tidak eco-mode\n - start_hour (int): jam mulai eco (0-23)\n - end_hour (int): jam selesai eco (0-23)\n - polling_interval (int): interval polling (detik)\n - timezone (str): zona waktu (contoh: Asia/Jakarta)\n - include_single_mode (bool): apakah alert mode \"single\" ikut di eco-mode\n\nalerts list Daftar alert yang akan dipantau.\n \u251c\u2500 title str Judul alert (deskripsi singkat).\n \u251c\u2500 category str Kategori alert (misal: Database, JavaException, Monitoring).\n \u251c\u2500 query str Query Loki untuk mendeteksi alert.\n \u251c\u2500 start_offset int (opsional) offset awal khusus alert ini (override default_offset.start).\n \u251c\u2500 end_offset int (opsional) offset akhir khusus alert ini (override default_offset.end).\n \u251c\u2500 mode str (opsional) mode alert: \"bundle\" atau \"single\".\n \u251c\u2500 include_bundle_header bool (opsional) apakah header bundle disertakan dalam pesan Discord.\n \u251c\u2500 polling_delay int (opsional) delay tambahan polling (detik).\n \u2514\u2500 mentions list[str] (opsional) daftar mention Discord, contoh: [\"@here\", \"<@1234567890>\"]\n\npatterns_messages_discord dict Definisi pola regex untuk mengenali pesan Discord yang dihasilkan alert.\n \u251c\u2500 KNOWN_PATTERNS_CONTENT list[dict] Pola regex untuk isi pesan alert Discord (mode bundle/single).\n \u251c\u2500 name str Nama pola (deskripsi pola regex).\n \u2514\u2500 regex str Regex pattern untuk validasi isi pesan.\n \u2514\u2500 KNOWN_PATTERNS_EMBED list[dict] Pola regex untuk pesan dalam bentuk embed.\n \u251c\u2500 name str Nama pola (deskripsi pola regex).\n \u2514\u2500 regex str Regex pattern untuk validasi embed alert.\n\ndiscord_delete_filters dict Filter untuk proses cleanup pesan di Discord.\n \u251c\u2500 author str Nama author pesan (misal: \"damv1 alert#0000\").\n \u251c\u2500 is_bot bool Apakah pesan berasal dari bot (default: true).\n \u251c\u2500 channel_name str Nama channel Discord target (contoh: \"#alarm-alert\").\n \u251c\u2500 guild_name str Nama guild/server Discord.\n \u251c\u2500 status_content str Status konten yang dikenali (misal: \"recognized\").\n \u251c\u2500 pattern_source str Sumber pola untuk validasi pesan (misal: \"KNOWN_PATTERNS_CONTENT\").\n \u2514\u2500 created_at_older_than str Batas usia pesan yang akan dihapus. Format waktu:\n - \"20m\" = 20 menit\n - \"1h\" = 1 jam\n - \"1d\" = 1 hari\n</pre>\n\n \n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "development damv1alertdaemon2025 package",
"version": "1.0.0",
"project_urls": null,
"split_keywords": [
"alertdaemon2025",
" discord_cleanup_daemon",
" discord_sender",
" polling-logs",
" grafana_url_generator"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b5fe6b74bede167930f8e185bdfb05088d084ff2a41bb243d788abf438924888",
"md5": "53fbfdd6c28130ec1fed35a1b65e8241",
"sha256": "f3ffd0916e9508b17ae0b7a8a3a25c48d696126380e6f6cd0ddf2c579cad845f"
},
"downloads": -1,
"filename": "damv1alertdaemon2025-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "53fbfdd6c28130ec1fed35a1b65e8241",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.0",
"size": 27757,
"upload_time": "2025-08-21T03:31:36",
"upload_time_iso_8601": "2025-08-21T03:31:36.426761Z",
"url": "https://files.pythonhosted.org/packages/b5/fe/6b74bede167930f8e185bdfb05088d084ff2a41bb243d788abf438924888/damv1alertdaemon2025-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-21 03:31:36",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "damv1alertdaemon2025"
}