Advertisement
Guest User

Untitled

a guest
Jul 1st, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. <div id="data-container-2"></div>
  2.  
  3. <script>
  4. // Define the Prometheus queries
  5. const query1 = 'unpoller_device_radio_channel{instance="10.10.5.31:9130", job="unifipoller", name="AP-BUITEN", radio="ng", radio_name="wifi0", site_name="Default (default)", source="https://10.10.5.254"}';
  6. const query2 = 'unpoller_device_info{id="65b7d74e9760ca3d449fc877", instance="10.10.5.31:9130"}';
  7. const query3 = 'unpoller_device_radio_channel{instance="10.10.5.31:9130", job="unifipoller", name="AP-BUITEN", radio="ng", radio_name="wifi0", site_name="Default (default)", source="https://10.10.5.254"}';
  8. const query4 = 'unpoller_device_radio_channel{instance="10.10.5.31:9130", job="unifipoller", name="AP-BUITEN", radio="na", radio_name="wifi1", site_name="Default (default)", source="https://10.10.5.254"}';
  9. const query5 = 'unpoller_device_uptime_seconds{instance="10.10.5.31:9130", job="unifipoller", name="AP-BUITEN", site_name="Default (default)", source="https://10.10.5.254", type="uap"}';
  10.  
  11. // Function to fetch data from Prometheus using Grafana's built-in API
  12. async function fetchData(query) {
  13. const response = await fetch('/api/datasources/proxy/1/api/v1/query?query=' + encodeURIComponent(query));
  14. const data = await response.json();
  15. return data.data.result;
  16. }
  17.  
  18. // Function to convert seconds to days
  19. function convertSecondsToDays(seconds) {
  20. return (seconds / (24 * 60 * 60)).toFixed(2); // Convert to days and round to 2 decimal places
  21. }
  22.  
  23. // Function to display the data
  24. async function displayData() {
  25. const data1 = await fetchData(query1);
  26. const data2 = await fetchData(query2);
  27. const data3 = await fetchData(query3);
  28. const data4 = await fetchData(query4);
  29. const data5 = await fetchData(query5);
  30.  
  31. let htmlContent = '';
  32.  
  33. data1.forEach(result => {
  34. htmlContent += `<p><b>Device Name:</b> ${result.metric.name}</p>`;
  35. });
  36.  
  37. data2.forEach(result => {
  38. htmlContent += `<p><b>Device IP:</b> ${result.metric.ip}</p>`;
  39. htmlContent += `<p><b>Version:</b> ${result.metric.version}</p>`;
  40. htmlContent += `<p><b>Serial:</b> ${result.metric.serial}</p>`;
  41. });
  42.  
  43. data3.forEach(result => {
  44. const value = result.value[1];
  45. htmlContent += `<p><b>2.4 GHz Channel:</b> ${value}</p>`;
  46. });
  47.  
  48. data4.forEach(result => {
  49. const value = result.value[1];
  50. htmlContent += `<p><b>5 GHz Channel:</b> ${value}</p>`;
  51. });
  52.  
  53. data5.forEach(result => {
  54. const seconds = parseFloat(result.value[1]);
  55. const days = convertSecondsToDays(seconds);
  56. htmlContent += `<p><b>Uptime:</b> ${days} days</p>`;
  57. });
  58.  
  59. document.getElementById('data-container-2').innerHTML = htmlContent;
  60. }
  61.  
  62. // Execute the display function
  63. displayData();
  64. </script>
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement