ridley 0.3.1.3 → 0.3.1.4
raw patch · 3 files changed
+4/−108 lines, 3 filesnew-uploaderPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ System.Metrics.Prometheus.Ridley.Metrics.CPU: getLoadAvg :: IO (Vector Double)
Files
- ridley.cabal +2/−3
- src/System/Metrics/Prometheus/Ridley/Metrics/CPU.hs +2/−1
- src/System/Metrics/Prometheus/Ridley/Metrics/Network/Darwin.c +0/−104
ridley.cabal view
@@ -1,5 +1,5 @@ name: ridley-version: 0.3.1.3+version: 0.3.1.4 synopsis: Quick metrics to grow your app strong. description: Please see README.md homepage: https://github.com/iconnect/ridley#README@@ -58,8 +58,7 @@ if flag(lib-Werror) ghc-options: -Wall -Werror if os(darwin)- c-sources: src/System/Metrics/Prometheus/Ridley/Metrics/Network/Darwin.c- src/System/Metrics/Prometheus/Ridley/Metrics/CPU/Darwin.c+ c-sources: src/System/Metrics/Prometheus/Ridley/Metrics/CPU/Darwin.c other-modules: System.Metrics.Prometheus.Ridley.Metrics.Network.Darwin System.Metrics.Prometheus.Ridley.Metrics.CPU.Darwin else
src/System/Metrics/Prometheus/Ridley/Metrics/CPU.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} module System.Metrics.Prometheus.Ridley.Metrics.CPU- ( processCPULoad+ ( getLoadAvg+ , processCPULoad ) where #ifdef darwin_HOST_OS
− src/System/Metrics/Prometheus/Ridley/Metrics/Network/Darwin.c
@@ -1,104 +0,0 @@--#include <sys/types.h>--#include <sys/socket.h>--#include <ifaddrs.h>--#include <regex.h>--#include <stddef.h>--#include "helpers.h"--#include <stdlib.h>--#include <string.h>--#include <net/if.h>---void set_ridley_ifi_data(struct if_data* netData, ridley_if_data_t* devStats) {-- //devStats["receive_packets"] = convertFreeBSDCPUTime(uint64(netData.ifi_ipackets));- devStats->ridley_ifi_ipackets = (long)(netData->ifi_ipackets);-- //devStats["transmit_packets"] = convertFreeBSDCPUTime(uint64(netData.ifi_opackets));- devStats->ridley_ifi_opackets = (long)(netData->ifi_opackets);-- //devStats["receive_errs"] = convertFreeBSDCPUTime(uint64(netData.ifi_ierrors));- devStats->ridley_ifi_ierrors = (long)(netData->ifi_ierrors);-- //devStats["transmit_errs"] = convertFreeBSDCPUTime(uint64(netData.ifi_oerrors));- devStats->ridley_ifi_oerrors = (long)(netData->ifi_oerrors);-- //devStats["receive_bytes"] = convertFreeBSDCPUTime(uint64(netData.ifi_ibytes));- devStats->ridley_ifi_ibytes = (long)(netData->ifi_ibytes);-- //devStats["transmit_bytes"] = convertFreeBSDCPUTime(uint64(netData.ifi_obytes));- devStats->ridley_ifi_obytes = (long)(netData->ifi_obytes);-- //devStats["receive_multicast"] = convertFreeBSDCPUTime(uint64(netData.ifi_imcasts));- devStats->ridley_ifi_imcasts = (long)(netData->ifi_imcasts);- //devStats["transmit_multicast"] = convertFreeBSDCPUTime(uint64(netData.ifi_omcasts));- devStats->ridley_ifi_omcasts = (long)(netData->ifi_omcasts);- //devStats["receive_drop"] = convertFreeBSDCPUTime(uint64(netData.ifi_iqdrops));- devStats->ridley_ifi_iqdrops = (long)(netData->ifi_iqdrops);-- //devStats["transmit_drop"] = convertFreeBSDCPUTime(uint64(netData.ifi_oqdrops));- // Not present in this version of if_data-}---ridley_if_data_t * inline_c_System_Metrics_Prometheus_Ridley_Metrics_Network_Darwin_0_ef41cfb6dc39c2d642dd88d273ce5058cea8099d(int * totalInterfaces_inline_c_0) {-- struct ifaddrs *ifap, *ifa;- struct if_data *netData;- ridley_if_data_t *netDev = malloc(30 * sizeof(ridley_if_data_t));- int interfaceIdx = 0;-- // Compile a regex to ignore certain devices- regex_t regex;- int ignoreDevice;-- ignoreDevice = regcomp(®ex, "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$", 0);-- if (ignoreDevice) {- netDev[0].ridley_ifi_error = 1;- return netDev;- }-- if (getifaddrs(&ifap) == -1) {- netDev[0].ridley_ifi_error = 1;- return netDev;- }-- // Iterate over all the network interfaces found- for (ifa = ifap; ifa; ifa = ifa->ifa_next) {- if (ifa->ifa_addr->sa_family == AF_LINK) {- char* currentDevice = malloc((strlen(ifa->ifa_name) + 1) * sizeof(char));- strcpy(currentDevice, ifa->ifa_name);- ignoreDevice = regexec(®ex, currentDevice, 0, NULL, 0);- if (!ignoreDevice) {- regfree(®ex);- free(currentDevice);- continue;- } else {- regfree(®ex);- }-- ridley_if_data_t *devStats = &netDev[interfaceIdx];- netData = ifa->ifa_data;- devStats->ridley_ifi_name = currentDevice;- set_ridley_ifi_data(netData, devStats);- devStats->ridley_ifi_error = 0;- interfaceIdx++;-- }- }- freeifaddrs(ifap);- *totalInterfaces_inline_c_0 = interfaceIdx;- return netDev;- -}-