Docker පරිසරයක් තුළ රන්ධාවක් වගේ බොහෝ කන්ටේනර් පවත්වාගෙන යන ඔබට, සේවාදායකයේ සම්පූර්ණ තත්වය හොඳයි කියලා හඳුනාගන්න ඉතා පහසුයි. නමුත් ඒ තත්ත්වය කුමන කන්ටේනර් නිසා බිඳ වැටුනේ කියලා හඳුනාගන්නට අවශ්ය නම්, cAdvisor සහ Grafana Alloy එකතු කිරීම ඉතා ප්රයෝජනවත්.
cAdvisor යනු Google විසින් නිර්මාණය කළ, Docker කන්ටේනර්වල CPU, memory, network වැනි සම්පත් භාවිතය Linux cgroups සහ namespaces මගින් සෘජුවම කියවෙන එකකි. එමගින් කන්ටේනර් තුළට කිසිදු instrumentation එකක් එක්ක නොකර ඉදිරියට metrics ලබා ගත හැක. මේ ලිපියේ අපි cAdvisor එක Docker කන්ටේනර් ලෙස ධාවනය කරගෙන, Grafana Alloy සමඟ push‑based ආකෘතියට එක් කරන ආකාරය පියවරෙන් පියවර පැහැදිලි කරමු.
cAdvisor ස්ථාපනය
- Docker run විධානයෙන් privileged flag එකත් එක්ක, රූට් ෆයිල් සিস্টමය, Docker socket, sysfs, Docker data directory වැනි read‑only මවුන්ට්ස් එක්කරන්න.
- පෝට් එක hard‑code කිරීමේ අඩුවක් ඇති බැවින්, පළමුව ලභ්ය පෝට් එකක් සොයා ගෙන, එය Alloy වෙත දැනුම් දෙන්න. (සාමාන්යයෙන් 9338 පෝට් භාවිතා වේ.)
cAdvisor එක පළාත් මට්ටමේ localhost හි scrape කර, ඒ metrics Alloy එකට remote_write පයිප්ලයින් එකේ හරහා ප්රධාන Prometheus, Loki, Grafana, Alertmanager වැනි මධ්යස්ථ සේවා වෙත එවයි. මෙය client‑side inbound connection අවශ්ය නොවන නිසා, CGNAT හෝ dynamic IP අඩු පරිසරවලටත් සුදුසු වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ බොහෝ startup, fintech සහ IT සේවා සමාගම් Docker සහ Kubernetes භාවිතා කරයි. cAdvisor + Alloy එකතු කිරීමෙන්:
- ඩිවෙලපර්ලා – කන්ටේනර් එකක් අධික memory හෝ CPU ගනීම් කරන්නේ කවදද කියා පසුබැසීමක් නොමැතිව දැනගත හැක.
- ව්යාපාරිකයින් – අධික සම්පත් භාවිතයෙන් පසුබැසීමක් නොවී, ඉන්ධන වියදම අඩු කර, SLA පාලනය ඉහළ දක්වයි.
- ඉගෙනුම් ආයතන – DevOps ප්රායෝගික පාඨමාලා තුළ, push‑based monitoring ආකෘතියක් ලෙස දර්ශනය කළ හැකි නිසා, නව තාක්ෂණික කුසලතා ගොඩනැගීමට උදව් වේ.
cAdvisor metrics වල අධික cardinality (අනවශ්ය cgroup series) වැලැක්වීමට, PromQL label matcher container_cpu_usage_seconds_total{name!=""} භාවිතා කරන්න. හෝ Alloy හි metric relabeling මගින් අසත්ය series ඉවත් කළ හැක.
උදාහරණයක් ලෙස, පහත alerts සකස් කළ හැක:
- කන්ටේනර් restart loop:
changes(container_start_time_seconds{name!=""}[1h]) > 3 - CPU usage 80% ඉක්මවන කන්ටේනර්:
rate(container_cpu_usage_seconds_total{name!="",name!="POD"}[5m]) * 100 > 80 - Memory usage host memory එකේ % ලෙස:
(container_memory_working_set_bytes{name!=""} / node_memory_MemTotal_bytes) * 100
මෙම alerts මඟින් ප්රථමයෙන්ම ගැටළුව හඳුනාගැනීමේ හැකියාව ලැබේ, එවිටම remedial actions ගත හැක.
Docker කන්ටේනර් මට්ටමේ නිරීක්ෂණය Grafana Alloy සහ cAdvisor සමඟ සකස් කිරීම, ඔබේ infrastucture එකේ පාලනය තරමක් ඉහලට ගෙන යයි. අදම ඔබේ පද්ධතියේ metrics එකතු කර, real‑time alerts සමඟ වැඩි දියුණු DevOps ක්රමවේදයක් ගොඩනැගීමේ පියවර ගැනන්න.