# 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