Scout: an open-source version of the monitoring tool

Related tags

Logging daowatch
Overview

Badger Scout

Scout is an open-source version of the monitoring tool used by Badger Finance to watch simple ops metrics on our Ethereum smart contracts. Over time, community dashboards will be added.

Scout inspects each block on the chain, creates Badger-relevant events, and uses Grafana with Prometheus as the data source to store/display/work on them.

Included is a base set of UI-unchangeable dashboards configured by JSON that are used for alerting, and uses configuration as code wherever possible. Additional dashboards can be added by the community by making a pull request to add the JSON file into the grafana/dashboards directory structure.

All source code can be found in the docker/ directory. The Badger-written Python collector can be found in docker/scout.

Development Environment

The simplest way to get up and running is to run the below commands from this directory:

cd docker
export ETHNODEURL=https://ethnode.infra.example
export 
docker-compose build
docker-compose up
  • Once running, access Grafana at localhost:3000, Prometheus at localhost:9090, Prometheus Scout target at localhost:8801.
  • docker-compose.yaml contains environment variables to modify basic behavior.

Production Environment

Look in the terraform/ directory to figure out how to build this out in the cloud. Terraform code is currently in the root directory because it is required to pull modules. However, it may later be split into a different repo.

The module is meant to work with network and load balancer resources provided by the DevOps4DeFi terraform-baseline module.

The docker/build.sh script is used to build the containers and push them to the Terraform ECR repos.

More documentation is still required.

Grafana Dashboards

Look in the grafana/provisioning/datasources directory to see the data source that is used to access Prometheus. Note that it depends on an environment variable called PROMETHEUS_URL.

The dashboard structure is specified in the grafana/dashboards directory. This same directory structure will be shown in Grafana.

To make changes to these dashboards add/edit/remove the JSON files in this directory and redeploy Grafana with docker-compose restart. Dashboards can also be copied and edited in the Grafana console and exported as a JSON file to change/templatize.

Note that Grafana interpolates ${VAR} as VAR environment variables from the YAML files in grafana/provisioning/datasources.

Comments
  • Add llama.airforce data to Daowatch

    Add llama.airforce data to Daowatch

    Story: As a daowatch user, I want to be able to calculate the value of badger voting, as well as the value badger can earn by bribing and be able to compare that to the stated votium yeld.

    Technical details.

    This data is shown on llama.airforce coded by Alnuara from Votium. We need the following information:

    we need the most recent $/vlCVX as well as the emissions/bribe on this page https://llama.airforce/#/votium/overview and the Convex APR on this page https://llama.airforce/#/convex/flyer

    this data should go into a new gauge called llama. It seems the only required selector is parameter, which should be one of the above.

    Llama has an API but it does not provide this data. Will connect @SHAKOTN with Alunara to figure out how he got this data and/or we could scrape it.

    not super urgent but would be super slick to have.

    opened by Tritium-VLK 6
  • feat: New AMM gauge unified

    feat: New AMM gauge unified

    Done:

    1. Add new lptoken_v2 gauge to be unified version of all AMM gauges
    2. Pass it around all functions
    3. Fix BPT gauge pricing calculation
    4. Refactorings around
    enhancement 
    opened by SHAKOTN 0
  • feat: fast updates for aura emissions calcs [already deployed]

    feat: fast updates for aura emissions calcs [already deployed]

    • add some calcs from the aura team for Aura per bal earned
    • marked a number of metrics to move to the coingeckos gauge once we have total supply there.
    opened by Tritium-VLK 0
  • Add BPT gauge to daowatch

    Add BPT gauge to daowatch

    Similar outputs to the curve gauge. Currently for all BPT's listend in the balancer section of addresses.py (not that not all are BPTs).

    Data desired:

    BPT Gauge

    • Balance of each underlying token in the contract (should be a way to get this from balancer UI)
    • USD price of each bpt token (badger API has this https://api.badger.com/v3/prices?tokens={ADDRESSES['balancer_bpt'].values()
    • USD mcap (total supply of bpt * price of bpt)

    veBAL gauge

    • total veBAL (voting)
    • total eBAL (80/20 bpt) locked in veBAL bpt.balanceOf(veBAL contract) i think
    opened by Tritium-VLK 0
  • Add CVX locker info and clean up

    Add CVX locker info and clean up

    • updated addresses.py from multisig repo
    • cleaned up a bunch of stuff
    • added the convex locker
    • added build script that may not work for pushing to aws from my new mac
    opened by Tritium-VLK 0
  • Fix issue where votium token is not recognized by the treasury.

    Fix issue where votium token is not recognized by the treasury.

    @SHAKOTN This is the running branch right now. Made changes off master. Everything else kept crashing. So approve, merge this in to master, and then merge master back in to your current branch.

    opened by Tritium-VLK 0
  • Additional convex Ecosystem data  for Daowatch from Ecosystem

    Additional convex Ecosystem data for Daowatch from Ecosystem

    The following data would also be useful:

    Under the convexEcosystem gauge

    • The circulating supply of CRV from coingecko (param=crvCircSupply) also in usd (crvCircSupplyUSD): https://www.coingecko.com/en/coins/curve-dao-token

    • The number of crv locked in cvxcrv - total supply of crxcrv from coingecko param(cvxCRVTotalSupply) and also in USD: https://www.coingecko.com/en/coins/convex-crv

    opened by Tritium-VLK 0
  • New AURA Gauge

    New AURA Gauge

    labels: "bpt", "bpt_address", "param"

    Params: staked_in_aura staked_in_balancer est roi (nice to have) proj roi (nice to have)

    opened by Tritium-VLK 0
  • Extend BPT gauge to include more stuff

    Extend BPT gauge to include more stuff

    Modify daowatch to add at least the following data to the BPT gauge 1: Include all graviAURA pools with gauges 2: Add token=, usd_balance= for each gauge with the total USD value of the pool

    In the end want to build a dashboard for this sheet: https://docs.google.com/spreadsheets/d/1YmjQaf7_9wvfsLMkAF5L1GNv0nXFXtMeTsc2CBsyQ6s/edit#gid=0

    That looks like this dashboard (sheet linked): https://daowatch.badger.guru/d/RW5afb67z/graviaura-yield-v2-revised?orgId=1

    opened by Tritium-VLK 0
  • Track convex detail per pool

    Track convex detail per pool

    This may be tricky as it seems convex pulls it all from web3 and not certain how. May take some reverse engineering. Could be a good way to really understand how web3 works and get into a protocols contracts... Talk to Tritum for more details on how to explore this.

    Story:

    As a DeFi analyist, I can go to take staking page at Convex: https://www.convexfinance.com/stake and see all the pools. If I click on any given pool i can see the following data:

    image

    I would like to be able to have all of this data recorded historically in a guage.

    Gauge convexStakingDetails(pool, type=[projected or current], param=[base curve, crv, cvx, additional]

    opened by Tritium-VLK 0
Owner
Badger Finance
Badger Finance
Monitoring plugin to check disk io with Icinga, Nagios and other compatible monitoring solutions

check_disk_io - Monitor disk io This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check the disk io. It uses

DinoTools 3 Nov 15, 2022
Soda SQL Data testing, monitoring and profiling for SQL accessible data.

Soda SQL Data testing, monitoring and profiling for SQL accessible data. What does Soda SQL do? Soda SQL allows you to Stop your pipeline when bad dat

Soda Data Monitoring 51 Jan 1, 2023
A demo of Prometheus+Grafana for monitoring an ML model served with FastAPI.

ml-monitoring Jeremy Jordan This repository provides an example setup for monitoring an ML system deployed on Kubernetes.

Jeremy Jordan 176 Jan 1, 2023
changedetection.io - The best and simplest self-hosted website change detection monitoring service

changedetection.io - The best and simplest self-hosted website change detection monitoring service. An alternative to Visualping, Watchtower etc. Designed for simplicity - the main goal is to simply monitor which websites had a text change. Open source web page change detection.

null 7.3k Jan 1, 2023
Ransomware leak site monitoring

RansomWatch RansomWatch is a ransomware leak site monitoring tool. It will scrape all of the entries on various ransomware leak sites, store the data

Zander Work 278 Dec 31, 2022
A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation

grafana-docs-exporter A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation Here is the public endpoint.

Matt Abrams 5 May 2, 2022
dash-manufacture-spc-dashboard is a dashboard for monitoring read-time process quality along manufacture production line

In our solution based on plotly, dash and influxdb, the user will firstly generate the specifications for different robots, and then a wide range of interactive visualizations for different machines for machine power, machine cost, and total cost based on the energy time and total energy getting dynamically from sensors. If a threshold is met, the alert email is generated for further operation.

Dequn Teng 1 Feb 13, 2022
A simple, transparent, open-source key logger, written in Python, for tracking your own key-usage statistics.

A simple, transparent, open-source key logger, written in Python, for tracking your own key-usage statistics, originally intended for keyboard layout optimization.

Ga68 56 Jan 3, 2023
This open-source python3 script is a builder to the very popular token logger that is on my github that many people use.

Discord-Logger-Builder This open-source python3 script is a builder to the very popular token logger that is on my github that many people use. This i

Local 4 Nov 17, 2021
APT-Hunter is Threat Hunting tool for windows event logs

APT-Hunter is Threat Hunting tool for windows event logs which made by purple team mindset to provide detect APT movements hidden in the sea of windows event logs to decrease the time to uncover suspicious activity

null 824 Jan 8, 2023
Command-line tool that instantly fetches Stack Overflow results when an exception is thrown

rebound Rebound is a command-line tool that instantly fetches Stack Overflow results when an exception is thrown. Just use the rebound command to exec

Jonathan Shobrook 3.9k Jan 3, 2023
This is a wonderful simple python tool used to store the keyboard log.

Keylogger This is a wonderful simple python tool used to store the keyboard log. Record your keys. It will capture passwords and credentials in a comp

Rithin Lehan 2 Nov 25, 2021
Espion is a mini-keylogger tool that keeps track of all keys a user presses on his/her keyboard

Espion is a mini-keylogger tool that keeps track of all keys a user presses on his/her keyboard. The details get displayed on the terminal window and also stored in a log file.

Anurag.R.Simha 1 Apr 24, 2022
Scout Suite - an open source multi-cloud security-auditing tool,

Description Scout Suite is an open source multi-cloud security-auditing tool, which enables security posture assessment of cloud environments. Using t

NCC Group Plc 5k Jan 5, 2023
HTTP(s) "monitoring" webpage via FastAPI+Jinja2. Inspired by https://github.com/RaymiiOrg/bash-http-monitoring

python-http-monitoring HTTP(s) "monitoring" powered by FastAPI+Jinja2+aiohttp. Inspired by bash-http-monitoring. Installation can be done with pipenv

itzk 39 Aug 26, 2022
Monitoring plugin to check network interfaces with Icinga, Nagios and other compatible monitoring solutions

check_network_interface - Monitor network interfaces This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check

DinoTools 3 Nov 15, 2022
Monitoring plugin to check disk io with Icinga, Nagios and other compatible monitoring solutions

check_disk_io - Monitor disk io This is a monitoring plugin for Icinga, Nagios and other compatible monitoring solutions to check the disk io. It uses

DinoTools 3 Nov 15, 2022
Logging-monitoring-instrumentation - A brief repository on logging monitoring and instrumentation in Python

logging-monitoring-instrumentation A brief repository on logging monitoring and

Noah Gift 6 Feb 17, 2022
One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them.

AwesomeVersion One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind

Joakim Sørensen 39 Dec 31, 2022
This Repository is an up-to-date version of Harvard nlp's Legacy code and a Refactoring of the jupyter notebook version as a shell script version.

This Repository is an up-to-date version of Harvard nlp's Legacy code and a Refactoring of the jupyter notebook version as a shell script version.

신재욱 17 Sep 25, 2022