ග්රෆානා ඩෑෂ්බෝඩ්: දත්ත දෘශ්යකරණය (Grafana Dashboard: Data Visualization)

මචංලා, කොහොමද? ටෙක් ලෝකේ මේ දවස් වල හොඳටම කතා වෙන මාතෘකාවක් තමයි Data Visualization කියන්නේ. ඇත්තටම, අපි Software Engineering කරනකොට, Data කියන්නේ මහා විශාල දිය සාගරයක් වගේ. Server Metrics, Application Performance, Database Queries, User Behavior – මේ හැම එකෙන්ම Data ගොඩක් එනවා. මේ හැම Data එකක්ම හොඳට Analyze කරලා අපේ System එකේ තත්ත්වය තේරුම් ගන්න පුළුවන් නම්, වැරදි අඩු කරගෙන, Performance වැඩි කරගෙන, හොඳ Product එකක් හදන්න පුළුවන් නේද?
ඒත් ඉතින්, මේ Data ටික නිකං Numbers ගොඩක් විදියට බැලුවොත් තේරුම් ගන්න අමාරුයි. අන්න ඒකට තමයි Visualization කියන Concept එක එන්නේ. Data ටික Graph එකකින්, Chart එකකින්, නැත්නම් වෙනත් Visual Form එකකින් බැලුවම, අපිට එක බැල්මෙන් තත්ත්වය තේරුම් ගන්න පුළුවන් වෙනවා.
අද අපි කතා කරන්නේ මේ වැඩේට තියෙන පට්ටම Tool එකක් ගැන – ඒ තමයි Grafana. Grafana කියන්නේ Open Source Tool එකක්. මේකෙන් පුළුවන් අපේ Data Sources (Prometheus, InfluxDB, MySQL, PostgreSQL, ElasticSearch වගේ ඕනෑම එකකින්) එන Metrics පට්ට විදියට Visualize කරන්න. Dashboard හදලා, Alerts දාලා, Data එක හොඳට Monitor කරන්නත් මේකෙන් පුලුවන්. Software Engineers, DevOps Engineers, System Admins වගේ හැමෝටම මේක හරිම වැදගත්.
මේ Article එකෙන් අපි බලමු Grafana කියන්නේ මොකක්ද, ඇයි මේක අපිට වැදගත් වෙන්නේ, ඒ වගේම පියවරෙන් පියවර Grafana Dashboard එකක් හදන්නේ කොහොමද කියලා. එහෙනම්, සූදානම්ද?
මොකක්ද මේ Grafana කියන්නේ?
සරලවම කිව්වොත්, Grafana කියන්නේ Data Visualization and Monitoring Tool එකක්. මේකෙන් ප්රධානම වෙන්නේ විවිධ Data Sources වලින් එන Data එකතු කරලා, ඒවට පට්ටම Dashboards හදලා, අපිට ඕන විදියට Visualize කරලා පෙන්නන එක. මේක Open Source නිසා, කාට වුණත් Free Install කරලා පාවිච්චි කරන්න පුළුවන්. ඒ වගේම, මේකේ ලොකු Community එකක් තියෙනවා, ඒ නිසා මොකක් හරි ප්රශ්නයක් ආවොත් උදව් ගන්නත් ලේසියි.
Grafana වල විශේෂත්වය තමයි මේකේ Flexibility එක. ඕනෑම Data Source එකකට වගේ Connect වෙන්න පුළුවන්. Prometheus, InfluxDB වගේ Time Series Databases වල ඉඳන්, SQL Databases (MySQL, PostgreSQL), Cloud Monitoring Services (AWS CloudWatch, Google Cloud Monitoring), Log Aggregators (Elasticsearch, Loki) වගේ ගොඩක් දේවල් මේකට සම්බන්ධ කරන්න පුළුවන්. ඒ Data වලින් Metrics අරගෙන ඒවා Graph, Table, Gauge, Singlestat වගේ විවිධ ආකාරයෙන් Display කරන්න පුළුවන්.
හිතන්න, ඔයාගේ Web Application එකක් තියෙනවා කියලා. ඒක කොච්චර වේගයෙන් Response කරනවද, Server එකේ CPU Usage එක කොච්චරද, Database එකට එකවර එන Queries ගණන කොච්චරද වගේ දේවල් Grafana Dashboard එකකින් එක තැනකින් බලන්න පුළුවන්. එතකොට, මොකක් හරි ප්රශ්නයක් ආවොත්, එක බැල්මෙන් ඒක identify කරගෙන විසඳගන්න පුළුවන්.
Grafana අපිට වැදගත් ඇයි?
Grafana කියන්නේ නිකම්ම නිකම් Graph පෙන්නන Tool එකක් නෙමෙයි. මේක Software Engineering ක්ෂේත්රයේ ඉන්න අපිට වැදගත් වෙන්න හේතු ගොඩක් තියෙනවා:
1. Proactive Monitoring සහ Alerting
- අපේ System එකේ Metrics නිරන්තරයෙන් නිරීක්ෂණය කරන්න Grafana උදව් වෙනවා. ඒ නිසා, යම්කිසි ගැටලුවක් (උදා: CPU Usage එක 90% ඉක්මවීම) ඇතිවෙන්න කලින්ම හඳුනාගෙන ඒකට පියවර ගන්න පුළුවන්.
- Grafana වලට Alerting Capabilities තියෙනවා. අපිට ඕන Threshold එකක් පැන්නොත් Email, Slack, PagerDuty වගේ විවිධ Channels හරහා Alerts යවන්න පුළුවන්. මේකෙන් අපි නිදාගෙන ඉන්නකොට වුණත් System එකේ ප්රශ්නයක් ආවොත් දැනගන්න පුළුවන්.
2. Performance Insight සහ Optimization
- Dashboards දිහා බලලා System එකේ Performance එක කොහොමද, Bottlenecks තියෙනවද කියලා තේරුම් ගන්න පුළුවන්.
- උදාහරණයක් විදියට, Database Query එකක් හරි Slow නම්, Grafana Dashboard එකෙන් ඒක පැහැදිලිව පේනවා. එතකොට අපිට ඒ Query එක Optimize කරන්න පුළුවන්.
- Deployment එකක් කරාට පස්සේ System Performance එක කොහොමද කියලා කලින් Performance එකත් එක්ක Compare කරන්නත් පුළුවන්.
3. Troubleshooting වේගවත් කිරීම
- ප්රශ්නයක් ආවම, System එකේ හැමතැනම දුව දුව බලන්න ඕන නෑ. Grafana Dashboard එකක් තිබුණොත්, එක තැනකින් Data ටික බලාගෙන root cause එක ඉක්මනින් හොයාගන්න පුළුවන්.
- ලොකු Distributed System එකකදී මේක හරිම වැදගත්.
4. Business Intelligence සහ Reporting
- Developers ලට විතරක් නෙමෙයි, Business Analysts, Product Managers ලටත් මේක වැදගත්. Customer Sign-ups, Daily Active Users වගේ Business Metrics පවා Visualize කරන්න පුළුවන්.
- මේකෙන් තීරණ ගන්න පහසු වෙනවා.
5. Collaboration සහ Transparency
- Dashboards හදලා Team එකේ හැමෝටම Share කරන්න පුළුවන්. System එකේ තත්ත්වය ගැන හැමෝටම එකම අවබෝධයක් තියෙනවා.
- Technical නොවන අයට පවා තේරෙන විදියට Dashboards හදන්න පුළුවන් නිසා, Company එකේ Transparency එකත් වැඩි වෙනවා.
Grafana Dashboard එකක් හදමු!
හරි, දැන් අපි Grafana ගැන ටිකක් Theory දැනගත්තා. දැන් අපි බලමු ඇත්තටම Grafana Dashboard එකක් පියවරෙන් පියවර හදන්නේ කොහොමද කියලා. මේකෙන් ඔයාට හොඳ අවබෝධයක් ලැබෙයි.
මේ Practical Exercise එකට, අපි Grafana වල Build-in එකට එන Grafana TestData DB කියන Data Source එක පාවිච්චි කරමු. එතකොට අපිට වෙනම Data Source එකක් Setup කරන්න ඕන වෙන්නේ නෑ.
පියවර 1: Grafana Log In වෙමු
ඔයාගේ Grafana Instance එකට Log In වෙන්න. සාමාන්යයෙන් default username/password එක admin
/admin
තමයි. Browser එකේ http://localhost:3000
වගේ URL එකකට ගියාම Grafana Dashboard එක එයි.
(ඔයාට Grafana Install කරගන්න ඕන නම්, Docker භාවිතයෙන් සරලවම docker run -d -p 3000:3000 --name grafana grafana/grafana
කියලා Command එක Run කරන්න පුළුවන්.)
පියවර 2: Data Source එකක් එකතු කිරීම
අපි Grafana TestData DB එක භාවිතා කරන නිසා, මේ පියවර අමතර වශයෙන් කරන්න ඕනේ නැහැ. නමුත් අනාගතය සඳහා වෙනත් Data Source එකක් (උදා: Prometheus, MySQL) එකතු කරන විදිය මෙන්න.
- Grafana Dashboard එකේ වම් පැත්තේ තියෙන Navigation Bar එකේ "Configuration" (Gear icon) මත Click කරන්න.
- දැන් "Data Sources" තෝරන්න.
- උඩින්ම තියෙන "Add data source" කියන Button එක Click කරන්න.
- දැන් එන List එකෙන් ඔයාට ඕන Data Source එක තෝරන්න. අපි මේ Example එකට "Grafana TestData DB" කියන එක තෝරමු. (සාමාන්යයෙන් Prometheus, MySQL වගේ ඒවානම් ඒවට අදාළ Connection Details - Host, Port, Database, Username, Password වගේ දේවල් - දෙන්න ඕනේ.)
- "Save & Test" Button එක Click කරලා Data Source එක හරියටම Connect වුනාද කියලා බලන්න. "Data source is working" වගේ Message එකක් එයි.
මේ Grafana TestData DB කියන්නේ Grafana වලම තියෙන Dummy Data Source එකක්, අපිට Test Dashboards හදන්න මේක පට්ට. දැන් අපි Dashboard එකක් හදමු.
පියවර 3: අලුත් Dashboard එකක් හදමු
- වම් පැත්තේ Navigation Bar එකේ "+" (Create icon) මත Click කරන්න.
- දැන් "New Dashboard" තෝරන්න.
- ඔයාට හිස් Dashboard එකක් පෙනෙයි. දැන් "Add new panel" කියන Option එක Click කරන්න. (නැත්නම් "Add Panel" Button එක Click කරන්න.)
පියවර 4: Panel එකක් එකතු කර Query එකක් ලියමු
Panel එකක් කියන්නේ Dashboard එකේ තියෙන එක Graph එකක් හරි Chart එකක් හරි. මේක තමයි Visualization එකේ මූලිකම කොටස.
- Panel එකක් Add කරාම, ඔයාට "Query" Tab එක පෙනෙයි. මෙතන තමයි අපි Data Source එකෙන් Data ගන්න Query එක ලියන්නේ.
- "Data Source" Dropdown එකෙන් අපි කලින් Add කරපු "Grafana TestData DB" එක තෝරන්න.
- දැන් "Query" Editor එකේදී, "Scenario" කියන Dropdown එකෙන් "CSV Metric Values" තෝරන්න.
- "Series Count" එක "2" වගේ දෙයකට සෙට් කරන්න. (මේකෙන් Dummy Data Series දෙකක් generate වෙනවා.)
- දැන් ඔයාට යටින් Graph එකක් Generate වෙනවා පෙනෙයි. ඒකෙන් පෙන්නන්නේ TestData DB එකෙන් එන Dummy Metrics.
Query Example: (Prometheus වගේ එකක් නම්)
node_cpu_seconds_total{mode="idle"}
මේ Query එකෙන් Prometheus Data Source එකක node_cpu_seconds_total
කියන Metric එකේ idle
Mode එකේ තියෙන Data පෙන්නනවා.
පියවර 5: Visualization Type එක තෝරමු
Panel එකේ "Visualization" Tab එකට යන්න. මෙතන ඔයාට ඔයාගේ Data එක පෙන්නන්න පුළුවන් විවිධ Visualizations තෝරන්න පුළුවන්:
- Graph: Time series Data පෙන්නන්න හොඳම එක. අපිට දැන් පේන්නේ මේක.
- Singlestat / Stat: එක Metric එකක වත්මන් අගය ලොකුවට පෙන්නන්න. (උදා: Total Users)
- Gauge: Metric එකක අගය Gauge එකකින් පෙන්නන්න. (උදා: Disk Usage Percentage)
- Table: Data ටික Table එකක විදියට පෙන්නන්න.
- Bar Gauge: Bar Chart එකක විදියට Metrics ගොඩක් පෙන්නන්න.
- වෙනත්: Heatmap, Worldmap, Text, Trend, News වගේ තව ගොඩක් දේවල් තියෙනවා.
අපි "Graph" එක තෝරමු. ඒක තමයි බොහොමයක් Monitoring Dashboards වලට ගැලපෙන්නේ.
පියවර 6: Panel Options හදමු
Panel එකේ දකුණු පැත්තේ "Panel Options" කියන Section එක තියෙනවා. මෙතනින් Panel එකේ Display එක customise කරන්න පුළුවන්.
- Title: Panel එකට නමක් දෙන්න. උදා: "Test Metric Graph"
- Description: Panel එක මොකක්ද කියන එක ගැන පොඩි විස්තරයක් දෙන්න.
- Unit: Data එකේ Unit එක තෝරන්න. (උදා: bytes, milliseconds, percentage, requests/sec)
- Legend: Graph එකේ Series වල නම් පෙන්නන විදිය හදන්න.
- Thresholds: යම්කිසි අගයක් පැන්නම පාට වෙනස් වෙන්න වගේ දේවල් හදන්න පුලුවන්. (Green, Yellow, Red වගේ).
මේ Options හදලා ඔයාට ඕන විදියට Graph එක customise කරන්න පුළුවන්.
පියවර 7: Dashboard එක Save කරමු
- හැමදේම හදලා ඉවර වුණාට පස්සේ, Panel එකේ උඩින් තියෙන "Apply" Button එක Click කරන්න.
- දැන් ඔයාගේ අලුත් Panel එක Dashboard එකට එකතු වෙලා පෙනෙයි.
- Dashboard එක Save කරන්න, උඩින්ම තියෙන Save Icon (Floppy Disk Icon) එක Click කරන්න.
- Dashboard එකට නමක් දෙන්න. උදා: "My First Grafana Dashboard"
- Folder එකක් තෝරන්න (optional).
- "Save" Button එක Click කරන්න.
එච්චරයි! දැන් ඔයාගේ පළමු Grafana Dashboard එක සාර්ථකව හදලා ඉවරයි. ඔයාට ඕන නම් තව Panels එකතු කරලා, ඒවට වෙන වෙන Data Sources වලින් Data ගෙනල්ලා ලස්සන Dashboards හදන්න පුළුවන්.
Advanced Tips සහ Best Practices
Grafana වලදී තව ගොඩක් දේවල් කරන්න පුළුවන්. ඒවායින් කීපයක් ගැන පොඩ්ඩක් බලමු.
1. Variables භාවිතා කිරීම (Templating)
Dashboard එකක Data Source එකක්, Server නමක්, නැත්නම් වෙනත් Filter එකක් වෙනස් කරනකොට, මුළු Dashboard එකේම Data ටික ඒකට අනුව වෙනස් වෙන්න හදන්න පුළුවන්. මේකට කියන්නේ Templating කියලා. මේකට Variables පාවිච්චි කරනවා.
උදාහරණයක් විදියට, ඔයාට Servers ගොඩක් තියෙනවා නම්, එක Dashboard එකකින් හැම Server එකකම Metrics බලන්න පුලුවන්. උඩින් තියෙන Dropdown එකකින් Server එක තෝරනකොට, Dashboard එකේ තියෙන හැම Panel එකකම Data එක ඒ Server එකට අදාළව වෙනස් වෙනවා.
2. Annotations භාවිතා කිරීම
Annotations කියන්නේ Graph එකක යම්කිසි Event එකක් Marker එකකින් පෙන්නන එක. උදාහරණයක් විදියට, Production Deployment එකක් කරපු වෙලාව, Major Issue එකක් ආපු වෙලාව වගේ දේවල් Graph එකේ මාක් කරන්න පුළුවන්. මේකෙන් Performance වෙනස් වීම් වලට හේතුව ඉක්මනින් තේරුම් ගන්න පුළුවන්.
3. Alerts Configuration
අපි කලින් කතා කරපු විදියට, යම්කිසි Metric එකක අගය අපි බලාපොරොත්තු වෙන මට්ටමකින් එහාට ගියොත්, ඒ ගැන Alert එකක් එන්න හදන්න පුළුවන්. Grafana වලටම inbuilt Alerting System එකක් තියෙනවා, ඒ වගේම Prometheus Alertmanager වගේ External Alerting Systems එක්කත් Integrate කරන්න පුළුවන්.
4. Row Organization
Dashboards වල Panels ගොඩක් තියෙනකොට, ඒවා වර්ග කරලා තියාගන්න Rows භාවිතා කරන්න පුළුවන්. උදාහරණයක් විදියට, "CPU Metrics", "Memory Metrics", "Network Metrics" කියලා වෙන වෙනම Rows හදලා, ඒවට අදාළ Panels ඒ ඒ Row එකට දාන්න පුළුවන්.
5. Permissions සහ Sharing
Dashboard එකක් හදලා, ඒක ඔයාගේ Team එකත් එක්ක Share කරන්න පුළුවන්. අවශ්ය අයට View Permissions විතරක් දීලා, Admin අයට Edit Permissions දෙන්න පුළුවන්.
6. Performance Optimization
Dashboards slow වෙනවා නම්, Queries optimize කරන්න, Refresh Rate අඩු කරන්න, අනවශ්ය Panels අයින් කරන්න වගේ දේවල් කරන්න පුළුවන්.
අවසාන වශයෙන්
දැන් ඔයා දන්නවා Grafana කියන්නේ මොකක්ද, ඒක අපිට වැදගත් ඇයි, ඒ වගේම සරල Grafana Dashboard එකක් හදන්නේ කොහොමද කියලා. Grafana කියන්නේ අපේ System Monitoring සහ Data Analysis වැඩේට නැතුවම බැරි Tool එකක්. මේකෙන් Data තේරුම් ගන්න එක, ප්රශ්න විසඳන එක, ඒ වගේම System Performance එක වැඩි දියුණු කරන එක හරිම ලේසි වෙනවා.
ඔයා Software Engineer කෙනෙක් නම්, DevOps Engineer කෙනෙක් නම්, නැත්නම් System Admin කෙනෙක් නම්, Grafana ගැන හොඳ දැනුමක් තියෙන එක ඔයාගේ Career එකට ලොකු වාසියක්. මේ Article එක කියෙව්වා විතරක් මදි, අනිවාර්යෙන්ම Grafana Install කරගෙන, TestData DB එකෙන් හරි, නැත්නම් ඔයාගේම Data Source එකකින් හරි Dashboard එකක් හදලා බලන්න.
අපි මේ කතා කරපු දේවල් ගැන ඔයාගේ අදහස් මොනවද? ඔයාට Grafana වලට අදාළව තවත් මොනවද දැනගන්න ඕන? පහලින් Comments Section එකේ ඔයාගේ අදහස් දාන්න. අපි ඊළඟ Article එකකින් ආයෙත් හම්බවෙමු! තව අලුත් දේවල් ඉගෙන ගමු!
සියලු දෙනාටම සුභ දවසක්!