# Ethical metrics Private Beta testing ### Description Ethical metrics is close to its final stage (before the scaling stage) and its ready to start to be tested internally. The ethical metrics entails the following pieces (* means is new or have been modified): - Packages metrics: any metric exposed by a package container - Exporter: - *Cadvisor: exports docker data - *Prom-exporter: prometheus that exports host data - *NodeJS app: create custom metrics for clients (Still been developed) - DMS: - Grafana: metrics visualization - Prometheus: polls metrics from all the instances + exporter prometheus - Ethical metrics: - Tor: creates onion instance and register **annonymously** in the monitor machine - Prometheus: polls and filters metrics from DMS-prometheus with a custom regex - Monitor machine: - Tor medusa: prometheus proxy for data polling - Prometheus: data polling from instances registered - Grafana: data visualization - Register: API to register new services - Https: creates https cert with letsencrypt ### Current status Ethical metrics is almost ready and these are the most important things that has been achieved so far: - Usage of file provisioning in Grafana. - Modularization of the monitor service code so its pretty straight forward to deploy a new monitor machine. - Register code refactor. - Ethical metrics refactor + implementation of annonymous request. - Domain with HTTPS. - Filtering data to be exported on the client to avoid too much traffic. - Split exporter and cadvisor. - Exporter as a dependency of the DMS. - DMS as a dependency of the Ethical metrics pkg. Features and issues pending to be addressed: - Polish alerts timing. - Polish alert messages. - Polish grafana dashboards. - Finish custom nodeJS app for client metrics. - Finish automatic unregister. - Implement backup system. - Implement remote solution for secrets ### Objectives The main purposes of this private Beta testing are: - Find bugs: report bugs in ethical-metrics discord channel - Determine the maximum amount of dappnodes instances that a monitor machine can track, so we can design the scaling stage ### Alerting The alerts implemented in grafana for each instance registered are: - Dappnode is down: triggered by missing specific metrics from exporter package. Every 5 mins - Dappnode CPU over 75%. Every 5 mins - Dappnode CPU over 85%. Every 5 mins ### Testing **Setup** - Add IPFS peer: http://my.dappnode/#/system/add-ipfs-peer/%2Fdns4%2F53650f79ab75c6ff.dyndns.dappnode.io%2Ftcp%2F4001%2Fipfs%2F12D3KooW9sncCm38dDR7KPNCTq9hYwKzNcqYYE8dWwza57tggsJL - Remove old ethical-metrics pakage (if any) with volumes - Install the packages in the following order: 1. DMS: install production one 2. Exporter: /ipfs/QmPLB2kMfoXrPvxows1AAvXuoWsPBc3nKSfwHQSQYApdG3 3. Ethical metrics: /ipfs/QmaFnLGSE3Qx7uuQ5Lvx62MCkvTS2EQkFX8MukWJDG3tUC - Disable auto-updates for: - exporter - ethical-metrics **Test** - [ ] Right after installing it check tor-hidden-service, there should be registration logs as follows: ``` Jun 08 11:48:58.056 [notice] Tor 0.4.7.13 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.1.0, Zlib 1.2.13, Liblzma 5.4.3, Libzstd 1.5.5 and Unknown N/A as libc. Jun 08 11:48:58.056 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/ Jun 08 11:48:58.056 [notice] Read configuration file "/etc/tor/torrc". Jun 08 11:48:58.062 [notice] Opening Socks listener on 127.0.0.1:9050 Jun 08 11:48:58.062 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050 [INFO] [register-onion] TOR hidden service is reachable [INFO] [register-onion] Registering new onion instance: xwrfe3z4hdi5bbkygf7oiugmncibcg3xs2pjl2inpzmojtilfkaaahad.onion:9090 [DEBUG] [register-onion] HTTP POST body: {"instance":"xwrfe3z4hdi5bbkygf7oiugmncibcg3xs2pjl2inpzmojtilfkaaahad.onion:9090","mail":"pablo@dappnode.io"} % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 145 100 36 100 109 18 55 0:00:02 0:00:01 0:00:01 73 100 145 100 36 100 109 18 55 0:00:02 0:00:01 0:00:01 73 [INFO] [register-onion] Onion instance registered successfully ``` - [ ] Welcome email: you should have received a welcome email message - [ ] Trigger alert notification **dappnode down**: stop export package and wait around 5 minutes. Then check your email and look for the notification. Then starup the package again. - [ ] Edge cases: - [ ] Remove ethical-metrics package with volumes and install it again: you should get new instance and register again. - [ ] Restart ethical-metrics package: logs should display is already registered. Report issues either through Discord Ethical-metrics discord channel or https://github.com/dappnode/ethical-metrics/issues **After finishing this test leave installed the ethical-metrics package and the exporter and DMS containers running** **Testers** - Diego - Pablo - Mark - Luka - Edu - Pol - Voss - Wimel - Marce - Chuy - Danil