├── .github └── FUNDING.yml ├── alternatives ├── readme.md ├── Storj-Exporter-dashboard.json └── Storj-Exporter-Boom-Table-fmoledina.json ├── storj-exporter-boom-table.png ├── quick_start ├── .env ├── grafana │ └── provisioning │ │ ├── dashboards │ │ └── dashboard.yml │ │ └── datasources │ │ └── datasource.yml ├── docker-compose.yml ├── prometheus │ └── prometheus.yml └── README.md ├── README.md └── LICENSE /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: anclrii 2 | -------------------------------------------------------------------------------- /alternatives/readme.md: -------------------------------------------------------------------------------- 1 | ## Alternative dashboards can be found here 2 | -------------------------------------------------------------------------------- /storj-exporter-boom-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anclrii/Storj-Exporter-dashboard/HEAD/storj-exporter-boom-table.png -------------------------------------------------------------------------------- /quick_start/.env: -------------------------------------------------------------------------------- 1 | PROMETHEUS_BIND_MOUNT=/edit_this_path_to/prometheus 2 | GRAFANA_BIND_MOUNT=/edit_this_path_to/grafana 3 | 4 | GF_SECURITY_ADMIN_PASSWORD=foobar 5 | GF_USERS_ALLOW_SIGN_UP=false 6 | GF_INSTALL_PLUGINS=yesoreyeram-boomtable-panel 1.3.0 -------------------------------------------------------------------------------- /quick_start/grafana/provisioning/dashboards/dashboard.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'Prometheus' 5 | orgId: 1 6 | folder: '' 7 | type: file 8 | disableDeletion: false 9 | editable: true 10 | options: 11 | path: /etc/grafana/provisioning/dashboards 12 | -------------------------------------------------------------------------------- /quick_start/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | 3 | prometheus: 4 | image: prom/prometheus 5 | volumes: 6 | - ./prometheus/:/etc/prometheus/ 7 | - ${PROMETHEUS_BIND_MOUNT}:/prometheus 8 | command: 9 | - '--config.file=/etc/prometheus/prometheus.yml' 10 | - '--storage.tsdb.path=/prometheus' 11 | - '--web.console.libraries=/usr/share/prometheus/console_libraries' 12 | - '--web.console.templates=/usr/share/prometheus/consoles' 13 | ports: 14 | - 9090:9090 15 | restart: always 16 | 17 | grafana: 18 | image: grafana/grafana 19 | depends_on: 20 | - prometheus 21 | ports: 22 | - 3000:3000 23 | volumes: 24 | - ${GRAFANA_BIND_MOUNT}:/var/lib/grafana 25 | - ./grafana/provisioning/:/etc/grafana/provisioning/ 26 | - ../Storj-Exporter-Boom-Table.json:/etc/grafana/provisioning/dashboards/Storj-Exporter-Boom-Table.json 27 | environment: 28 | - GF_SECURITY_ADMIN_PASSWORD 29 | - GF_USERS_ALLOW_SIGN_UP 30 | - GF_INSTALL_PLUGINS 31 | restart: always -------------------------------------------------------------------------------- /quick_start/prometheus/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. 3 | evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. 4 | # scrape_timeout is set to the global default (10s). 5 | 6 | # Alertmanager configuration 7 | alerting: 8 | alertmanagers: 9 | - static_configs: 10 | - targets: 11 | # - alertmanager:9093 12 | 13 | # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. 14 | rule_files: 15 | # - "first_rules.yml" 16 | # - "second_rules.yml" 17 | 18 | # A scrape configuration containing exactly one endpoint to scrape: 19 | # Here it's Prometheus itself. 20 | scrape_configs: 21 | # The job name is added as a label `job=` to any timeseries scraped from this config. 22 | - job_name: storj 23 | scrape_interval: 60s 24 | metrics_path: /metrics 25 | static_configs: 26 | - targets: 27 | - storj-exporter1:9651 28 | # - storj-exporter2:9652 29 | # - storj-exporter3:9653 30 | # ... -------------------------------------------------------------------------------- /quick_start/grafana/provisioning/datasources/datasource.yml: -------------------------------------------------------------------------------- 1 | # config file version 2 | apiVersion: 1 3 | 4 | # list of datasources that should be deleted from the database 5 | deleteDatasources: 6 | - name: Prometheus 7 | orgId: 1 8 | 9 | # list of datasources to insert/update depending 10 | # whats available in the database 11 | datasources: 12 | # name of the datasource. Required 13 | - name: Prometheus 14 | # datasource type. Required 15 | type: prometheus 16 | # access mode. direct or proxy. Required 17 | access: proxy 18 | # org id. will default to orgId 1 if not specified 19 | orgId: 1 20 | # url 21 | url: http://prometheus:9090 22 | # database password, if used 23 | password: 24 | # database user, if used 25 | user: 26 | # database name, if used 27 | database: 28 | # enable/disable basic auth 29 | basicAuth: false 30 | # basic auth username, if used 31 | basicAuthUser: 32 | # basic auth password, if used 33 | basicAuthPassword: 34 | # enable/disable with credentials headers 35 | withCredentials: 36 | # mark as default datasource. Max one per org 37 | isDefault: true 38 | # fields that will be converted to json and stored in json_data 39 | jsonData: 40 | graphiteVersion: "1.1" 41 | tlsAuth: false 42 | tlsAuthWithCACert: false 43 | # json object of data that will be encrypted. 44 | secureJsonData: 45 | tlsCACert: "..." 46 | tlsClientCert: "..." 47 | tlsClientKey: "..." 48 | version: 1 49 | # allow users to edit datasources from the UI. 50 | editable: true 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) 2 | 3 | [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua) 4 | 5 | # Storj Exporter dashboard 6 | Storj-exporter Grafana dashboard to visualise [Storj-Exporter](https://github.com/anclrii/Storj-Exporter) metrics for multiple Storj storage nodes. See my [quick-start guide](quick_start/) to set up the whole stack using docker-compose. 7 | 8 | 9 | 10 | ## Installation on existing Grafana instance: 11 | Import Storj-Exporter-Boom-Table.json via your Grafana UI ("+" -> Import), select your Prometheus datasource at the top-left of the dashboard. 12 | 13 | Alternately, **import by ID**, simply paste in 13810, which is the [grafana dashboards entry](https://grafana.com/grafana/dashboards/13810) for this repo. 14 | 15 | ## Installing full monitoring stack 16 | Monitoring stack required for this dashboard includes the following components: 17 | 18 | * [Storj-Exporter](https://github.com/anclrii/Storj-Exporter) - collects storagenode metrics 19 | * [Prometheus](https://prometheus.io/) server - scrapes and stores metrics from Storj-Exporter 20 | * [Grafana](https://grafana.com/) - pulls data from Prometheus and visualises it 21 |     * Storj-Exporter-dashboard - a template dashboard for Storj-Exporter metrics 22 | 23 | Here's how metrics flow through the stack: 24 | 25 | --- 26 | 27 | **Storagenode => Storj-Exporter => Prometheus server => Grafana (Storj-Exporter-dashboard)** 28 | 29 | --- 30 | 31 | See my [quick-start guide](quick_start/) to set up the whole stack using docker-compose. 32 | 33 | Alternatively check out links below for other ways to install/configure these components: 34 | 35 | * Storj-Exporter - https://github.com/anclrii/Storj-Exporter#installation 36 | * Prometheus - https://prometheus.io/docs/prometheus/latest/installation/ 37 | * Grafana - https://grafana.com/docs/grafana/latest/installation/ 38 | 39 | ### Ansible role 40 | There's an ansible role [toconspiracy/storj-beastmode](https://github.com/toconspiracy/storj-beastmode/tree/stable) for storagenodes that features all above monitoring components. 41 | -------------------------------------------------------------------------------- /quick_start/README.md: -------------------------------------------------------------------------------- 1 | # A quick-start guide 2 | 3 | This is a guide for minimal setup of the monitoring stack using docker-compose. 4 | 5 | ## Overview 6 | 7 | Monitoring stack includes the following components: 8 | 9 | * [Storj-Exporter](https://github.com/anclrii/Storj-Exporter) - collects storagenode metrics via storj api and exposes them on port 9651 for Prometheus server to scrape 10 | * [Prometheus](https://prometheus.io/) - scrapes metrics from all configured `targets` and stores in the internal database and keeps last 15 days of historic data, exposes an api interface (datasource) for Grafana to pull historic data and visualise it 11 | * [Grafana](https://grafana.com/) - pulls data from the Prometheus datasource to populate Storj-Exporter-dashboard panels 12 | * Storj-Exporter-dashboard - a template for Grafana with some preset panels for Storj-Exporter metrics 13 | 14 | Here's how metrics flow through the stack: 15 | 16 | --- 17 | 18 | **Storagenode => Storj-Exporter => Prometheus server => Grafana (Storj-Exporter-dashboard)** 19 | 20 | --- 21 | 22 | ## Prerequisites 23 | 24 | * Storj-exporter running alongside each storagenode (see https://github.com/anclrii/Storj-Exporter#installation) 25 | * A host with Docker installed that will run Prometheus/Grafana (can be the same host running the storagenode) 26 | * Host needs to have network connectivity to Storj-Exporter ip:port 27 | * check with curl (replace `storagenode1.example.com:9651` with your Storj-Exporter ip:port): 28 | ``` 29 | # curl -s storagenode1.example.com:9651/metrics 30 | ... 31 | # TYPE storj_sat_month_ingress gauge 32 | storj_sat_month_ingress{satellite="12rfG3sh9NCWiX3ivPjq2HtdLmbqCrvHVEzJubnzFzosMuawymB",type="repair",url="europe-north-1.tardigrade.io:7777"} 2.362392576e+09 33 | storj_sat_month_ingress{satellite="12rfG3sh9NCWiX3ivPjq2HtdLmbqCrvHVEzJubnzFzosMuawymB",type="usage",url="europe-north-1.tardigrade.io:7777"} 5.6985088e+07 34 | ``` 35 | * Docker-compose installed on the host https://docs.docker.com/compose/install/ 36 | * A target filesystem/directory with sufficient space to hold persistent monitoring data for Prometheus/Grafana 37 | * ~ 200MB free ram available 38 | 39 | ## Setup 40 | 41 | Follow these steps to get the setup running: 42 | 43 | * Create directories for persistent storage and allow anyone to modify them. 44 | ``` 45 | mkdir //prometheus //grafana 46 | chmod 777 //prometheus //grafana 47 | ``` 48 | * Clone Storj-Exporter-dashboard repo `git clone https://github.com/anclrii/Storj-Exporter-dashboard.git` 49 | * Go to quick_start directory `cd Storj-Exporter-dashboard/quick_start` 50 | * Edit environment variables passed to docker-compose `vim .env` or any text editor, make sure to change the `edit_this_path_to` part to point to the directories created before. Also change the `GF_SECURITY_ADMIN_PASSWORD` that will be used to login to Grafana web ui. 51 | * Edit the Prometheus config `vim prometheus/prometheus.yml` - ` - targets:` at the end of the file. Replace `storj-exporter1:9651` with your storj-exporter address:port and add more targets as needed. 52 | * That's all set, now run `docker-compose up -d` to bring up the containers. 53 | 54 | Open http://localhost:3000 in your browser to log on to Grafana. Use host ip instead of `localhost` if you're not on the same host. Use username `admin` and `GF_SECURITY_ADMIN_PASSWORD` as set in `.env`. You will see a link to `Storj-Exporter-Boom-Table` dashboard on the home page. If all set correctly the dashboard will start showing data shortly after a few minutes as Prometheus collects metrics from exporters. 55 | 56 | ## Security considerations 57 | 58 | Objective of this guide is to provide a working example setup of the monitoring stack that can be used with storj-exporter. These steps do not address security of the setup in any way. You might need to adjust permissions for `//prometheus //grafana` directories and configure firewalls for the new ports `3000` and `9090` etc. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /alternatives/Storj-Exporter-dashboard.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [ 3 | { 4 | "name": "DS_PROMETHEUS", 5 | "label": "Prometheus", 6 | "description": "", 7 | "type": "datasource", 8 | "pluginId": "prometheus", 9 | "pluginName": "Prometheus" 10 | } 11 | ], 12 | "__requires": [ 13 | { 14 | "type": "panel", 15 | "id": "bargauge", 16 | "name": "Bar Gauge", 17 | "version": "" 18 | }, 19 | { 20 | "type": "panel", 21 | "id": "gauge", 22 | "name": "Gauge", 23 | "version": "" 24 | }, 25 | { 26 | "type": "grafana", 27 | "id": "grafana", 28 | "name": "Grafana", 29 | "version": "6.3.3" 30 | }, 31 | { 32 | "type": "panel", 33 | "id": "graph", 34 | "name": "Graph", 35 | "version": "" 36 | }, 37 | { 38 | "type": "datasource", 39 | "id": "prometheus", 40 | "name": "Prometheus", 41 | "version": "1.0.0" 42 | }, 43 | { 44 | "type": "panel", 45 | "id": "singlestat", 46 | "name": "Singlestat", 47 | "version": "" 48 | } 49 | ], 50 | "annotations": { 51 | "list": [ 52 | { 53 | "builtIn": 1, 54 | "datasource": "-- Grafana --", 55 | "enable": true, 56 | "hide": true, 57 | "iconColor": "rgba(0, 211, 255, 1)", 58 | "name": "Annotations & Alerts", 59 | "type": "dashboard" 60 | } 61 | ] 62 | }, 63 | "description": "", 64 | "editable": true, 65 | "gnetId": null, 66 | "graphTooltip": 1, 67 | "id": null, 68 | "iteration": 1570977136378, 69 | "links": [ 70 | { 71 | "icon": "external link", 72 | "tags": [], 73 | "targetBlank": true, 74 | "title": "Storj-Exporter Github page", 75 | "tooltip": "", 76 | "type": "link", 77 | "url": "https://github.com/anclrii/Storj-Exporter" 78 | }, 79 | { 80 | "icon": "question", 81 | "tags": [], 82 | "targetBlank": true, 83 | "title": "Storj-Exporter forum thread", 84 | "type": "link", 85 | "url": "https://forum.storj.io/t/prometheus-storj-exporter/" 86 | }, 87 | { 88 | "icon": "bolt", 89 | "tags": [], 90 | "targetBlank": true, 91 | "title": "Support the project", 92 | "tooltip": "", 93 | "type": "link", 94 | "url": "https://github.com/anclrii/Storj-Exporter#support" 95 | } 96 | ], 97 | "panels": [ 98 | { 99 | "collapsed": false, 100 | "gridPos": { 101 | "h": 1, 102 | "w": 24, 103 | "x": 0, 104 | "y": 0 105 | }, 106 | "id": 295, 107 | "panels": [], 108 | "title": "Combined Storj-exporter summary", 109 | "type": "row" 110 | }, 111 | { 112 | "cacheTimeout": null, 113 | "colorBackground": false, 114 | "colorPostfix": false, 115 | "colorValue": false, 116 | "colors": [ 117 | "#299c46", 118 | "#FA6400", 119 | "#d44a3a" 120 | ], 121 | "decimals": 2, 122 | "format": "currencyUSD", 123 | "gauge": { 124 | "maxValue": 100, 125 | "minValue": 0, 126 | "show": false, 127 | "thresholdLabels": false, 128 | "thresholdMarkers": true 129 | }, 130 | "gridPos": { 131 | "h": 4, 132 | "w": 3, 133 | "x": 0, 134 | "y": 1 135 | }, 136 | "id": 468, 137 | "interval": null, 138 | "links": [], 139 | "mappingType": 1, 140 | "mappingTypes": [ 141 | { 142 | "name": "value to text", 143 | "value": 1 144 | }, 145 | { 146 | "name": "range to text", 147 | "value": 2 148 | } 149 | ], 150 | "maxDataPoints": 100, 151 | "nullPointMode": "connected", 152 | "nullText": null, 153 | "options": {}, 154 | "pluginVersion": "6.3.3", 155 | "postfix": "", 156 | "postfixFontSize": "50%", 157 | "prefix": "", 158 | "prefixFontSize": "50%", 159 | "rangeMaps": [ 160 | { 161 | "from": "null", 162 | "text": "N/A", 163 | "to": "null" 164 | } 165 | ], 166 | "sparkline": { 167 | "fillColor": "rgba(20, 217, 28, 0.08)", 168 | "full": true, 169 | "lineColor": "#56A64B", 170 | "show": true, 171 | "ymax": null, 172 | "ymin": null 173 | }, 174 | "tableColumn": "", 175 | "targets": [ 176 | { 177 | "expr": "(sum(storj_sat_summary{type=\"storageSummary\"}) / (days_in_month() * 24) * 1.5 / 1000^4) + (sum(storj_sat_month_egress) / 1000^4 * 20)", 178 | "refId": "A" 179 | } 180 | ], 181 | "thresholds": "", 182 | "timeFrom": null, 183 | "timeShift": null, 184 | "title": "Earnings total", 185 | "type": "singlestat", 186 | "valueFontSize": "100%", 187 | "valueMaps": [ 188 | { 189 | "op": "=", 190 | "text": "N/A", 191 | "value": "null" 192 | } 193 | ], 194 | "valueName": "current" 195 | }, 196 | { 197 | "gridPos": { 198 | "h": 16, 199 | "w": 3, 200 | "x": 3, 201 | "y": 1 202 | }, 203 | "id": 327, 204 | "options": { 205 | "fieldOptions": { 206 | "calcs": [ 207 | "lastNotNull" 208 | ], 209 | "defaults": { 210 | "decimals": 1, 211 | "mappings": [], 212 | "max": 1000, 213 | "min": 0, 214 | "thresholds": [ 215 | { 216 | "color": "super-light-green", 217 | "value": null 218 | }, 219 | { 220 | "color": "light-green", 221 | "value": 100 222 | }, 223 | { 224 | "color": "semi-dark-green", 225 | "value": 400 226 | }, 227 | { 228 | "color": "dark-green", 229 | "value": 1000 230 | } 231 | ], 232 | "unit": "decbytes" 233 | }, 234 | "override": {}, 235 | "values": false 236 | }, 237 | "orientation": "auto", 238 | "showThresholdLabels": false, 239 | "showThresholdMarkers": false 240 | }, 241 | "pluginVersion": "6.3.3", 242 | "targets": [ 243 | { 244 | "expr": "sum(storj_total_diskspace{type=\"used\"}) by(instance)", 245 | "format": "time_series", 246 | "hide": false, 247 | "instant": false, 248 | "intervalFactor": 1, 249 | "legendFormat": "{{instance}}", 250 | "refId": "D" 251 | } 252 | ], 253 | "timeFrom": null, 254 | "timeShift": null, 255 | "title": "Storage total", 256 | "type": "gauge" 257 | }, 258 | { 259 | "gridPos": { 260 | "h": 16, 261 | "w": 3, 262 | "x": 6, 263 | "y": 1 264 | }, 265 | "id": 304, 266 | "options": { 267 | "displayMode": "basic", 268 | "fieldOptions": { 269 | "calcs": [ 270 | "lastNotNull" 271 | ], 272 | "defaults": { 273 | "decimals": 1, 274 | "mappings": [], 275 | "max": 500000000000, 276 | "min": -1, 277 | "thresholds": [ 278 | { 279 | "color": "light-green", 280 | "value": null 281 | }, 282 | { 283 | "color": "light-blue", 284 | "value": 1 285 | } 286 | ], 287 | "unit": "decbytes" 288 | }, 289 | "override": {}, 290 | "values": false 291 | }, 292 | "orientation": "horizontal" 293 | }, 294 | "pluginVersion": "6.3.3", 295 | "targets": [ 296 | { 297 | "expr": "sum(storj_sat_month_egress) by(instance)", 298 | "format": "time_series", 299 | "hide": false, 300 | "instant": false, 301 | "intervalFactor": 1, 302 | "legendFormat": "{{instance}} Out", 303 | "refId": "A" 304 | }, 305 | { 306 | "expr": "- sum(storj_sat_month_ingress) by(instance)", 307 | "format": "time_series", 308 | "hide": false, 309 | "legendFormat": "{{instance}} In", 310 | "refId": "B" 311 | } 312 | ], 313 | "timeFrom": null, 314 | "timeShift": null, 315 | "title": "Net IO/sum monthly", 316 | "type": "bargauge" 317 | }, 318 | { 319 | "cacheTimeout": null, 320 | "gridPos": { 321 | "h": 9, 322 | "w": 3, 323 | "x": 9, 324 | "y": 1 325 | }, 326 | "id": 301, 327 | "links": [], 328 | "options": { 329 | "displayMode": "lcd", 330 | "fieldOptions": { 331 | "calcs": [ 332 | "lastNotNull" 333 | ], 334 | "defaults": { 335 | "decimals": 2, 336 | "mappings": [], 337 | "max": 100, 338 | "min": 99, 339 | "thresholds": [ 340 | { 341 | "color": "semi-dark-red", 342 | "value": null 343 | }, 344 | { 345 | "color": "#EAB839", 346 | "value": 99.5 347 | }, 348 | { 349 | "color": "green", 350 | "value": 99.8 351 | } 352 | ], 353 | "title": "", 354 | "unit": "percent" 355 | }, 356 | "override": {}, 357 | "values": false 358 | }, 359 | "orientation": "horizontal" 360 | }, 361 | "pluginVersion": "6.3.3", 362 | "targets": [ 363 | { 364 | "expr": "avg(storj_sat_uptime{type=\"score\"}) by(instance) * 100", 365 | "format": "time_series", 366 | "hide": false, 367 | "instant": false, 368 | "intervalFactor": 1, 369 | "legendFormat": "{{instance}}", 370 | "refId": "A" 371 | } 372 | ], 373 | "timeFrom": null, 374 | "timeShift": null, 375 | "title": "Uptime avg score (* 100)", 376 | "type": "bargauge" 377 | }, 378 | { 379 | "aliasColors": {}, 380 | "bars": false, 381 | "dashLength": 10, 382 | "dashes": false, 383 | "decimals": null, 384 | "fill": 6, 385 | "fillGradient": 0, 386 | "gridPos": { 387 | "h": 9, 388 | "w": 12, 389 | "x": 12, 390 | "y": 1 391 | }, 392 | "id": 297, 393 | "interval": "", 394 | "legend": { 395 | "alignAsTable": false, 396 | "avg": false, 397 | "current": false, 398 | "max": false, 399 | "min": false, 400 | "rightSide": true, 401 | "show": false, 402 | "sideWidth": null, 403 | "total": false, 404 | "values": false 405 | }, 406 | "lines": true, 407 | "linewidth": 1, 408 | "nullPointMode": "null", 409 | "options": { 410 | "dataLinks": [] 411 | }, 412 | "percentage": false, 413 | "pluginVersion": "6.3.3", 414 | "pointradius": 2, 415 | "points": false, 416 | "renderer": "flot", 417 | "seriesOverrides": [ 418 | { 419 | "alias": "/RateOut/", 420 | "stack": "A", 421 | "yaxis": 2 422 | }, 423 | { 424 | "alias": "/RateIn/", 425 | "stack": "B", 426 | "transform": "negative-Y", 427 | "yaxis": 2 428 | }, 429 | { 430 | "alias": "/SumOut/", 431 | "color": "#1F60C4", 432 | "dashLength": 10, 433 | "dashes": true, 434 | "fill": 2, 435 | "legend": false, 436 | "lines": true, 437 | "linewidth": 1, 438 | "spaceLength": 20, 439 | "stack": "C" 440 | }, 441 | { 442 | "alias": "/SumIn/", 443 | "color": "rgba(65, 107, 60, 0.68)", 444 | "dashLength": 10, 445 | "dashes": true, 446 | "fill": 2, 447 | "legend": false, 448 | "linewidth": 1, 449 | "spaceLength": 20, 450 | "stack": "D", 451 | "transform": "negative-Y" 452 | } 453 | ], 454 | "spaceLength": 10, 455 | "stack": false, 456 | "steppedLine": false, 457 | "targets": [ 458 | { 459 | "expr": "sum(storj_sat_month_egress) by(instance)", 460 | "format": "time_series", 461 | "hide": false, 462 | "instant": false, 463 | "intervalFactor": 1, 464 | "legendFormat": "SumOut {{instance}}", 465 | "refId": "C" 466 | }, 467 | { 468 | "expr": "sum(storj_sat_month_ingress) by(instance)", 469 | "format": "time_series", 470 | "hide": false, 471 | "legendFormat": "SumIn {{instance}}", 472 | "refId": "D" 473 | }, 474 | { 475 | "expr": "sum(rate(storj_sat_month_egress[5m])) by(instance) * 8", 476 | "format": "time_series", 477 | "hide": false, 478 | "instant": false, 479 | "intervalFactor": 4, 480 | "legendFormat": "RateOut {{instance}}", 481 | "refId": "A" 482 | }, 483 | { 484 | "expr": "sum(rate(storj_sat_month_ingress[5m])) by(instance) * 8", 485 | "hide": false, 486 | "intervalFactor": 4, 487 | "legendFormat": "RateIn {{instance}}", 488 | "refId": "B" 489 | } 490 | ], 491 | "thresholds": [], 492 | "timeFrom": null, 493 | "timeRegions": [], 494 | "timeShift": null, 495 | "title": "Net IO/sum per node monthly", 496 | "tooltip": { 497 | "shared": true, 498 | "sort": 2, 499 | "value_type": "individual" 500 | }, 501 | "type": "graph", 502 | "xaxis": { 503 | "buckets": null, 504 | "mode": "time", 505 | "name": null, 506 | "show": false, 507 | "values": [] 508 | }, 509 | "yaxes": [ 510 | { 511 | "format": "decbytes", 512 | "label": "Net IO rate", 513 | "logBase": 1, 514 | "max": null, 515 | "min": null, 516 | "show": true 517 | }, 518 | { 519 | "decimals": null, 520 | "format": "bps", 521 | "label": "Net monthly sum", 522 | "logBase": 1, 523 | "max": null, 524 | "min": null, 525 | "show": true 526 | } 527 | ], 528 | "yaxis": { 529 | "align": false, 530 | "alignLevel": null 531 | } 532 | }, 533 | { 534 | "cacheTimeout": null, 535 | "colorBackground": false, 536 | "colorPrefix": false, 537 | "colorValue": false, 538 | "colors": [ 539 | "#299c46", 540 | "rgba(237, 129, 40, 0.89)", 541 | "#d44a3a" 542 | ], 543 | "decimals": null, 544 | "format": "short", 545 | "gauge": { 546 | "maxValue": 100, 547 | "minValue": 0, 548 | "show": false, 549 | "thresholdLabels": false, 550 | "thresholdMarkers": true 551 | }, 552 | "gridPos": { 553 | "h": 3, 554 | "w": 3, 555 | "x": 0, 556 | "y": 5 557 | }, 558 | "id": 330, 559 | "interval": null, 560 | "links": [], 561 | "mappingType": 1, 562 | "mappingTypes": [ 563 | { 564 | "name": "value to text", 565 | "value": 1 566 | }, 567 | { 568 | "name": "range to text", 569 | "value": 2 570 | } 571 | ], 572 | "maxDataPoints": 100, 573 | "nullPointMode": "connected", 574 | "nullText": null, 575 | "options": {}, 576 | "pluginVersion": "6.3.3", 577 | "postfix": "", 578 | "postfixFontSize": "50%", 579 | "prefix": "", 580 | "prefixFontSize": "50%", 581 | "rangeMaps": [ 582 | { 583 | "from": "null", 584 | "text": "N/A", 585 | "to": "null" 586 | } 587 | ], 588 | "sparkline": { 589 | "fillColor": "rgba(187, 255, 153, 0.16)", 590 | "full": false, 591 | "lineColor": "#C8F2C2", 592 | "show": true, 593 | "ymax": null, 594 | "ymin": null 595 | }, 596 | "tableColumn": "", 597 | "targets": [ 598 | { 599 | "expr": "count(storj_nodeID_info)", 600 | "format": "time_series", 601 | "hide": false, 602 | "instant": false, 603 | "intervalFactor": 1, 604 | "legendFormat": "Node sum", 605 | "refId": "D" 606 | } 607 | ], 608 | "thresholds": "", 609 | "timeFrom": null, 610 | "timeShift": null, 611 | "title": "Nodes online", 612 | "type": "singlestat", 613 | "valueFontSize": "150%", 614 | "valueMaps": [ 615 | { 616 | "op": "=", 617 | "text": "N/A", 618 | "value": "null" 619 | } 620 | ], 621 | "valueName": "current" 622 | }, 623 | { 624 | "cacheTimeout": null, 625 | "colorBackground": false, 626 | "colorPrefix": false, 627 | "colorValue": false, 628 | "colors": [ 629 | "#299c46", 630 | "rgba(237, 129, 40, 0.89)", 631 | "#d44a3a" 632 | ], 633 | "decimals": 1, 634 | "format": "decbytes", 635 | "gauge": { 636 | "maxValue": 100, 637 | "minValue": 0, 638 | "show": false, 639 | "thresholdLabels": false, 640 | "thresholdMarkers": true 641 | }, 642 | "gridPos": { 643 | "h": 3, 644 | "w": 3, 645 | "x": 0, 646 | "y": 8 647 | }, 648 | "id": 302, 649 | "interval": null, 650 | "links": [], 651 | "mappingType": 1, 652 | "mappingTypes": [ 653 | { 654 | "name": "value to text", 655 | "value": 1 656 | }, 657 | { 658 | "name": "range to text", 659 | "value": 2 660 | } 661 | ], 662 | "maxDataPoints": 100, 663 | "nullPointMode": "connected", 664 | "nullText": null, 665 | "options": {}, 666 | "pluginVersion": "6.3.3", 667 | "postfix": "", 668 | "postfixFontSize": "50%", 669 | "prefix": "", 670 | "prefixFontSize": "50%", 671 | "rangeMaps": [ 672 | { 673 | "from": "null", 674 | "text": "N/A", 675 | "to": "null" 676 | } 677 | ], 678 | "sparkline": { 679 | "fillColor": "rgb(36, 50, 34)", 680 | "full": true, 681 | "lineColor": "#73BF69", 682 | "show": true, 683 | "ymax": null, 684 | "ymin": null 685 | }, 686 | "tableColumn": "", 687 | "targets": [ 688 | { 689 | "expr": "sum(storj_total_diskspace{type=\"used\"})", 690 | "format": "time_series", 691 | "hide": false, 692 | "instant": false, 693 | "intervalFactor": 1, 694 | "legendFormat": "Node sum", 695 | "refId": "D" 696 | } 697 | ], 698 | "thresholds": "", 699 | "timeFrom": null, 700 | "timeShift": null, 701 | "title": "Storage total", 702 | "type": "singlestat", 703 | "valueFontSize": "80%", 704 | "valueMaps": [ 705 | { 706 | "op": "=", 707 | "text": "N/A", 708 | "value": "null" 709 | } 710 | ], 711 | "valueName": "current" 712 | }, 713 | { 714 | "cacheTimeout": null, 715 | "gridPos": { 716 | "h": 7, 717 | "w": 3, 718 | "x": 9, 719 | "y": 10 720 | }, 721 | "id": 300, 722 | "links": [], 723 | "options": { 724 | "displayMode": "lcd", 725 | "fieldOptions": { 726 | "calcs": [ 727 | "lastNotNull" 728 | ], 729 | "defaults": { 730 | "decimals": 2, 731 | "mappings": [], 732 | "max": 100, 733 | "min": 99, 734 | "thresholds": [ 735 | { 736 | "color": "dark-red", 737 | "value": null 738 | }, 739 | { 740 | "color": "light-yellow", 741 | "value": 99.5 742 | }, 743 | { 744 | "color": "dark-green", 745 | "value": 99.8 746 | } 747 | ], 748 | "unit": "percent" 749 | }, 750 | "override": {}, 751 | "values": false 752 | }, 753 | "orientation": "horizontal" 754 | }, 755 | "pluginVersion": "6.3.3", 756 | "targets": [ 757 | { 758 | "expr": "avg(storj_sat_audit{type=~\"score|auditScore\"}) by(instance) * 100", 759 | "format": "time_series", 760 | "hide": false, 761 | "instant": false, 762 | "intervalFactor": 1, 763 | "legendFormat": "{{instance}}", 764 | "refId": "A" 765 | } 766 | ], 767 | "timeFrom": null, 768 | "timeShift": null, 769 | "title": "Audit avg score (* 100)", 770 | "type": "bargauge" 771 | }, 772 | { 773 | "aliasColors": {}, 774 | "bars": false, 775 | "dashLength": 10, 776 | "dashes": false, 777 | "decimals": null, 778 | "fill": 6, 779 | "fillGradient": 0, 780 | "gridPos": { 781 | "h": 5, 782 | "w": 12, 783 | "x": 12, 784 | "y": 10 785 | }, 786 | "id": 298, 787 | "interval": "", 788 | "legend": { 789 | "alignAsTable": false, 790 | "avg": false, 791 | "current": false, 792 | "max": false, 793 | "min": false, 794 | "rightSide": true, 795 | "show": false, 796 | "sideWidth": null, 797 | "total": false, 798 | "values": false 799 | }, 800 | "lines": true, 801 | "linewidth": 1, 802 | "nullPointMode": "null", 803 | "options": { 804 | "dataLinks": [] 805 | }, 806 | "percentage": false, 807 | "pluginVersion": "6.3.3", 808 | "pointradius": 2, 809 | "points": false, 810 | "renderer": "flot", 811 | "seriesOverrides": [ 812 | { 813 | "alias": "/DiskRate/", 814 | "linewidth": 1, 815 | "stack": "A", 816 | "transform": "negative-Y", 817 | "yaxis": 2 818 | }, 819 | { 820 | "alias": "/DiskSum/", 821 | "color": "#37872D", 822 | "dashLength": 10, 823 | "dashes": true, 824 | "fill": 1, 825 | "linewidth": 1, 826 | "spaceLength": 15, 827 | "stack": "B" 828 | } 829 | ], 830 | "spaceLength": 10, 831 | "stack": false, 832 | "steppedLine": false, 833 | "targets": [ 834 | { 835 | "expr": "sum(storj_total_diskspace{type=\"used\"}) by(instance)", 836 | "format": "time_series", 837 | "hide": false, 838 | "instant": false, 839 | "intervalFactor": 1, 840 | "legendFormat": "DiskSum {{instance}}", 841 | "refId": "D" 842 | }, 843 | { 844 | "expr": "sum(delta(storj_total_diskspace{type=\"used\"}[5m])) by(instance) * 8 / 300", 845 | "format": "time_series", 846 | "hide": false, 847 | "instant": false, 848 | "intervalFactor": 4, 849 | "legendFormat": "DiskRate {{instance}}", 850 | "refId": "B" 851 | } 852 | ], 853 | "thresholds": [], 854 | "timeFrom": null, 855 | "timeRegions": [], 856 | "timeShift": null, 857 | "title": "Storage In/Total per node monthly", 858 | "tooltip": { 859 | "shared": true, 860 | "sort": 2, 861 | "value_type": "individual" 862 | }, 863 | "type": "graph", 864 | "xaxis": { 865 | "buckets": null, 866 | "mode": "time", 867 | "name": null, 868 | "show": false, 869 | "values": [] 870 | }, 871 | "yaxes": [ 872 | { 873 | "decimals": 2, 874 | "format": "decbytes", 875 | "label": "Storage IO rate", 876 | "logBase": 1, 877 | "max": null, 878 | "min": "0", 879 | "show": true 880 | }, 881 | { 882 | "decimals": 2, 883 | "format": "bps", 884 | "label": "Storage sum", 885 | "logBase": 1, 886 | "max": null, 887 | "min": null, 888 | "show": true 889 | } 890 | ], 891 | "yaxis": { 892 | "align": false, 893 | "alignLevel": null 894 | } 895 | }, 896 | { 897 | "cacheTimeout": null, 898 | "colorBackground": false, 899 | "colorPrefix": false, 900 | "colorValue": false, 901 | "colors": [ 902 | "#299c46", 903 | "rgba(237, 129, 40, 0.89)", 904 | "#d44a3a" 905 | ], 906 | "decimals": 1, 907 | "format": "decbytes", 908 | "gauge": { 909 | "maxValue": 100, 910 | "minValue": 0, 911 | "show": false, 912 | "thresholdLabels": false, 913 | "thresholdMarkers": true 914 | }, 915 | "gridPos": { 916 | "h": 3, 917 | "w": 3, 918 | "x": 0, 919 | "y": 11 920 | }, 921 | "id": 328, 922 | "interval": null, 923 | "links": [], 924 | "mappingType": 1, 925 | "mappingTypes": [ 926 | { 927 | "name": "value to text", 928 | "value": 1 929 | }, 930 | { 931 | "name": "range to text", 932 | "value": 2 933 | } 934 | ], 935 | "maxDataPoints": 100, 936 | "nullPointMode": "connected", 937 | "nullText": null, 938 | "options": {}, 939 | "pluginVersion": "6.3.3", 940 | "postfix": "", 941 | "postfixFontSize": "50%", 942 | "prefix": "", 943 | "prefixFontSize": "50%", 944 | "rangeMaps": [ 945 | { 946 | "from": "null", 947 | "text": "N/A", 948 | "to": "null" 949 | } 950 | ], 951 | "sparkline": { 952 | "fillColor": "rgb(34, 40, 50)", 953 | "full": true, 954 | "lineColor": "#5794F2", 955 | "show": true, 956 | "ymax": null, 957 | "ymin": null 958 | }, 959 | "tableColumn": "", 960 | "targets": [ 961 | { 962 | "expr": "sum(storj_sat_month_egress)", 963 | "format": "time_series", 964 | "hide": false, 965 | "instant": false, 966 | "intervalFactor": 1, 967 | "legendFormat": "Node sum", 968 | "refId": "D" 969 | } 970 | ], 971 | "thresholds": "", 972 | "timeFrom": null, 973 | "timeShift": null, 974 | "title": "Net Out total", 975 | "type": "singlestat", 976 | "valueFontSize": "80%", 977 | "valueMaps": [ 978 | { 979 | "op": "=", 980 | "text": "N/A", 981 | "value": "null" 982 | } 983 | ], 984 | "valueName": "current" 985 | }, 986 | { 987 | "cacheTimeout": null, 988 | "colorBackground": false, 989 | "colorPrefix": false, 990 | "colorValue": false, 991 | "colors": [ 992 | "#299c46", 993 | "rgba(237, 129, 40, 0.89)", 994 | "#d44a3a" 995 | ], 996 | "decimals": 1, 997 | "format": "decbytes", 998 | "gauge": { 999 | "maxValue": 100, 1000 | "minValue": 0, 1001 | "show": false, 1002 | "thresholdLabels": false, 1003 | "thresholdMarkers": true 1004 | }, 1005 | "gridPos": { 1006 | "h": 3, 1007 | "w": 3, 1008 | "x": 0, 1009 | "y": 14 1010 | }, 1011 | "id": 329, 1012 | "interval": null, 1013 | "links": [], 1014 | "mappingType": 1, 1015 | "mappingTypes": [ 1016 | { 1017 | "name": "value to text", 1018 | "value": 1 1019 | }, 1020 | { 1021 | "name": "range to text", 1022 | "value": 2 1023 | } 1024 | ], 1025 | "maxDataPoints": 100, 1026 | "nullPointMode": "connected", 1027 | "nullText": null, 1028 | "options": {}, 1029 | "pluginVersion": "6.3.3", 1030 | "postfix": "", 1031 | "postfixFontSize": "50%", 1032 | "prefix": "", 1033 | "prefixFontSize": "50%", 1034 | "rangeMaps": [ 1035 | { 1036 | "from": "null", 1037 | "text": "N/A", 1038 | "to": "null" 1039 | } 1040 | ], 1041 | "sparkline": { 1042 | "fillColor": "rgb(36, 50, 34)", 1043 | "full": true, 1044 | "lineColor": "#73BF69", 1045 | "show": true, 1046 | "ymax": null, 1047 | "ymin": null 1048 | }, 1049 | "tableColumn": "", 1050 | "targets": [ 1051 | { 1052 | "expr": "sum(storj_sat_month_ingress)", 1053 | "format": "time_series", 1054 | "hide": false, 1055 | "instant": false, 1056 | "intervalFactor": 1, 1057 | "legendFormat": "Node sum", 1058 | "refId": "D" 1059 | } 1060 | ], 1061 | "thresholds": "", 1062 | "timeFrom": null, 1063 | "timeShift": null, 1064 | "title": "Net In total", 1065 | "type": "singlestat", 1066 | "valueFontSize": "80%", 1067 | "valueMaps": [ 1068 | { 1069 | "op": "=", 1070 | "text": "N/A", 1071 | "value": "null" 1072 | } 1073 | ], 1074 | "valueName": "current" 1075 | }, 1076 | { 1077 | "aliasColors": {}, 1078 | "bars": false, 1079 | "dashLength": 10, 1080 | "dashes": false, 1081 | "decimals": null, 1082 | "fill": 6, 1083 | "fillGradient": 0, 1084 | "gridPos": { 1085 | "h": 5, 1086 | "w": 12, 1087 | "x": 12, 1088 | "y": 15 1089 | }, 1090 | "id": 299, 1091 | "interval": "", 1092 | "legend": { 1093 | "alignAsTable": false, 1094 | "avg": false, 1095 | "current": false, 1096 | "max": false, 1097 | "min": false, 1098 | "rightSide": true, 1099 | "show": false, 1100 | "sideWidth": null, 1101 | "total": false, 1102 | "values": false 1103 | }, 1104 | "lines": true, 1105 | "linewidth": 0, 1106 | "nullPointMode": "null", 1107 | "options": { 1108 | "dataLinks": [] 1109 | }, 1110 | "percentage": false, 1111 | "pluginVersion": "6.3.3", 1112 | "pointradius": 2, 1113 | "points": false, 1114 | "renderer": "flot", 1115 | "seriesOverrides": [ 1116 | { 1117 | "alias": "/RateOut/", 1118 | "stack": "A", 1119 | "yaxis": 2 1120 | }, 1121 | { 1122 | "alias": "/RateIn/", 1123 | "stack": "B", 1124 | "transform": "negative-Y", 1125 | "yaxis": 2 1126 | }, 1127 | { 1128 | "alias": "/SumOut/", 1129 | "fill": 2, 1130 | "legend": false, 1131 | "linewidth": 0, 1132 | "stack": "C" 1133 | }, 1134 | { 1135 | "alias": "/SumIn/", 1136 | "fill": 2, 1137 | "legend": false, 1138 | "linewidth": 0, 1139 | "stack": "D", 1140 | "transform": "negative-Y" 1141 | } 1142 | ], 1143 | "spaceLength": 10, 1144 | "stack": false, 1145 | "steppedLine": false, 1146 | "targets": [ 1147 | { 1148 | "expr": "sum(storj_sat_month_egress{type!=\"usage\"}) by(type,instance)", 1149 | "format": "time_series", 1150 | "hide": false, 1151 | "instant": false, 1152 | "intervalFactor": 1, 1153 | "legendFormat": "SumOut-{{type}}-{{instance}}", 1154 | "refId": "C" 1155 | }, 1156 | { 1157 | "expr": "sum(storj_sat_month_ingress{type!=\"usage\"}) by(type,instance)", 1158 | "format": "time_series", 1159 | "hide": false, 1160 | "legendFormat": "SumIn-{{type}}-{{instance}}", 1161 | "refId": "D" 1162 | }, 1163 | { 1164 | "expr": "sum(rate(storj_sat_month_egress{type!=\"usage\"}[5m])) by(type,instance) * 8", 1165 | "format": "time_series", 1166 | "hide": false, 1167 | "instant": false, 1168 | "intervalFactor": 1, 1169 | "legendFormat": "RateOut-{{type}}-{{instance}}", 1170 | "refId": "A" 1171 | }, 1172 | { 1173 | "expr": "sum(rate(storj_sat_month_ingress{type!=\"usage\"}[5m])) by(type,instance) * 8", 1174 | "hide": false, 1175 | "intervalFactor": 1, 1176 | "legendFormat": "RateIn-{{type}}-{{instance}}", 1177 | "refId": "B" 1178 | } 1179 | ], 1180 | "thresholds": [], 1181 | "timeFrom": null, 1182 | "timeRegions": [], 1183 | "timeShift": null, 1184 | "title": "Audit/Repair IO/sum per node monthly", 1185 | "tooltip": { 1186 | "shared": true, 1187 | "sort": 2, 1188 | "value_type": "individual" 1189 | }, 1190 | "type": "graph", 1191 | "xaxis": { 1192 | "buckets": null, 1193 | "mode": "time", 1194 | "name": null, 1195 | "show": false, 1196 | "values": [] 1197 | }, 1198 | "yaxes": [ 1199 | { 1200 | "format": "decbytes", 1201 | "label": "Net IO rate", 1202 | "logBase": 1, 1203 | "max": null, 1204 | "min": null, 1205 | "show": true 1206 | }, 1207 | { 1208 | "decimals": null, 1209 | "format": "bps", 1210 | "label": "Net monthly sum", 1211 | "logBase": 1, 1212 | "max": null, 1213 | "min": null, 1214 | "show": true 1215 | } 1216 | ], 1217 | "yaxis": { 1218 | "align": true, 1219 | "alignLevel": null 1220 | } 1221 | }, 1222 | { 1223 | "gridPos": { 1224 | "h": 3, 1225 | "w": 12, 1226 | "x": 0, 1227 | "y": 17 1228 | }, 1229 | "id": 326, 1230 | "options": { 1231 | "displayMode": "basic", 1232 | "fieldOptions": { 1233 | "calcs": [ 1234 | "lastNotNull" 1235 | ], 1236 | "defaults": { 1237 | "mappings": [ 1238 | { 1239 | "from": "", 1240 | "id": 1, 1241 | "operator": "", 1242 | "text": "True", 1243 | "to": "", 1244 | "type": 1, 1245 | "value": "1" 1246 | }, 1247 | { 1248 | "from": "", 1249 | "id": 2, 1250 | "operator": "", 1251 | "text": "False", 1252 | "to": "", 1253 | "type": 1, 1254 | "value": "0" 1255 | } 1256 | ], 1257 | "max": 1, 1258 | "min": 0, 1259 | "thresholds": [ 1260 | { 1261 | "color": "red", 1262 | "value": null 1263 | }, 1264 | { 1265 | "color": "green", 1266 | "value": 1 1267 | } 1268 | ] 1269 | }, 1270 | "override": {}, 1271 | "values": false 1272 | }, 1273 | "orientation": "vertical" 1274 | }, 1275 | "pluginVersion": "6.3.3", 1276 | "targets": [ 1277 | { 1278 | "expr": "storj_upToDate_info", 1279 | "legendFormat": "{{instance}}", 1280 | "refId": "A" 1281 | } 1282 | ], 1283 | "timeFrom": null, 1284 | "timeShift": null, 1285 | "title": "Up to date", 1286 | "type": "bargauge" 1287 | }, 1288 | { 1289 | "collapsed": false, 1290 | "gridPos": { 1291 | "h": 1, 1292 | "w": 24, 1293 | "x": 0, 1294 | "y": 20 1295 | }, 1296 | "id": 42, 1297 | "panels": [], 1298 | "repeat": "node", 1299 | "title": "Storj-exporter $node details", 1300 | "type": "row" 1301 | }, 1302 | { 1303 | "cacheTimeout": null, 1304 | "colorBackground": false, 1305 | "colorPrefix": false, 1306 | "colorValue": false, 1307 | "colors": [ 1308 | "#299c46", 1309 | "rgba(237, 129, 40, 0.89)", 1310 | "#d44a3a" 1311 | ], 1312 | "decimals": 2, 1313 | "description": "", 1314 | "format": "currencyUSD", 1315 | "gauge": { 1316 | "maxValue": 100, 1317 | "minValue": 0, 1318 | "show": false, 1319 | "thresholdLabels": false, 1320 | "thresholdMarkers": true 1321 | }, 1322 | "gridPos": { 1323 | "h": 4, 1324 | "w": 3, 1325 | "x": 0, 1326 | "y": 21 1327 | }, 1328 | "id": 469, 1329 | "interval": null, 1330 | "links": [], 1331 | "mappingType": 1, 1332 | "mappingTypes": [ 1333 | { 1334 | "name": "value to text", 1335 | "value": 1 1336 | }, 1337 | { 1338 | "name": "range to text", 1339 | "value": 2 1340 | } 1341 | ], 1342 | "maxDataPoints": 100, 1343 | "nullPointMode": "connected", 1344 | "nullText": null, 1345 | "options": {}, 1346 | "pluginVersion": "6.3.3", 1347 | "postfix": "", 1348 | "postfixFontSize": "50%", 1349 | "prefix": "", 1350 | "prefixFontSize": "50%", 1351 | "rangeMaps": [ 1352 | { 1353 | "from": "null", 1354 | "text": "N/A", 1355 | "to": "null" 1356 | } 1357 | ], 1358 | "repeat": null, 1359 | "repeatDirection": "v", 1360 | "sparkline": { 1361 | "fillColor": "rgba(31, 189, 54, 0.18)", 1362 | "full": true, 1363 | "lineColor": "#96D98D", 1364 | "show": true, 1365 | "ymax": null, 1366 | "ymin": null 1367 | }, 1368 | "tableColumn": "", 1369 | "targets": [ 1370 | { 1371 | "expr": "(sum(storj_sat_summary{type=\"storageSummary\",instance=~\"$node.*\"}) / (days_in_month() * 24) * 1.5 / 1000^4) + (sum(storj_sat_month_egress{instance=~\"$node.*\"}) / 1000^4 * 20)", 1372 | "format": "time_series", 1373 | "hide": false, 1374 | "instant": false, 1375 | "intervalFactor": 1, 1376 | "legendFormat": "", 1377 | "refId": "B" 1378 | } 1379 | ], 1380 | "thresholds": "", 1381 | "timeFrom": null, 1382 | "timeShift": null, 1383 | "title": "$node Earnings", 1384 | "type": "singlestat", 1385 | "valueFontSize": "80%", 1386 | "valueMaps": [ 1387 | { 1388 | "op": "=", 1389 | "text": "N/A", 1390 | "value": "null" 1391 | } 1392 | ], 1393 | "valueName": "current" 1394 | }, 1395 | { 1396 | "cacheTimeout": null, 1397 | "colorBackground": false, 1398 | "colorPostfix": false, 1399 | "colorPrefix": false, 1400 | "colorValue": false, 1401 | "colors": [ 1402 | "#299c46", 1403 | "rgb(68, 44, 27)", 1404 | "#d44a3a" 1405 | ], 1406 | "decimals": 1, 1407 | "description": "", 1408 | "format": "decbytes", 1409 | "gauge": { 1410 | "maxValue": 100, 1411 | "minValue": 0, 1412 | "show": false, 1413 | "thresholdLabels": false, 1414 | "thresholdMarkers": true 1415 | }, 1416 | "gridPos": { 1417 | "h": 8, 1418 | "w": 3, 1419 | "x": 3, 1420 | "y": 21 1421 | }, 1422 | "id": 195, 1423 | "interval": null, 1424 | "links": [], 1425 | "mappingType": 1, 1426 | "mappingTypes": [ 1427 | { 1428 | "name": "value to text", 1429 | "value": 1 1430 | }, 1431 | { 1432 | "name": "range to text", 1433 | "value": 2 1434 | } 1435 | ], 1436 | "maxDataPoints": 100, 1437 | "nullPointMode": "connected", 1438 | "nullText": null, 1439 | "options": {}, 1440 | "pluginVersion": "6.3.3", 1441 | "postfix": "", 1442 | "postfixFontSize": "110%", 1443 | "prefix": "", 1444 | "prefixFontSize": "100%", 1445 | "rangeMaps": [ 1446 | { 1447 | "from": "null", 1448 | "text": "N/A", 1449 | "to": "null" 1450 | } 1451 | ], 1452 | "repeat": null, 1453 | "repeatDirection": "v", 1454 | "sparkline": { 1455 | "fillColor": "rgba(103, 189, 31, 0.18)", 1456 | "full": true, 1457 | "lineColor": "#96D98D", 1458 | "show": true, 1459 | "ymax": null, 1460 | "ymin": null 1461 | }, 1462 | "tableColumn": "", 1463 | "targets": [ 1464 | { 1465 | "expr": "storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}", 1466 | "format": "time_series", 1467 | "hide": false, 1468 | "instant": false, 1469 | "intervalFactor": 1, 1470 | "legendFormat": "", 1471 | "refId": "A" 1472 | } 1473 | ], 1474 | "thresholds": "", 1475 | "timeFrom": null, 1476 | "timeShift": null, 1477 | "title": "$node Disk used", 1478 | "type": "singlestat", 1479 | "valueFontSize": "100%", 1480 | "valueMaps": [ 1481 | { 1482 | "op": "=", 1483 | "text": "N/A", 1484 | "value": "null" 1485 | } 1486 | ], 1487 | "valueName": "current" 1488 | }, 1489 | { 1490 | "cacheTimeout": null, 1491 | "description": "", 1492 | "gridPos": { 1493 | "h": 8, 1494 | "w": 3, 1495 | "x": 6, 1496 | "y": 21 1497 | }, 1498 | "id": 193, 1499 | "links": [], 1500 | "options": { 1501 | "displayMode": "lcd", 1502 | "fieldOptions": { 1503 | "calcs": [ 1504 | "lastNotNull" 1505 | ], 1506 | "defaults": { 1507 | "decimals": 2, 1508 | "mappings": [], 1509 | "max": 100, 1510 | "min": 99, 1511 | "thresholds": [ 1512 | { 1513 | "color": "dark-red", 1514 | "value": null 1515 | }, 1516 | { 1517 | "color": "yellow", 1518 | "value": 99.5 1519 | }, 1520 | { 1521 | "color": "light-green", 1522 | "value": 99.8 1523 | } 1524 | ], 1525 | "unit": "percent" 1526 | }, 1527 | "override": {}, 1528 | "values": false 1529 | }, 1530 | "orientation": "horizontal" 1531 | }, 1532 | "pluginVersion": "6.3.3", 1533 | "repeat": null, 1534 | "repeatDirection": "v", 1535 | "targets": [ 1536 | { 1537 | "expr": "storj_sat_uptime{instance=~\"$node.*\",type=\"score\"} * 100", 1538 | "format": "time_series", 1539 | "hide": false, 1540 | "instant": false, 1541 | "intervalFactor": 1, 1542 | "legendFormat": "{{satellite}}", 1543 | "refId": "A" 1544 | } 1545 | ], 1546 | "timeFrom": null, 1547 | "timeShift": null, 1548 | "title": "$node Uptime score (* 100)", 1549 | "type": "bargauge" 1550 | }, 1551 | { 1552 | "cacheTimeout": null, 1553 | "description": "", 1554 | "gridPos": { 1555 | "h": 4, 1556 | "w": 3, 1557 | "x": 9, 1558 | "y": 21 1559 | }, 1560 | "id": 192, 1561 | "links": [], 1562 | "options": { 1563 | "displayMode": "lcd", 1564 | "fieldOptions": { 1565 | "calcs": [ 1566 | "lastNotNull" 1567 | ], 1568 | "defaults": { 1569 | "decimals": 2, 1570 | "mappings": [], 1571 | "max": 100, 1572 | "min": 99, 1573 | "thresholds": [ 1574 | { 1575 | "color": "dark-red", 1576 | "value": null 1577 | }, 1578 | { 1579 | "color": "#EAB839", 1580 | "value": 99.5 1581 | }, 1582 | { 1583 | "color": "semi-dark-green", 1584 | "value": 99.8 1585 | } 1586 | ], 1587 | "unit": "percent" 1588 | }, 1589 | "override": {}, 1590 | "values": false 1591 | }, 1592 | "orientation": "horizontal" 1593 | }, 1594 | "pluginVersion": "6.3.3", 1595 | "repeat": null, 1596 | "repeatDirection": "v", 1597 | "targets": [ 1598 | { 1599 | "expr": "storj_sat_audit{type=~\"score|auditScore\",instance=~\"$node.*\"} * 100", 1600 | "format": "time_series", 1601 | "hide": false, 1602 | "instant": false, 1603 | "intervalFactor": 1, 1604 | "legendFormat": "{{satellite}}", 1605 | "refId": "A" 1606 | } 1607 | ], 1608 | "timeFrom": null, 1609 | "timeShift": null, 1610 | "title": "$node Audit score (* 100)", 1611 | "type": "bargauge" 1612 | }, 1613 | { 1614 | "aliasColors": {}, 1615 | "bars": false, 1616 | "dashLength": 10, 1617 | "dashes": false, 1618 | "decimals": null, 1619 | "description": "", 1620 | "fill": 6, 1621 | "fillGradient": 0, 1622 | "gridPos": { 1623 | "h": 4, 1624 | "w": 12, 1625 | "x": 12, 1626 | "y": 21 1627 | }, 1628 | "id": 393, 1629 | "interval": "", 1630 | "legend": { 1631 | "alignAsTable": false, 1632 | "avg": false, 1633 | "current": false, 1634 | "max": false, 1635 | "min": false, 1636 | "rightSide": true, 1637 | "show": false, 1638 | "sideWidth": null, 1639 | "total": false, 1640 | "values": false 1641 | }, 1642 | "lines": true, 1643 | "linewidth": 1, 1644 | "nullPointMode": "null", 1645 | "options": { 1646 | "dataLinks": [] 1647 | }, 1648 | "percentage": false, 1649 | "pluginVersion": "6.3.3", 1650 | "pointradius": 2, 1651 | "points": false, 1652 | "renderer": "flot", 1653 | "repeat": null, 1654 | "repeatDirection": "v", 1655 | "seriesOverrides": [ 1656 | { 1657 | "alias": "/RateOut/", 1658 | "stack": "A", 1659 | "yaxis": 2 1660 | }, 1661 | { 1662 | "alias": "/RateIn/", 1663 | "stack": "B", 1664 | "transform": "negative-Y", 1665 | "yaxis": 2 1666 | }, 1667 | { 1668 | "alias": "/SumOut/", 1669 | "fill": 2, 1670 | "legend": false, 1671 | "linewidth": 0, 1672 | "stack": "C" 1673 | }, 1674 | { 1675 | "alias": "/SumIn/", 1676 | "fill": 2, 1677 | "legend": false, 1678 | "linewidth": 0, 1679 | "stack": "D", 1680 | "transform": "negative-Y" 1681 | } 1682 | ], 1683 | "spaceLength": 10, 1684 | "stack": false, 1685 | "steppedLine": false, 1686 | "targets": [ 1687 | { 1688 | "expr": "sum(rate(storj_sat_month_egress{instance=~\"$node.*\"}[5m])) * 8", 1689 | "format": "time_series", 1690 | "hide": false, 1691 | "instant": false, 1692 | "intervalFactor": 4, 1693 | "legendFormat": "RateOut {{instance}}", 1694 | "refId": "A" 1695 | }, 1696 | { 1697 | "expr": "sum(rate(storj_sat_month_ingress{instance=~\"$node.*\"}[5m])) * 8", 1698 | "hide": false, 1699 | "intervalFactor": 4, 1700 | "legendFormat": "RateIn {{instance}}", 1701 | "refId": "B" 1702 | }, 1703 | { 1704 | "expr": "sum(storj_sat_month_egress{instance=~\"$node.*\"})", 1705 | "format": "time_series", 1706 | "hide": false, 1707 | "instant": false, 1708 | "intervalFactor": 1, 1709 | "legendFormat": "SumOut {{instance}}", 1710 | "refId": "C" 1711 | }, 1712 | { 1713 | "expr": "sum(storj_sat_month_ingress{instance=~\"$node.*\"})", 1714 | "format": "time_series", 1715 | "hide": false, 1716 | "legendFormat": "SumIn {{instance}}", 1717 | "refId": "D" 1718 | } 1719 | ], 1720 | "thresholds": [], 1721 | "timeFrom": null, 1722 | "timeRegions": [], 1723 | "timeShift": null, 1724 | "title": "$node Net IO/sum", 1725 | "tooltip": { 1726 | "shared": true, 1727 | "sort": 2, 1728 | "value_type": "individual" 1729 | }, 1730 | "type": "graph", 1731 | "xaxis": { 1732 | "buckets": null, 1733 | "mode": "time", 1734 | "name": null, 1735 | "show": false, 1736 | "values": [] 1737 | }, 1738 | "yaxes": [ 1739 | { 1740 | "format": "decbytes", 1741 | "label": "Net IO rate", 1742 | "logBase": 1, 1743 | "max": null, 1744 | "min": null, 1745 | "show": true 1746 | }, 1747 | { 1748 | "decimals": null, 1749 | "format": "bps", 1750 | "label": "Net monthly sum", 1751 | "logBase": 1, 1752 | "max": null, 1753 | "min": null, 1754 | "show": true 1755 | } 1756 | ], 1757 | "yaxis": { 1758 | "align": false, 1759 | "alignLevel": null 1760 | } 1761 | }, 1762 | { 1763 | "cacheTimeout": null, 1764 | "colorBackground": false, 1765 | "colorPrefix": false, 1766 | "colorValue": false, 1767 | "colors": [ 1768 | "#299c46", 1769 | "rgba(237, 129, 40, 0.89)", 1770 | "#d44a3a" 1771 | ], 1772 | "decimals": null, 1773 | "description": "", 1774 | "format": "short", 1775 | "gauge": { 1776 | "maxValue": 100, 1777 | "minValue": 0, 1778 | "show": false, 1779 | "thresholdLabels": false, 1780 | "thresholdMarkers": true 1781 | }, 1782 | "gridPos": { 1783 | "h": 4, 1784 | "w": 3, 1785 | "x": 0, 1786 | "y": 25 1787 | }, 1788 | "id": 196, 1789 | "interval": null, 1790 | "links": [], 1791 | "mappingType": 1, 1792 | "mappingTypes": [ 1793 | { 1794 | "name": "value to text", 1795 | "value": 1 1796 | }, 1797 | { 1798 | "name": "range to text", 1799 | "value": 2 1800 | } 1801 | ], 1802 | "maxDataPoints": 100, 1803 | "nullPointMode": "connected", 1804 | "nullText": null, 1805 | "options": {}, 1806 | "pluginVersion": "6.3.3", 1807 | "postfix": "", 1808 | "postfixFontSize": "50%", 1809 | "prefix": "", 1810 | "prefixFontSize": "50%", 1811 | "rangeMaps": [ 1812 | { 1813 | "from": "null", 1814 | "text": "N/A", 1815 | "to": "null" 1816 | } 1817 | ], 1818 | "repeat": null, 1819 | "repeatDirection": "v", 1820 | "sparkline": { 1821 | "fillColor": "rgba(31, 118, 189, 0.18)", 1822 | "full": false, 1823 | "lineColor": "rgb(31, 120, 193)", 1824 | "show": false, 1825 | "ymax": null, 1826 | "ymin": null 1827 | }, 1828 | "tableColumn": "", 1829 | "targets": [ 1830 | { 1831 | "expr": "storj_upToDate_info{instance=~\"$node.*\"}", 1832 | "format": "time_series", 1833 | "hide": false, 1834 | "instant": false, 1835 | "intervalFactor": 1, 1836 | "legendFormat": "{{upToDate}}", 1837 | "refId": "A" 1838 | } 1839 | ], 1840 | "thresholds": "", 1841 | "timeFrom": null, 1842 | "timeShift": null, 1843 | "title": "$node Up to date", 1844 | "type": "singlestat", 1845 | "valueFontSize": "50%", 1846 | "valueMaps": [ 1847 | { 1848 | "op": "=", 1849 | "text": "N/A", 1850 | "value": "null" 1851 | }, 1852 | { 1853 | "op": "=", 1854 | "text": "Up to date", 1855 | "value": "1" 1856 | }, 1857 | { 1858 | "op": "=", 1859 | "text": "Outdated", 1860 | "value": "0" 1861 | } 1862 | ], 1863 | "valueName": "current" 1864 | }, 1865 | { 1866 | "cacheTimeout": null, 1867 | "description": "", 1868 | "gridPos": { 1869 | "h": 4, 1870 | "w": 3, 1871 | "x": 9, 1872 | "y": 25 1873 | }, 1874 | "id": 153, 1875 | "links": [], 1876 | "options": { 1877 | "displayMode": "lcd", 1878 | "fieldOptions": { 1879 | "calcs": [ 1880 | "lastNotNull" 1881 | ], 1882 | "defaults": { 1883 | "mappings": [], 1884 | "max": 105, 1885 | "min": 70, 1886 | "thresholds": [ 1887 | { 1888 | "color": "light-blue", 1889 | "value": null 1890 | }, 1891 | { 1892 | "color": "yellow", 1893 | "value": 90 1894 | }, 1895 | { 1896 | "color": "dark-green", 1897 | "value": 100 1898 | } 1899 | ] 1900 | }, 1901 | "override": {}, 1902 | "values": false 1903 | }, 1904 | "orientation": "horizontal" 1905 | }, 1906 | "pluginVersion": "6.3.3", 1907 | "repeat": null, 1908 | "repeatDirection": "v", 1909 | "targets": [ 1910 | { 1911 | "expr": "storj_sat_audit{type=\"successCount\",instance=~\"$node.*\"}", 1912 | "format": "time_series", 1913 | "hide": false, 1914 | "instant": false, 1915 | "intervalFactor": 1, 1916 | "legendFormat": "{{satellite}}", 1917 | "refId": "A" 1918 | } 1919 | ], 1920 | "timeFrom": null, 1921 | "timeShift": null, 1922 | "title": "$node Vetting", 1923 | "type": "bargauge" 1924 | }, 1925 | { 1926 | "aliasColors": {}, 1927 | "bars": false, 1928 | "dashLength": 10, 1929 | "dashes": false, 1930 | "decimals": null, 1931 | "fill": 6, 1932 | "fillGradient": 0, 1933 | "gridPos": { 1934 | "h": 4, 1935 | "w": 12, 1936 | "x": 12, 1937 | "y": 25 1938 | }, 1939 | "id": 409, 1940 | "interval": "", 1941 | "legend": { 1942 | "alignAsTable": false, 1943 | "avg": false, 1944 | "current": false, 1945 | "max": false, 1946 | "min": false, 1947 | "rightSide": true, 1948 | "show": false, 1949 | "sideWidth": null, 1950 | "total": false, 1951 | "values": false 1952 | }, 1953 | "lines": true, 1954 | "linewidth": 1, 1955 | "nullPointMode": "null", 1956 | "options": { 1957 | "dataLinks": [] 1958 | }, 1959 | "percentage": false, 1960 | "pluginVersion": "6.3.3", 1961 | "pointradius": 2, 1962 | "points": false, 1963 | "renderer": "flot", 1964 | "repeat": null, 1965 | "repeatDirection": "v", 1966 | "seriesOverrides": [ 1967 | { 1968 | "alias": "/DiskRate/", 1969 | "stack": "A", 1970 | "transform": "negative-Y", 1971 | "yaxis": 2 1972 | }, 1973 | { 1974 | "alias": "/DiskSum/", 1975 | "color": "#56A64B", 1976 | "fill": 2, 1977 | "linewidth": 0, 1978 | "stack": "B" 1979 | } 1980 | ], 1981 | "spaceLength": 10, 1982 | "stack": false, 1983 | "steppedLine": false, 1984 | "targets": [ 1985 | { 1986 | "expr": "delta(storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}[5m]) * 8 / 300", 1987 | "format": "time_series", 1988 | "hide": false, 1989 | "instant": false, 1990 | "intervalFactor": 1, 1991 | "legendFormat": "DiskRate {{instance}}", 1992 | "refId": "B" 1993 | }, 1994 | { 1995 | "expr": "storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}", 1996 | "format": "time_series", 1997 | "hide": false, 1998 | "instant": false, 1999 | "intervalFactor": 1, 2000 | "legendFormat": "DiskSum {{instance}}", 2001 | "refId": "D" 2002 | } 2003 | ], 2004 | "thresholds": [], 2005 | "timeFrom": null, 2006 | "timeRegions": [], 2007 | "timeShift": null, 2008 | "title": "$node Storage In/Total", 2009 | "tooltip": { 2010 | "shared": true, 2011 | "sort": 2, 2012 | "value_type": "individual" 2013 | }, 2014 | "type": "graph", 2015 | "xaxis": { 2016 | "buckets": null, 2017 | "mode": "time", 2018 | "name": null, 2019 | "show": false, 2020 | "values": [] 2021 | }, 2022 | "yaxes": [ 2023 | { 2024 | "decimals": 2, 2025 | "format": "decbytes", 2026 | "label": "Storage IO rate", 2027 | "logBase": 1, 2028 | "max": null, 2029 | "min": "0", 2030 | "show": true 2031 | }, 2032 | { 2033 | "decimals": 2, 2034 | "format": "bps", 2035 | "label": "Storage sum", 2036 | "logBase": 1, 2037 | "max": null, 2038 | "min": null, 2039 | "show": true 2040 | } 2041 | ], 2042 | "yaxis": { 2043 | "align": false, 2044 | "alignLevel": null 2045 | } 2046 | } 2047 | ], 2048 | "refresh": "1m", 2049 | "schemaVersion": 19, 2050 | "style": "dark", 2051 | "tags": [ 2052 | "storj", 2053 | "docker", 2054 | "prometheus", 2055 | "exporter" 2056 | ], 2057 | "templating": { 2058 | "list": [ 2059 | { 2060 | "allValue": null, 2061 | "current": {}, 2062 | "datasource": "${DS_PROMETHEUS}", 2063 | "definition": "label_values(storj_nodeID_info, instance)", 2064 | "hide": 0, 2065 | "includeAll": true, 2066 | "label": "Node:", 2067 | "multi": true, 2068 | "name": "node", 2069 | "options": [], 2070 | "query": "label_values(storj_nodeID_info, instance)", 2071 | "refresh": 1, 2072 | "regex": "/.*/", 2073 | "skipUrlSync": false, 2074 | "sort": 1, 2075 | "tagValuesQuery": "", 2076 | "tags": [], 2077 | "tagsQuery": "", 2078 | "type": "query", 2079 | "useTags": false 2080 | } 2081 | ] 2082 | }, 2083 | "time": { 2084 | "from": "now-3h", 2085 | "to": "now" 2086 | }, 2087 | "timepicker": { 2088 | "refresh_intervals": [ 2089 | "5s", 2090 | "10s", 2091 | "30s", 2092 | "1m", 2093 | "5m", 2094 | "15m", 2095 | "30m", 2096 | "1h", 2097 | "2h", 2098 | "1d" 2099 | ] 2100 | }, 2101 | "timezone": "", 2102 | "title": "Storj-Exporter", 2103 | "uid": "teLFQE2Wk", 2104 | "version": 34 2105 | } 2106 | -------------------------------------------------------------------------------- /alternatives/Storj-Exporter-Boom-Table-fmoledina.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [ 3 | { 4 | "name": "DS_PROMETHEUS", 5 | "label": "Prometheus", 6 | "description": "", 7 | "type": "datasource", 8 | "pluginId": "prometheus", 9 | "pluginName": "Prometheus" 10 | } 11 | ], 12 | "__requires": [ 13 | { 14 | "type": "panel", 15 | "id": "bargauge", 16 | "name": "Bar gauge", 17 | "version": "" 18 | }, 19 | { 20 | "type": "grafana", 21 | "id": "grafana", 22 | "name": "Grafana", 23 | "version": "7.2.2" 24 | }, 25 | { 26 | "type": "panel", 27 | "id": "graph", 28 | "name": "Graph", 29 | "version": "" 30 | }, 31 | { 32 | "type": "datasource", 33 | "id": "prometheus", 34 | "name": "Prometheus", 35 | "version": "1.0.0" 36 | }, 37 | { 38 | "type": "panel", 39 | "id": "singlestat", 40 | "name": "Singlestat", 41 | "version": "" 42 | }, 43 | { 44 | "type": "panel", 45 | "id": "yesoreyeram-boomtable-panel", 46 | "name": "Boom Table", 47 | "version": "1.4.0" 48 | } 49 | ], 50 | "annotations": { 51 | "list": [ 52 | { 53 | "$$hashKey": "object:19", 54 | "builtIn": 1, 55 | "datasource": "-- Grafana --", 56 | "enable": true, 57 | "hide": true, 58 | "iconColor": "rgba(0, 211, 255, 1)", 59 | "name": "Annotations & Alerts", 60 | "type": "dashboard" 61 | } 62 | ] 63 | }, 64 | "description": "", 65 | "editable": true, 66 | "gnetId": null, 67 | "graphTooltip": 1, 68 | "id": null, 69 | "iteration": 1603823172236, 70 | "links": [ 71 | { 72 | "icon": "external link", 73 | "tags": [], 74 | "targetBlank": true, 75 | "title": "Storj-Exporter Github page", 76 | "tooltip": "", 77 | "type": "link", 78 | "url": "https://github.com/anclrii/Storj-Exporter" 79 | }, 80 | { 81 | "icon": "question", 82 | "tags": [], 83 | "targetBlank": true, 84 | "title": "Storj-Exporter forum thread", 85 | "type": "link", 86 | "url": "https://forum.storj.io/t/prometheus-storj-exporter/" 87 | }, 88 | { 89 | "icon": "bolt", 90 | "tags": [], 91 | "targetBlank": true, 92 | "title": "Support the project", 93 | "tooltip": "", 94 | "type": "link", 95 | "url": "https://github.com/anclrii/Storj-Exporter#support" 96 | } 97 | ], 98 | "panels": [ 99 | { 100 | "collapsed": false, 101 | "datasource": "${DS_PROMETHEUS}", 102 | "gridPos": { 103 | "h": 1, 104 | "w": 24, 105 | "x": 0, 106 | "y": 0 107 | }, 108 | "id": 295, 109 | "panels": [], 110 | "title": "Combined Storj-exporter summary", 111 | "type": "row" 112 | }, 113 | { 114 | "cacheTimeout": null, 115 | "colorBackground": false, 116 | "colorPrefix": false, 117 | "colorValue": false, 118 | "colors": [ 119 | "#299c46", 120 | "rgba(237, 129, 40, 0.89)", 121 | "#d44a3a" 122 | ], 123 | "datasource": "${DS_PROMETHEUS}", 124 | "decimals": null, 125 | "fieldConfig": { 126 | "defaults": { 127 | "custom": {} 128 | }, 129 | "overrides": [] 130 | }, 131 | "format": "short", 132 | "gauge": { 133 | "maxValue": 100, 134 | "minValue": 0, 135 | "show": false, 136 | "thresholdLabels": false, 137 | "thresholdMarkers": true 138 | }, 139 | "gridPos": { 140 | "h": 3, 141 | "w": 4, 142 | "x": 0, 143 | "y": 1 144 | }, 145 | "id": 330, 146 | "interval": null, 147 | "links": [], 148 | "mappingType": 1, 149 | "mappingTypes": [ 150 | { 151 | "name": "value to text", 152 | "value": 1 153 | }, 154 | { 155 | "name": "range to text", 156 | "value": 2 157 | } 158 | ], 159 | "maxDataPoints": 100, 160 | "nullPointMode": "connected", 161 | "nullText": null, 162 | "pluginVersion": "6.3.3", 163 | "postfix": "", 164 | "postfixFontSize": "50%", 165 | "prefix": "", 166 | "prefixFontSize": "50%", 167 | "rangeMaps": [ 168 | { 169 | "from": "null", 170 | "text": "N/A", 171 | "to": "null" 172 | } 173 | ], 174 | "sparkline": { 175 | "fillColor": "rgba(187, 255, 153, 0.16)", 176 | "full": false, 177 | "lineColor": "#C8F2C2", 178 | "show": true, 179 | "ymax": null, 180 | "ymin": null 181 | }, 182 | "tableColumn": "", 183 | "targets": [ 184 | { 185 | "expr": "count(storj_nodeID_info)", 186 | "format": "time_series", 187 | "hide": false, 188 | "instant": false, 189 | "intervalFactor": 1, 190 | "legendFormat": "Node sum", 191 | "refId": "D" 192 | } 193 | ], 194 | "thresholds": "", 195 | "timeFrom": null, 196 | "timeShift": null, 197 | "title": "Nodes online", 198 | "type": "singlestat", 199 | "valueFontSize": "150%", 200 | "valueMaps": [ 201 | { 202 | "op": "=", 203 | "text": "N/A", 204 | "value": "null" 205 | } 206 | ], 207 | "valueName": "current" 208 | }, 209 | { 210 | "cacheTimeout": null, 211 | "colorBackground": false, 212 | "colorPrefix": false, 213 | "colorValue": false, 214 | "colors": [ 215 | "#299c46", 216 | "rgba(237, 129, 40, 0.89)", 217 | "#d44a3a" 218 | ], 219 | "datasource": "${DS_PROMETHEUS}", 220 | "decimals": 1, 221 | "fieldConfig": { 222 | "defaults": { 223 | "custom": {} 224 | }, 225 | "overrides": [] 226 | }, 227 | "format": "decbytes", 228 | "gauge": { 229 | "maxValue": 100, 230 | "minValue": 0, 231 | "show": false, 232 | "thresholdLabels": false, 233 | "thresholdMarkers": true 234 | }, 235 | "gridPos": { 236 | "h": 3, 237 | "w": 4, 238 | "x": 4, 239 | "y": 1 240 | }, 241 | "id": 329, 242 | "interval": null, 243 | "links": [], 244 | "mappingType": 1, 245 | "mappingTypes": [ 246 | { 247 | "name": "value to text", 248 | "value": 1 249 | }, 250 | { 251 | "name": "range to text", 252 | "value": 2 253 | } 254 | ], 255 | "maxDataPoints": 100, 256 | "nullPointMode": "connected", 257 | "nullText": null, 258 | "pluginVersion": "6.3.3", 259 | "postfix": "", 260 | "postfixFontSize": "50%", 261 | "prefix": "", 262 | "prefixFontSize": "50%", 263 | "rangeMaps": [ 264 | { 265 | "from": "null", 266 | "text": "N/A", 267 | "to": "null" 268 | } 269 | ], 270 | "sparkline": { 271 | "fillColor": "rgb(36, 50, 34)", 272 | "full": true, 273 | "lineColor": "#73BF69", 274 | "show": true, 275 | "ymax": null, 276 | "ymin": null 277 | }, 278 | "tableColumn": "", 279 | "targets": [ 280 | { 281 | "expr": "sum(storj_sat_month_ingress{satellite=~\"^$satellite\"})", 282 | "format": "time_series", 283 | "hide": false, 284 | "instant": false, 285 | "interval": "", 286 | "intervalFactor": 1, 287 | "legendFormat": "Node sum", 288 | "refId": "D" 289 | } 290 | ], 291 | "thresholds": "", 292 | "timeFrom": null, 293 | "timeShift": null, 294 | "title": "Net In total", 295 | "type": "singlestat", 296 | "valueFontSize": "80%", 297 | "valueMaps": [ 298 | { 299 | "op": "=", 300 | "text": "N/A", 301 | "value": "null" 302 | } 303 | ], 304 | "valueName": "current" 305 | }, 306 | { 307 | "activePatternIndex": 6, 308 | "datasource": "${DS_PROMETHEUS}", 309 | "debug_mode": false, 310 | "defaultPattern": { 311 | "bgColors": "green|orange|red", 312 | "bgColors_overrides": "0->green|2->red|1->yellow", 313 | "clickable_cells_link": "", 314 | "col_name": "", 315 | "decimals": 2, 316 | "defaultBGColor": "", 317 | "defaultTextColor": "", 318 | "delimiter": "|", 319 | "displayTemplate": "_value_", 320 | "enable_bgColor": true, 321 | "enable_bgColor_overrides": false, 322 | "enable_clickable_cells": false, 323 | "enable_textColor": false, 324 | "enable_textColor_overrides": false, 325 | "enable_time_based_thresholds": false, 326 | "enable_transform": false, 327 | "enable_transform_overrides": false, 328 | "filter": { 329 | "value_above": "", 330 | "value_below": "" 331 | }, 332 | "format": "short", 333 | "name": "Default Pattern", 334 | "null_color": "darkred", 335 | "null_textcolor": "black", 336 | "null_value": "No data", 337 | "pattern": "*", 338 | "row_col_wrapper": "_", 339 | "row_name": "_series_", 340 | "textColors": "red|orange|green", 341 | "textColors_overrides": "0->red|2->green|1->yellow", 342 | "thresholds": "", 343 | "time_based_thresholds": [], 344 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 345 | "transform_values": "_value_|_value_|_value_", 346 | "transform_values_overrides": "0->down|1->up", 347 | "valueName": "current" 348 | }, 349 | "default_title_for_rows": "Metric", 350 | "fieldConfig": { 351 | "defaults": { 352 | "custom": {} 353 | }, 354 | "overrides": [] 355 | }, 356 | "gridPos": { 357 | "h": 9, 358 | "w": 16, 359 | "x": 8, 360 | "y": 1 361 | }, 362 | "hide_first_column": false, 363 | "hide_headers": false, 364 | "id": 304, 365 | "patterns": [ 366 | { 367 | "bgColors": "green|green|green", 368 | "bgColors_overrides": "0->green|2->red|1->yellow", 369 | "clickable_cells_link": "", 370 | "col_name": "Ingress", 371 | "decimals": 2, 372 | "defaultBGColor": "", 373 | "defaultTextColor": "", 374 | "delimiter": "|", 375 | "displayTemplate": "_value_", 376 | "enable_bgColor": true, 377 | "enable_bgColor_overrides": false, 378 | "enable_clickable_cells": false, 379 | "enable_textColor": false, 380 | "enable_textColor_overrides": false, 381 | "enable_time_based_thresholds": false, 382 | "enable_transform": false, 383 | "enable_transform_overrides": false, 384 | "filter": { 385 | "value_above": "", 386 | "value_below": "" 387 | }, 388 | "format": "decbytes", 389 | "name": "Ingress", 390 | "null_color": "darkred", 391 | "null_textcolor": "black", 392 | "null_value": "No data", 393 | "pattern": "^.*Ingress$", 394 | "row_col_wrapper": "_", 395 | "row_name": "_0_", 396 | "textColors": "red|orange|green", 397 | "textColors_overrides": "0->red|2->green|1->yellow", 398 | "thresholds": "", 399 | "time_based_thresholds": [], 400 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 401 | "transform_values": "_value_|_value_|_value_", 402 | "transform_values_overrides": "0->down|1->up", 403 | "valueName": "current" 404 | }, 405 | { 406 | "bgColors": "green|blue|blue", 407 | "bgColors_overrides": "0->green|2->red|1->yellow", 408 | "clickable_cells_link": "", 409 | "col_name": "Egress", 410 | "decimals": 2, 411 | "defaultBGColor": "", 412 | "defaultTextColor": "", 413 | "delimiter": "|", 414 | "displayTemplate": "_value_", 415 | "enable_bgColor": true, 416 | "enable_bgColor_overrides": false, 417 | "enable_clickable_cells": false, 418 | "enable_textColor": false, 419 | "enable_textColor_overrides": false, 420 | "enable_time_based_thresholds": false, 421 | "enable_transform": false, 422 | "enable_transform_overrides": false, 423 | "filter": { 424 | "value_above": "", 425 | "value_below": "" 426 | }, 427 | "format": "decbytes", 428 | "name": "Egress", 429 | "null_color": "darkred", 430 | "null_textcolor": "black", 431 | "null_value": "No data", 432 | "pattern": "^.*Egress$", 433 | "row_col_wrapper": "_", 434 | "row_name": "_0_", 435 | "textColors": "red|orange|green", 436 | "textColors_overrides": "0->red|2->green|1->yellow", 437 | "thresholds": "", 438 | "time_based_thresholds": [], 439 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 440 | "transform_values": "_value_|_value_|_value_", 441 | "transform_values_overrides": "0->down|1->up", 442 | "valueName": "current" 443 | }, 444 | { 445 | "bgColors": "", 446 | "bgColors_overrides": "0->green|2->red|1->yellow", 447 | "clickable_cells_link": "", 448 | "col_name": "Disk Available", 449 | "decimals": 2, 450 | "defaultBGColor": "", 451 | "defaultTextColor": "", 452 | "delimiter": "|", 453 | "displayTemplate": "_value_", 454 | "enable_bgColor": true, 455 | "enable_bgColor_overrides": false, 456 | "enable_clickable_cells": false, 457 | "enable_textColor": false, 458 | "enable_textColor_overrides": false, 459 | "enable_time_based_thresholds": false, 460 | "enable_transform": false, 461 | "enable_transform_overrides": false, 462 | "filter": { 463 | "value_above": "", 464 | "value_below": "" 465 | }, 466 | "format": "decbytes", 467 | "name": "Disk available", 468 | "null_color": "darkred", 469 | "null_textcolor": "black", 470 | "null_value": "No data", 471 | "pattern": "^.*Disk available$", 472 | "row_col_wrapper": "_", 473 | "row_name": "_0_", 474 | "textColors": "red|orange|green", 475 | "textColors_overrides": "0->red|2->green|1->yellow", 476 | "thresholds": "", 477 | "time_based_thresholds": [], 478 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 479 | "transform_values": "_value_|_value_|_value_", 480 | "transform_values_overrides": "0->down|1->up", 481 | "valueName": "current" 482 | }, 483 | { 484 | "bgColors": "green|green|green", 485 | "bgColors_overrides": "0->green|2->red|1->yellow", 486 | "clickable_cells_link": "", 487 | "col_name": "Disk Used", 488 | "decimals": 2, 489 | "defaultBGColor": "", 490 | "defaultTextColor": "", 491 | "delimiter": "|", 492 | "displayTemplate": "_value_", 493 | "enable_bgColor": true, 494 | "enable_bgColor_overrides": false, 495 | "enable_clickable_cells": false, 496 | "enable_textColor": false, 497 | "enable_textColor_overrides": false, 498 | "enable_time_based_thresholds": false, 499 | "enable_transform": false, 500 | "enable_transform_overrides": false, 501 | "filter": { 502 | "value_above": "", 503 | "value_below": "" 504 | }, 505 | "format": "decbytes", 506 | "name": "Disk used", 507 | "null_color": "darkred", 508 | "null_textcolor": "black", 509 | "null_value": "No data", 510 | "pattern": "^.*Disk used$", 511 | "row_col_wrapper": "_", 512 | "row_name": "_0_", 513 | "textColors": "red|orange|green", 514 | "textColors_overrides": "0->red|2->green|1->yellow", 515 | "thresholds": "", 516 | "time_based_thresholds": [], 517 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 518 | "transform_values": "_value_|_value_|_value_", 519 | "transform_values_overrides": "0->down|1->up", 520 | "valueName": "current" 521 | }, 522 | { 523 | "bgColors": "red|orange|green", 524 | "bgColors_overrides": "0->green|2->red|1->yellow", 525 | "clickable_cells_link": "", 526 | "col_name": "Online", 527 | "decimals": 2, 528 | "defaultBGColor": "", 529 | "defaultTextColor": "", 530 | "delimiter": "|", 531 | "displayTemplate": "_value_", 532 | "enable_bgColor": false, 533 | "enable_bgColor_overrides": false, 534 | "enable_clickable_cells": false, 535 | "enable_textColor": true, 536 | "enable_textColor_overrides": false, 537 | "enable_time_based_thresholds": false, 538 | "enable_transform": false, 539 | "enable_transform_overrides": false, 540 | "filter": { 541 | "value_above": "", 542 | "value_below": "" 543 | }, 544 | "format": "percent", 545 | "name": "Online", 546 | "null_color": "darkred", 547 | "null_textcolor": "black", 548 | "null_value": "No data", 549 | "pattern": "^.*Online$", 550 | "row_col_wrapper": "_", 551 | "row_name": "_0_", 552 | "textColors": "red|orange|green", 553 | "textColors_overrides": "0->red|2->green|1->yellow", 554 | "thresholds": "99.5,99.8", 555 | "time_based_thresholds": [], 556 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 557 | "transform_values": "_value_|_value_|_value_", 558 | "transform_values_overrides": "0->down|1->up", 559 | "valueName": "current" 560 | }, 561 | { 562 | "bgColors": "red|orange|green", 563 | "bgColors_overrides": "1->green|0->red|2->yellow", 564 | "clickable_cells_link": "", 565 | "col_name": "UpToDate", 566 | "decimals": "0", 567 | "defaultBGColor": "", 568 | "defaultTextColor": "", 569 | "delimiter": "|", 570 | "displayTemplate": "_value_", 571 | "enable_bgColor": false, 572 | "enable_bgColor_overrides": false, 573 | "enable_clickable_cells": false, 574 | "enable_textColor": true, 575 | "enable_textColor_overrides": true, 576 | "enable_time_based_thresholds": false, 577 | "enable_transform": false, 578 | "enable_transform_overrides": true, 579 | "filter": { 580 | "value_above": "", 581 | "value_below": "" 582 | }, 583 | "format": "short", 584 | "name": "UpToDate", 585 | "null_color": "darkred", 586 | "null_textcolor": "black", 587 | "null_value": "2", 588 | "pattern": "^.*UpToDate$", 589 | "row_col_wrapper": "_", 590 | "row_name": "_0_", 591 | "textColors": "orange|red|green", 592 | "textColors_overrides": "0->red|1->green|2->yellow", 593 | "thresholds": "0,1", 594 | "time_based_thresholds": [], 595 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 596 | "transform_values": "_value_|Outdated|OK", 597 | "transform_values_overrides": "[0|null]->outdated|1->OK", 598 | "valueName": "current" 599 | }, 600 | { 601 | "bgColors": "red|orange|green", 602 | "bgColors_overrides": "0->green|2->red|1->yellow", 603 | "clickable_cells_link": "", 604 | "col_name": "Audit", 605 | "decimals": 2, 606 | "defaultBGColor": "", 607 | "defaultTextColor": "", 608 | "delimiter": "|", 609 | "displayTemplate": "_value_", 610 | "enable_bgColor": false, 611 | "enable_bgColor_overrides": false, 612 | "enable_clickable_cells": false, 613 | "enable_textColor": true, 614 | "enable_textColor_overrides": false, 615 | "enable_time_based_thresholds": false, 616 | "enable_transform": false, 617 | "enable_transform_overrides": false, 618 | "filter": { 619 | "value_above": "", 620 | "value_below": "" 621 | }, 622 | "format": "percent", 623 | "name": "Audit", 624 | "null_color": "darkred", 625 | "null_textcolor": "black", 626 | "null_value": "No data", 627 | "pattern": "^.*Audit$", 628 | "row_col_wrapper": "_", 629 | "row_name": "_0_", 630 | "textColors": "red|orange|green", 631 | "textColors_overrides": "0->red|2->green|1->yellow", 632 | "thresholds": "99.5,99.8", 633 | "time_based_thresholds": [], 634 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 635 | "transform_values": "_value_|_value_|_value_", 636 | "transform_values_overrides": "0->down|1->up", 637 | "valueName": "current" 638 | }, 639 | { 640 | "bgColors": "", 641 | "bgColors_overrides": "0->green|2->red|1->yellow", 642 | "clickable_cells_link": "", 643 | "col_name": "Earnings", 644 | "decimals": 2, 645 | "defaultBGColor": "", 646 | "defaultTextColor": "", 647 | "delimiter": "|", 648 | "disabled": false, 649 | "displayTemplate": "_value_", 650 | "enable_bgColor": true, 651 | "enable_bgColor_overrides": false, 652 | "enable_clickable_cells": false, 653 | "enable_textColor": false, 654 | "enable_textColor_overrides": false, 655 | "enable_time_based_thresholds": false, 656 | "enable_transform": false, 657 | "enable_transform_overrides": false, 658 | "filter": { 659 | "value_above": "", 660 | "value_below": "" 661 | }, 662 | "format": "currencyUSD", 663 | "name": "Earnings", 664 | "null_color": "darkred", 665 | "null_textcolor": "black", 666 | "null_value": "No data", 667 | "pattern": "^.*Earnings$", 668 | "row_col_wrapper": "_", 669 | "row_name": "_0_", 670 | "textColors": "red|orange|green", 671 | "textColors_overrides": "0->red|2->green|1->yellow", 672 | "thresholds": "", 673 | "time_based_thresholds": [], 674 | "tooltipTemplate": "Series : _series_
Row Name : _row_name_
Col Name : _col_name_
Value : _value_", 675 | "transform_values": "_value_|_value_|_value_", 676 | "transform_values_overrides": "0->down|1->up", 677 | "valueName": "current" 678 | } 679 | ], 680 | "pluginVersion": "6.3.3", 681 | "row_col_wrapper": "_", 682 | "sorting_props": { 683 | "col_index": -1, 684 | "direction": "desc" 685 | }, 686 | "targets": [ 687 | { 688 | "expr": "sum(storj_sat_month_egress{satellite=~\"^$satellite\"}) by(instance)", 689 | "format": "time_series", 690 | "hide": false, 691 | "instant": false, 692 | "interval": "", 693 | "intervalFactor": 1, 694 | "legendFormat": "{{instance}} | Egress", 695 | "refId": "A" 696 | }, 697 | { 698 | "expr": "sum(storj_sat_month_ingress{satellite=~\"^$satellite\"}) by(instance)", 699 | "format": "time_series", 700 | "hide": false, 701 | "interval": "", 702 | "legendFormat": "{{instance}} | Ingress", 703 | "refId": "B" 704 | }, 705 | { 706 | "expr": "avg(storj_sat_summary{type=\"onlineScore\",satellite=~\"^$satellite\"} or storj_sat_audit{type=\"onlineScore\", satellite=~\"^$satellite\"}) by(instance) * 100", 707 | "hide": false, 708 | "interval": "", 709 | "legendFormat": "{{instance}} | Online", 710 | "refId": "C" 711 | }, 712 | { 713 | "expr": "avg(storj_sat_audit{type=~\"score|auditScore\",satellite=~\"^$satellite\"}) by(instance) * 100", 714 | "hide": false, 715 | "interval": "", 716 | "legendFormat": "{{instance}} | Audit", 717 | "refId": "D" 718 | }, 719 | { 720 | "expr": "sum(storj_total_diskspace{type=\"used\"}) by(instance)", 721 | "hide": false, 722 | "interval": "", 723 | "legendFormat": "{{instance}} | Disk used", 724 | "refId": "E" 725 | }, 726 | { 727 | "expr": "sum(storj_total_diskspace{type=\"available\"}) by(instance)", 728 | "hide": false, 729 | "interval": "", 730 | "legendFormat": "{{instance}} | Disk available", 731 | "refId": "G" 732 | }, 733 | { 734 | "expr": "storj_upToDate_info", 735 | "hide": false, 736 | "legendFormat": "{{instance}} | UpToDate", 737 | "refId": "F" 738 | }, 739 | { 740 | "expr": "(sum(storj_sat_summary{type=\"storageSummary\",satellite=~\"^$satellite\"}) by(instance) / (30 * 24) * 1.5 / 1000^4) + (sum(storj_sat_month_egress{satellite=~\"^$satellite\"}) by(instance) / 1000^4 * 20)", 741 | "interval": "", 742 | "legendFormat": "{{instance}} | Earnings", 743 | "refId": "H" 744 | } 745 | ], 746 | "text_alignment_firstcolumn": "right", 747 | "timeFrom": null, 748 | "timeShift": null, 749 | "title": "Monthly Summary", 750 | "type": "yesoreyeram-boomtable-panel" 751 | }, 752 | { 753 | "cacheTimeout": null, 754 | "colorBackground": false, 755 | "colorPostfix": false, 756 | "colorValue": false, 757 | "colors": [ 758 | "#299c46", 759 | "#FA6400", 760 | "#d44a3a" 761 | ], 762 | "datasource": "${DS_PROMETHEUS}", 763 | "decimals": 2, 764 | "fieldConfig": { 765 | "defaults": { 766 | "custom": {} 767 | }, 768 | "overrides": [] 769 | }, 770 | "format": "currencyUSD", 771 | "gauge": { 772 | "maxValue": 100, 773 | "minValue": 0, 774 | "show": false, 775 | "thresholdLabels": false, 776 | "thresholdMarkers": true 777 | }, 778 | "gridPos": { 779 | "h": 3, 780 | "w": 4, 781 | "x": 0, 782 | "y": 4 783 | }, 784 | "id": 506, 785 | "interval": null, 786 | "links": [], 787 | "mappingType": 1, 788 | "mappingTypes": [ 789 | { 790 | "name": "value to text", 791 | "value": 1 792 | }, 793 | { 794 | "name": "range to text", 795 | "value": 2 796 | } 797 | ], 798 | "maxDataPoints": 100, 799 | "nullPointMode": "connected", 800 | "nullText": null, 801 | "pluginVersion": "6.3.3", 802 | "postfix": "", 803 | "postfixFontSize": "50%", 804 | "prefix": "", 805 | "prefixFontSize": "50%", 806 | "rangeMaps": [ 807 | { 808 | "from": "null", 809 | "text": "N/A", 810 | "to": "null" 811 | } 812 | ], 813 | "sparkline": { 814 | "fillColor": "rgba(20, 217, 28, 0.08)", 815 | "full": true, 816 | "lineColor": "#56A64B", 817 | "show": true, 818 | "ymax": null, 819 | "ymin": null 820 | }, 821 | "tableColumn": "", 822 | "targets": [ 823 | { 824 | "expr": "(sum(storj_sat_day_egress{satellite=~\"^$satellite\"}) / 1000^4 * 20)", 825 | "hide": false, 826 | "interval": "", 827 | "legendFormat": "", 828 | "refId": "A" 829 | } 830 | ], 831 | "thresholds": "", 832 | "timeFrom": null, 833 | "timeShift": null, 834 | "title": "Earnings total day", 835 | "type": "singlestat", 836 | "valueFontSize": "100%", 837 | "valueMaps": [ 838 | { 839 | "op": "=", 840 | "text": "N/A", 841 | "value": "null" 842 | } 843 | ], 844 | "valueName": "current" 845 | }, 846 | { 847 | "cacheTimeout": null, 848 | "colorBackground": false, 849 | "colorPrefix": false, 850 | "colorValue": false, 851 | "colors": [ 852 | "#299c46", 853 | "rgba(237, 129, 40, 0.89)", 854 | "#d44a3a" 855 | ], 856 | "datasource": "${DS_PROMETHEUS}", 857 | "decimals": 1, 858 | "fieldConfig": { 859 | "defaults": { 860 | "custom": {} 861 | }, 862 | "overrides": [] 863 | }, 864 | "format": "decbytes", 865 | "gauge": { 866 | "maxValue": 100, 867 | "minValue": 0, 868 | "show": false, 869 | "thresholdLabels": false, 870 | "thresholdMarkers": true 871 | }, 872 | "gridPos": { 873 | "h": 3, 874 | "w": 4, 875 | "x": 4, 876 | "y": 4 877 | }, 878 | "id": 328, 879 | "interval": null, 880 | "links": [], 881 | "mappingType": 1, 882 | "mappingTypes": [ 883 | { 884 | "name": "value to text", 885 | "value": 1 886 | }, 887 | { 888 | "name": "range to text", 889 | "value": 2 890 | } 891 | ], 892 | "maxDataPoints": 100, 893 | "nullPointMode": "connected", 894 | "nullText": null, 895 | "pluginVersion": "6.3.3", 896 | "postfix": "", 897 | "postfixFontSize": "50%", 898 | "prefix": "", 899 | "prefixFontSize": "50%", 900 | "rangeMaps": [ 901 | { 902 | "from": "null", 903 | "text": "N/A", 904 | "to": "null" 905 | } 906 | ], 907 | "sparkline": { 908 | "fillColor": "rgb(34, 40, 50)", 909 | "full": true, 910 | "lineColor": "#5794F2", 911 | "show": true, 912 | "ymax": null, 913 | "ymin": null 914 | }, 915 | "tableColumn": "", 916 | "targets": [ 917 | { 918 | "expr": "sum(storj_sat_month_egress{satellite=~\"^$satellite\"})", 919 | "format": "time_series", 920 | "hide": false, 921 | "instant": false, 922 | "interval": "", 923 | "intervalFactor": 1, 924 | "legendFormat": "Node sum", 925 | "refId": "D" 926 | } 927 | ], 928 | "thresholds": "", 929 | "timeFrom": null, 930 | "timeShift": null, 931 | "title": "Net Out total", 932 | "type": "singlestat", 933 | "valueFontSize": "80%", 934 | "valueMaps": [ 935 | { 936 | "op": "=", 937 | "text": "N/A", 938 | "value": "null" 939 | } 940 | ], 941 | "valueName": "current" 942 | }, 943 | { 944 | "cacheTimeout": null, 945 | "colorBackground": false, 946 | "colorPostfix": false, 947 | "colorValue": false, 948 | "colors": [ 949 | "#299c46", 950 | "#FA6400", 951 | "#d44a3a" 952 | ], 953 | "datasource": "${DS_PROMETHEUS}", 954 | "decimals": 2, 955 | "fieldConfig": { 956 | "defaults": { 957 | "custom": {} 958 | }, 959 | "overrides": [] 960 | }, 961 | "format": "currencyUSD", 962 | "gauge": { 963 | "maxValue": 100, 964 | "minValue": 0, 965 | "show": false, 966 | "thresholdLabels": false, 967 | "thresholdMarkers": true 968 | }, 969 | "gridPos": { 970 | "h": 3, 971 | "w": 4, 972 | "x": 0, 973 | "y": 7 974 | }, 975 | "id": 468, 976 | "interval": null, 977 | "links": [], 978 | "mappingType": 1, 979 | "mappingTypes": [ 980 | { 981 | "name": "value to text", 982 | "value": 1 983 | }, 984 | { 985 | "name": "range to text", 986 | "value": 2 987 | } 988 | ], 989 | "maxDataPoints": 100, 990 | "nullPointMode": "connected", 991 | "nullText": null, 992 | "pluginVersion": "6.3.3", 993 | "postfix": "", 994 | "postfixFontSize": "50%", 995 | "prefix": "", 996 | "prefixFontSize": "50%", 997 | "rangeMaps": [ 998 | { 999 | "from": "null", 1000 | "text": "N/A", 1001 | "to": "null" 1002 | } 1003 | ], 1004 | "sparkline": { 1005 | "fillColor": "rgba(20, 217, 28, 0.08)", 1006 | "full": true, 1007 | "lineColor": "#56A64B", 1008 | "show": true, 1009 | "ymax": null, 1010 | "ymin": null 1011 | }, 1012 | "tableColumn": "", 1013 | "targets": [ 1014 | { 1015 | "expr": "(sum(storj_sat_summary{type=\"storageSummary\",satellite=~\"^$satellite\"}) / (30 * 24) * 1.5 / 1000^4) + (sum(storj_sat_month_egress{satellite=~\"^$satellite\"}) / 1000^4 * 20)", 1016 | "interval": "", 1017 | "legendFormat": "", 1018 | "refId": "A" 1019 | } 1020 | ], 1021 | "thresholds": "", 1022 | "timeFrom": null, 1023 | "timeShift": null, 1024 | "title": "Earnings total month", 1025 | "type": "singlestat", 1026 | "valueFontSize": "100%", 1027 | "valueMaps": [ 1028 | { 1029 | "op": "=", 1030 | "text": "N/A", 1031 | "value": "null" 1032 | } 1033 | ], 1034 | "valueName": "current" 1035 | }, 1036 | { 1037 | "cacheTimeout": null, 1038 | "colorBackground": false, 1039 | "colorPrefix": false, 1040 | "colorValue": false, 1041 | "colors": [ 1042 | "#299c46", 1043 | "rgba(237, 129, 40, 0.89)", 1044 | "#d44a3a" 1045 | ], 1046 | "datasource": "${DS_PROMETHEUS}", 1047 | "decimals": 1, 1048 | "fieldConfig": { 1049 | "defaults": { 1050 | "custom": {} 1051 | }, 1052 | "overrides": [] 1053 | }, 1054 | "format": "decbytes", 1055 | "gauge": { 1056 | "maxValue": 100, 1057 | "minValue": 0, 1058 | "show": false, 1059 | "thresholdLabels": false, 1060 | "thresholdMarkers": true 1061 | }, 1062 | "gridPos": { 1063 | "h": 3, 1064 | "w": 4, 1065 | "x": 4, 1066 | "y": 7 1067 | }, 1068 | "id": 302, 1069 | "interval": null, 1070 | "links": [], 1071 | "mappingType": 1, 1072 | "mappingTypes": [ 1073 | { 1074 | "name": "value to text", 1075 | "value": 1 1076 | }, 1077 | { 1078 | "name": "range to text", 1079 | "value": 2 1080 | } 1081 | ], 1082 | "maxDataPoints": 100, 1083 | "nullPointMode": "connected", 1084 | "nullText": null, 1085 | "pluginVersion": "6.3.3", 1086 | "postfix": "", 1087 | "postfixFontSize": "50%", 1088 | "prefix": "", 1089 | "prefixFontSize": "50%", 1090 | "rangeMaps": [ 1091 | { 1092 | "from": "null", 1093 | "text": "N/A", 1094 | "to": "null" 1095 | } 1096 | ], 1097 | "sparkline": { 1098 | "fillColor": "rgb(36, 50, 34)", 1099 | "full": true, 1100 | "lineColor": "#73BF69", 1101 | "show": true, 1102 | "ymax": null, 1103 | "ymin": null 1104 | }, 1105 | "tableColumn": "", 1106 | "targets": [ 1107 | { 1108 | "expr": "sum(storj_total_diskspace{type=\"used\"})", 1109 | "format": "time_series", 1110 | "hide": false, 1111 | "instant": false, 1112 | "interval": "", 1113 | "intervalFactor": 1, 1114 | "legendFormat": "Node sum", 1115 | "refId": "D" 1116 | } 1117 | ], 1118 | "thresholds": "", 1119 | "timeFrom": null, 1120 | "timeShift": null, 1121 | "title": "Storage total", 1122 | "type": "singlestat", 1123 | "valueFontSize": "80%", 1124 | "valueMaps": [ 1125 | { 1126 | "op": "=", 1127 | "text": "N/A", 1128 | "value": "null" 1129 | } 1130 | ], 1131 | "valueName": "current" 1132 | }, 1133 | { 1134 | "aliasColors": {}, 1135 | "bars": false, 1136 | "dashLength": 10, 1137 | "dashes": false, 1138 | "datasource": "${DS_PROMETHEUS}", 1139 | "decimals": null, 1140 | "fieldConfig": { 1141 | "defaults": { 1142 | "custom": {}, 1143 | "links": [] 1144 | }, 1145 | "overrides": [] 1146 | }, 1147 | "fill": 6, 1148 | "fillGradient": 0, 1149 | "gridPos": { 1150 | "h": 7, 1151 | "w": 24, 1152 | "x": 0, 1153 | "y": 10 1154 | }, 1155 | "hiddenSeries": false, 1156 | "id": 298, 1157 | "interval": "", 1158 | "legend": { 1159 | "alignAsTable": false, 1160 | "avg": false, 1161 | "current": false, 1162 | "max": false, 1163 | "min": false, 1164 | "rightSide": false, 1165 | "show": true, 1166 | "sideWidth": null, 1167 | "total": false, 1168 | "values": false 1169 | }, 1170 | "lines": true, 1171 | "linewidth": 1, 1172 | "nullPointMode": "null", 1173 | "options": { 1174 | "alertThreshold": true 1175 | }, 1176 | "percentage": false, 1177 | "pluginVersion": "7.2.2", 1178 | "pointradius": 2, 1179 | "points": false, 1180 | "renderer": "flot", 1181 | "seriesOverrides": [ 1182 | { 1183 | "$$hashKey": "object:1563", 1184 | "alias": "/DiskRate/", 1185 | "linewidth": 1, 1186 | "stack": "A", 1187 | "yaxis": 2 1188 | }, 1189 | { 1190 | "$$hashKey": "object:1564", 1191 | "alias": "/DiskSum/", 1192 | "color": "#37872D", 1193 | "fill": 2, 1194 | "linewidth": 0, 1195 | "stack": "B" 1196 | } 1197 | ], 1198 | "spaceLength": 10, 1199 | "stack": false, 1200 | "steppedLine": false, 1201 | "targets": [ 1202 | { 1203 | "expr": "sum(storj_total_diskspace{type=\"used\"}) by(instance)", 1204 | "format": "time_series", 1205 | "hide": false, 1206 | "instant": false, 1207 | "interval": "", 1208 | "intervalFactor": 1, 1209 | "legendFormat": "DiskSum {{instance}}", 1210 | "refId": "D" 1211 | }, 1212 | { 1213 | "expr": "sum(delta(storj_total_diskspace{type=\"used\"}[5m])) by(instance) * 8 / 300", 1214 | "format": "time_series", 1215 | "hide": false, 1216 | "instant": false, 1217 | "interval": "", 1218 | "intervalFactor": 4, 1219 | "legendFormat": "DiskRate {{instance}}", 1220 | "refId": "B" 1221 | } 1222 | ], 1223 | "thresholds": [], 1224 | "timeFrom": null, 1225 | "timeRegions": [], 1226 | "timeShift": null, 1227 | "title": "Storage Used by node", 1228 | "tooltip": { 1229 | "shared": true, 1230 | "sort": 2, 1231 | "value_type": "individual" 1232 | }, 1233 | "type": "graph", 1234 | "xaxis": { 1235 | "buckets": null, 1236 | "mode": "time", 1237 | "name": null, 1238 | "show": false, 1239 | "values": [] 1240 | }, 1241 | "yaxes": [ 1242 | { 1243 | "$$hashKey": "object:1599", 1244 | "decimals": 2, 1245 | "format": "decbytes", 1246 | "label": "Storage sum", 1247 | "logBase": 1, 1248 | "max": null, 1249 | "min": "0", 1250 | "show": true 1251 | }, 1252 | { 1253 | "$$hashKey": "object:1600", 1254 | "decimals": 2, 1255 | "format": "bps", 1256 | "label": "Net I/O rate", 1257 | "logBase": 1, 1258 | "max": null, 1259 | "min": null, 1260 | "show": true 1261 | } 1262 | ], 1263 | "yaxis": { 1264 | "align": true, 1265 | "alignLevel": null 1266 | } 1267 | }, 1268 | { 1269 | "aliasColors": {}, 1270 | "bars": false, 1271 | "dashLength": 10, 1272 | "dashes": false, 1273 | "datasource": "${DS_PROMETHEUS}", 1274 | "decimals": null, 1275 | "fieldConfig": { 1276 | "defaults": { 1277 | "custom": {}, 1278 | "links": [] 1279 | }, 1280 | "overrides": [] 1281 | }, 1282 | "fill": 6, 1283 | "fillGradient": 0, 1284 | "gridPos": { 1285 | "h": 6, 1286 | "w": 12, 1287 | "x": 0, 1288 | "y": 17 1289 | }, 1290 | "hiddenSeries": false, 1291 | "id": 297, 1292 | "interval": "", 1293 | "legend": { 1294 | "alignAsTable": false, 1295 | "avg": false, 1296 | "current": false, 1297 | "max": false, 1298 | "min": false, 1299 | "rightSide": false, 1300 | "show": true, 1301 | "sideWidth": null, 1302 | "total": false, 1303 | "values": false 1304 | }, 1305 | "lines": true, 1306 | "linewidth": 1, 1307 | "nullPointMode": "null", 1308 | "options": { 1309 | "alertThreshold": true 1310 | }, 1311 | "percentage": false, 1312 | "pluginVersion": "7.2.2", 1313 | "pointradius": 2, 1314 | "points": false, 1315 | "renderer": "flot", 1316 | "seriesOverrides": [ 1317 | { 1318 | "$$hashKey": "object:69", 1319 | "alias": "/RateIn/", 1320 | "stack": "B", 1321 | "yaxis": 2 1322 | }, 1323 | { 1324 | "$$hashKey": "object:71", 1325 | "alias": "/SumIn/", 1326 | "color": "rgba(65, 107, 60, 0.68)", 1327 | "fill": 2, 1328 | "legend": false, 1329 | "linewidth": 0, 1330 | "stack": "D" 1331 | } 1332 | ], 1333 | "spaceLength": 10, 1334 | "stack": false, 1335 | "steppedLine": false, 1336 | "targets": [ 1337 | { 1338 | "expr": "sum(storj_sat_month_ingress) by(instance)", 1339 | "format": "time_series", 1340 | "hide": false, 1341 | "legendFormat": "SumIn {{instance}}", 1342 | "refId": "D" 1343 | }, 1344 | { 1345 | "expr": "sum(rate(storj_sat_month_ingress[5m])) by(instance) * 8", 1346 | "hide": false, 1347 | "intervalFactor": 4, 1348 | "legendFormat": "RateIn {{instance}}", 1349 | "refId": "B" 1350 | } 1351 | ], 1352 | "thresholds": [], 1353 | "timeFrom": null, 1354 | "timeRegions": [], 1355 | "timeShift": null, 1356 | "title": "Ingress by node", 1357 | "tooltip": { 1358 | "shared": true, 1359 | "sort": 2, 1360 | "value_type": "individual" 1361 | }, 1362 | "type": "graph", 1363 | "xaxis": { 1364 | "buckets": null, 1365 | "mode": "time", 1366 | "name": null, 1367 | "show": false, 1368 | "values": [] 1369 | }, 1370 | "yaxes": [ 1371 | { 1372 | "$$hashKey": "object:140", 1373 | "decimals": 2, 1374 | "format": "decbytes", 1375 | "label": "Monthly Ingress sum", 1376 | "logBase": 1, 1377 | "max": null, 1378 | "min": null, 1379 | "show": true 1380 | }, 1381 | { 1382 | "$$hashKey": "object:141", 1383 | "decimals": 2, 1384 | "format": "bps", 1385 | "label": "Ingress rate", 1386 | "logBase": 1, 1387 | "max": null, 1388 | "min": null, 1389 | "show": true 1390 | } 1391 | ], 1392 | "yaxis": { 1393 | "align": false, 1394 | "alignLevel": null 1395 | } 1396 | }, 1397 | { 1398 | "aliasColors": {}, 1399 | "bars": false, 1400 | "dashLength": 10, 1401 | "dashes": false, 1402 | "datasource": "${DS_PROMETHEUS}", 1403 | "decimals": null, 1404 | "fieldConfig": { 1405 | "defaults": { 1406 | "custom": {}, 1407 | "links": [] 1408 | }, 1409 | "overrides": [] 1410 | }, 1411 | "fill": 6, 1412 | "fillGradient": 0, 1413 | "gridPos": { 1414 | "h": 6, 1415 | "w": 12, 1416 | "x": 12, 1417 | "y": 17 1418 | }, 1419 | "hiddenSeries": false, 1420 | "id": 633, 1421 | "interval": "", 1422 | "legend": { 1423 | "alignAsTable": false, 1424 | "avg": false, 1425 | "current": false, 1426 | "max": false, 1427 | "min": false, 1428 | "rightSide": false, 1429 | "show": true, 1430 | "sideWidth": null, 1431 | "total": false, 1432 | "values": false 1433 | }, 1434 | "lines": true, 1435 | "linewidth": 1, 1436 | "nullPointMode": "null", 1437 | "options": { 1438 | "alertThreshold": true 1439 | }, 1440 | "percentage": false, 1441 | "pluginVersion": "7.2.2", 1442 | "pointradius": 2, 1443 | "points": false, 1444 | "renderer": "flot", 1445 | "seriesOverrides": [ 1446 | { 1447 | "$$hashKey": "object:68", 1448 | "alias": "/RateOut/", 1449 | "stack": "A", 1450 | "yaxis": 2 1451 | }, 1452 | { 1453 | "$$hashKey": "object:70", 1454 | "alias": "/SumOut/", 1455 | "color": "#1F60C4", 1456 | "fill": 2, 1457 | "legend": false, 1458 | "lines": true, 1459 | "linewidth": 0, 1460 | "stack": "C" 1461 | } 1462 | ], 1463 | "spaceLength": 10, 1464 | "stack": false, 1465 | "steppedLine": false, 1466 | "targets": [ 1467 | { 1468 | "expr": "sum(storj_sat_month_egress) by(instance)", 1469 | "format": "time_series", 1470 | "hide": false, 1471 | "instant": false, 1472 | "intervalFactor": 1, 1473 | "legendFormat": "SumOut {{instance}}", 1474 | "refId": "C" 1475 | }, 1476 | { 1477 | "expr": "sum(rate(storj_sat_month_egress[5m])) by(instance) * 8", 1478 | "format": "time_series", 1479 | "hide": false, 1480 | "instant": false, 1481 | "interval": "", 1482 | "intervalFactor": 4, 1483 | "legendFormat": "RateOut {{instance}}", 1484 | "refId": "A" 1485 | } 1486 | ], 1487 | "thresholds": [], 1488 | "timeFrom": null, 1489 | "timeRegions": [], 1490 | "timeShift": null, 1491 | "title": "Egress by node", 1492 | "tooltip": { 1493 | "shared": true, 1494 | "sort": 2, 1495 | "value_type": "individual" 1496 | }, 1497 | "type": "graph", 1498 | "xaxis": { 1499 | "buckets": null, 1500 | "mode": "time", 1501 | "name": null, 1502 | "show": false, 1503 | "values": [] 1504 | }, 1505 | "yaxes": [ 1506 | { 1507 | "$$hashKey": "object:140", 1508 | "decimals": 2, 1509 | "format": "decbytes", 1510 | "label": "Monthly Egress sum", 1511 | "logBase": 1, 1512 | "max": null, 1513 | "min": null, 1514 | "show": true 1515 | }, 1516 | { 1517 | "$$hashKey": "object:141", 1518 | "decimals": 2, 1519 | "format": "bps", 1520 | "label": "Egress rate", 1521 | "logBase": 1, 1522 | "max": null, 1523 | "min": null, 1524 | "show": true 1525 | } 1526 | ], 1527 | "yaxis": { 1528 | "align": false, 1529 | "alignLevel": null 1530 | } 1531 | }, 1532 | { 1533 | "aliasColors": {}, 1534 | "bars": false, 1535 | "dashLength": 10, 1536 | "dashes": false, 1537 | "datasource": "${DS_PROMETHEUS}", 1538 | "decimals": null, 1539 | "fieldConfig": { 1540 | "defaults": { 1541 | "custom": {}, 1542 | "links": [] 1543 | }, 1544 | "overrides": [] 1545 | }, 1546 | "fill": 6, 1547 | "fillGradient": 0, 1548 | "gridPos": { 1549 | "h": 7, 1550 | "w": 12, 1551 | "x": 0, 1552 | "y": 23 1553 | }, 1554 | "hiddenSeries": false, 1555 | "id": 299, 1556 | "interval": "", 1557 | "legend": { 1558 | "alignAsTable": false, 1559 | "avg": false, 1560 | "current": false, 1561 | "max": false, 1562 | "min": false, 1563 | "rightSide": false, 1564 | "show": true, 1565 | "sideWidth": null, 1566 | "total": false, 1567 | "values": false 1568 | }, 1569 | "lines": true, 1570 | "linewidth": 0, 1571 | "nullPointMode": "null", 1572 | "options": { 1573 | "alertThreshold": true 1574 | }, 1575 | "percentage": false, 1576 | "pluginVersion": "7.2.2", 1577 | "pointradius": 2, 1578 | "points": false, 1579 | "renderer": "flot", 1580 | "seriesOverrides": [ 1581 | { 1582 | "$$hashKey": "object:1775", 1583 | "alias": "/RateIn/", 1584 | "stack": "B", 1585 | "yaxis": 2 1586 | }, 1587 | { 1588 | "$$hashKey": "object:1777", 1589 | "alias": "/SumIn/", 1590 | "fill": 2, 1591 | "legend": false, 1592 | "linewidth": 0, 1593 | "stack": "D" 1594 | } 1595 | ], 1596 | "spaceLength": 10, 1597 | "stack": false, 1598 | "steppedLine": false, 1599 | "targets": [ 1600 | { 1601 | "expr": "sum(storj_sat_month_ingress{type!=\"usage\"}) by(type,instance)", 1602 | "format": "time_series", 1603 | "hide": false, 1604 | "legendFormat": "SumIn-{{type}}-{{instance}}", 1605 | "refId": "D" 1606 | }, 1607 | { 1608 | "expr": "sum(rate(storj_sat_month_ingress{type!=\"usage\"}[5m])) by(type,instance) * 8", 1609 | "hide": false, 1610 | "intervalFactor": 1, 1611 | "legendFormat": "RateIn-{{type}}-{{instance}}", 1612 | "refId": "B" 1613 | } 1614 | ], 1615 | "thresholds": [], 1616 | "timeFrom": null, 1617 | "timeRegions": [], 1618 | "timeShift": null, 1619 | "title": "Audit/Repair Ingress by node", 1620 | "tooltip": { 1621 | "shared": true, 1622 | "sort": 2, 1623 | "value_type": "individual" 1624 | }, 1625 | "type": "graph", 1626 | "xaxis": { 1627 | "buckets": null, 1628 | "mode": "time", 1629 | "name": null, 1630 | "show": false, 1631 | "values": [] 1632 | }, 1633 | "yaxes": [ 1634 | { 1635 | "$$hashKey": "object:1828", 1636 | "decimals": 2, 1637 | "format": "decbytes", 1638 | "label": "Monthly Ingress sum", 1639 | "logBase": 1, 1640 | "max": null, 1641 | "min": null, 1642 | "show": true 1643 | }, 1644 | { 1645 | "$$hashKey": "object:1829", 1646 | "decimals": 2, 1647 | "format": "bps", 1648 | "label": "Ingress rate", 1649 | "logBase": 1, 1650 | "max": null, 1651 | "min": null, 1652 | "show": true 1653 | } 1654 | ], 1655 | "yaxis": { 1656 | "align": true, 1657 | "alignLevel": null 1658 | } 1659 | }, 1660 | { 1661 | "aliasColors": {}, 1662 | "bars": false, 1663 | "dashLength": 10, 1664 | "dashes": false, 1665 | "datasource": "${DS_PROMETHEUS}", 1666 | "decimals": null, 1667 | "fieldConfig": { 1668 | "defaults": { 1669 | "custom": {}, 1670 | "links": [] 1671 | }, 1672 | "overrides": [] 1673 | }, 1674 | "fill": 6, 1675 | "fillGradient": 0, 1676 | "gridPos": { 1677 | "h": 7, 1678 | "w": 12, 1679 | "x": 12, 1680 | "y": 23 1681 | }, 1682 | "hiddenSeries": false, 1683 | "id": 634, 1684 | "interval": "", 1685 | "legend": { 1686 | "alignAsTable": false, 1687 | "avg": false, 1688 | "current": false, 1689 | "max": false, 1690 | "min": false, 1691 | "rightSide": false, 1692 | "show": true, 1693 | "sideWidth": null, 1694 | "total": false, 1695 | "values": false 1696 | }, 1697 | "lines": true, 1698 | "linewidth": 0, 1699 | "nullPointMode": "null", 1700 | "options": { 1701 | "alertThreshold": true 1702 | }, 1703 | "percentage": false, 1704 | "pluginVersion": "7.2.2", 1705 | "pointradius": 2, 1706 | "points": false, 1707 | "renderer": "flot", 1708 | "seriesOverrides": [ 1709 | { 1710 | "$$hashKey": "object:2037", 1711 | "alias": "/RateOut/", 1712 | "stack": "A", 1713 | "yaxis": 2 1714 | }, 1715 | { 1716 | "$$hashKey": "object:2039", 1717 | "alias": "/SumOut/", 1718 | "fill": 2, 1719 | "legend": false, 1720 | "linewidth": 0, 1721 | "stack": "C" 1722 | } 1723 | ], 1724 | "spaceLength": 10, 1725 | "stack": false, 1726 | "steppedLine": false, 1727 | "targets": [ 1728 | { 1729 | "expr": "sum(storj_sat_month_egress{type!=\"usage\"}) by(type,instance)", 1730 | "format": "time_series", 1731 | "hide": false, 1732 | "instant": false, 1733 | "intervalFactor": 1, 1734 | "legendFormat": "SumOut-{{type}}-{{instance}}", 1735 | "refId": "C" 1736 | }, 1737 | { 1738 | "expr": "sum(rate(storj_sat_month_egress{type!=\"usage\"}[5m])) by(type,instance) * 8", 1739 | "format": "time_series", 1740 | "hide": false, 1741 | "instant": false, 1742 | "intervalFactor": 1, 1743 | "legendFormat": "RateOut-{{type}}-{{instance}}", 1744 | "refId": "A" 1745 | } 1746 | ], 1747 | "thresholds": [], 1748 | "timeFrom": null, 1749 | "timeRegions": [], 1750 | "timeShift": null, 1751 | "title": "Audit/Repair Egress by node", 1752 | "tooltip": { 1753 | "shared": true, 1754 | "sort": 2, 1755 | "value_type": "individual" 1756 | }, 1757 | "type": "graph", 1758 | "xaxis": { 1759 | "buckets": null, 1760 | "mode": "time", 1761 | "name": null, 1762 | "show": false, 1763 | "values": [] 1764 | }, 1765 | "yaxes": [ 1766 | { 1767 | "$$hashKey": "object:2090", 1768 | "decimals": 2, 1769 | "format": "decbytes", 1770 | "label": "Monthly Egress sum", 1771 | "logBase": 1, 1772 | "max": null, 1773 | "min": null, 1774 | "show": true 1775 | }, 1776 | { 1777 | "$$hashKey": "object:2091", 1778 | "decimals": 2, 1779 | "format": "bps", 1780 | "label": "Egress rate", 1781 | "logBase": 1, 1782 | "max": null, 1783 | "min": null, 1784 | "show": true 1785 | } 1786 | ], 1787 | "yaxis": { 1788 | "align": true, 1789 | "alignLevel": null 1790 | } 1791 | }, 1792 | { 1793 | "collapsed": false, 1794 | "datasource": "${DS_PROMETHEUS}", 1795 | "gridPos": { 1796 | "h": 1, 1797 | "w": 24, 1798 | "x": 0, 1799 | "y": 30 1800 | }, 1801 | "id": 42, 1802 | "panels": [], 1803 | "repeat": "node", 1804 | "title": "Storj-exporter $node details", 1805 | "type": "row" 1806 | }, 1807 | { 1808 | "cacheTimeout": null, 1809 | "colorBackground": false, 1810 | "colorPostfix": false, 1811 | "colorPrefix": false, 1812 | "colorValue": false, 1813 | "colors": [ 1814 | "#299c46", 1815 | "rgb(68, 44, 27)", 1816 | "#d44a3a" 1817 | ], 1818 | "datasource": "${DS_PROMETHEUS}", 1819 | "decimals": 1, 1820 | "description": "", 1821 | "fieldConfig": { 1822 | "defaults": { 1823 | "custom": {} 1824 | }, 1825 | "overrides": [] 1826 | }, 1827 | "format": "decbytes", 1828 | "gauge": { 1829 | "maxValue": 100, 1830 | "minValue": 0, 1831 | "show": false, 1832 | "thresholdLabels": false, 1833 | "thresholdMarkers": true 1834 | }, 1835 | "gridPos": { 1836 | "h": 5, 1837 | "w": 3, 1838 | "x": 0, 1839 | "y": 31 1840 | }, 1841 | "id": 195, 1842 | "interval": null, 1843 | "links": [], 1844 | "mappingType": 1, 1845 | "mappingTypes": [ 1846 | { 1847 | "name": "value to text", 1848 | "value": 1 1849 | }, 1850 | { 1851 | "name": "range to text", 1852 | "value": 2 1853 | } 1854 | ], 1855 | "maxDataPoints": 100, 1856 | "nullPointMode": "connected", 1857 | "nullText": null, 1858 | "pluginVersion": "6.3.3", 1859 | "postfix": "", 1860 | "postfixFontSize": "110%", 1861 | "prefix": "", 1862 | "prefixFontSize": "100%", 1863 | "rangeMaps": [ 1864 | { 1865 | "from": "null", 1866 | "text": "N/A", 1867 | "to": "null" 1868 | } 1869 | ], 1870 | "repeat": null, 1871 | "repeatDirection": "v", 1872 | "sparkline": { 1873 | "fillColor": "rgba(103, 189, 31, 0.18)", 1874 | "full": true, 1875 | "lineColor": "#96D98D", 1876 | "show": true, 1877 | "ymax": null, 1878 | "ymin": null 1879 | }, 1880 | "tableColumn": "", 1881 | "targets": [ 1882 | { 1883 | "expr": "storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}", 1884 | "format": "time_series", 1885 | "hide": false, 1886 | "instant": false, 1887 | "interval": "", 1888 | "intervalFactor": 1, 1889 | "legendFormat": "", 1890 | "refId": "A" 1891 | } 1892 | ], 1893 | "thresholds": "", 1894 | "timeFrom": null, 1895 | "timeShift": null, 1896 | "title": "$node Disk used", 1897 | "type": "singlestat", 1898 | "valueFontSize": "100%", 1899 | "valueMaps": [ 1900 | { 1901 | "op": "=", 1902 | "text": "N/A", 1903 | "value": "null" 1904 | } 1905 | ], 1906 | "valueName": "current" 1907 | }, 1908 | { 1909 | "cacheTimeout": null, 1910 | "datasource": "${DS_PROMETHEUS}", 1911 | "description": "", 1912 | "fieldConfig": { 1913 | "defaults": { 1914 | "color": { 1915 | "mode": "thresholds" 1916 | }, 1917 | "custom": {}, 1918 | "decimals": 2, 1919 | "mappings": [], 1920 | "max": 100, 1921 | "min": 99, 1922 | "thresholds": { 1923 | "mode": "absolute", 1924 | "steps": [ 1925 | { 1926 | "color": "dark-red", 1927 | "value": null 1928 | }, 1929 | { 1930 | "color": "#EAB839", 1931 | "value": 99.5 1932 | }, 1933 | { 1934 | "color": "semi-dark-green", 1935 | "value": 99.8 1936 | } 1937 | ] 1938 | }, 1939 | "unit": "percent" 1940 | }, 1941 | "overrides": [] 1942 | }, 1943 | "gridPos": { 1944 | "h": 5, 1945 | "w": 4, 1946 | "x": 3, 1947 | "y": 31 1948 | }, 1949 | "id": 192, 1950 | "links": [], 1951 | "options": { 1952 | "displayMode": "lcd", 1953 | "orientation": "horizontal", 1954 | "reduceOptions": { 1955 | "calcs": [ 1956 | "lastNotNull" 1957 | ], 1958 | "fields": "", 1959 | "values": false 1960 | }, 1961 | "showUnfilled": true 1962 | }, 1963 | "pluginVersion": "7.2.2", 1964 | "repeat": null, 1965 | "repeatDirection": "v", 1966 | "targets": [ 1967 | { 1968 | "expr": "storj_sat_audit{type=~\"score|auditScore\",instance=~\"$node.*\"} * 100", 1969 | "format": "time_series", 1970 | "hide": false, 1971 | "instant": false, 1972 | "intervalFactor": 1, 1973 | "legendFormat": "{{satellite}}", 1974 | "refId": "A" 1975 | } 1976 | ], 1977 | "timeFrom": null, 1978 | "timeShift": null, 1979 | "title": "$node Audit score", 1980 | "type": "bargauge" 1981 | }, 1982 | { 1983 | "cacheTimeout": null, 1984 | "datasource": "${DS_PROMETHEUS}", 1985 | "description": "", 1986 | "fieldConfig": { 1987 | "defaults": { 1988 | "color": { 1989 | "mode": "thresholds" 1990 | }, 1991 | "custom": {}, 1992 | "decimals": 2, 1993 | "mappings": [], 1994 | "max": 100, 1995 | "min": 99, 1996 | "thresholds": { 1997 | "mode": "absolute", 1998 | "steps": [ 1999 | { 2000 | "color": "dark-red", 2001 | "value": null 2002 | }, 2003 | { 2004 | "color": "#EAB839", 2005 | "value": 99.5 2006 | }, 2007 | { 2008 | "color": "semi-dark-green", 2009 | "value": 99.8 2010 | } 2011 | ] 2012 | }, 2013 | "unit": "percent" 2014 | }, 2015 | "overrides": [] 2016 | }, 2017 | "gridPos": { 2018 | "h": 5, 2019 | "w": 4, 2020 | "x": 7, 2021 | "y": 31 2022 | }, 2023 | "id": 820, 2024 | "links": [], 2025 | "options": { 2026 | "displayMode": "lcd", 2027 | "orientation": "horizontal", 2028 | "reduceOptions": { 2029 | "calcs": [ 2030 | "lastNotNull" 2031 | ], 2032 | "fields": "", 2033 | "values": false 2034 | }, 2035 | "showUnfilled": true 2036 | }, 2037 | "pluginVersion": "7.2.2", 2038 | "repeatDirection": "v", 2039 | "targets": [ 2040 | { 2041 | "expr": "(storj_sat_summary{type=\"onlineScore\",instance=~\"$node.*\"} or storj_sat_audit{type=\"onlineScore\", instance=~\"$node.*\"}) * 100", 2042 | "format": "time_series", 2043 | "hide": false, 2044 | "instant": false, 2045 | "interval": "", 2046 | "intervalFactor": 1, 2047 | "legendFormat": "{{satellite}}", 2048 | "refId": "A" 2049 | } 2050 | ], 2051 | "timeFrom": null, 2052 | "timeShift": null, 2053 | "title": "$node Online score", 2054 | "type": "bargauge" 2055 | }, 2056 | { 2057 | "aliasColors": {}, 2058 | "bars": false, 2059 | "dashLength": 10, 2060 | "dashes": false, 2061 | "datasource": "${DS_PROMETHEUS}", 2062 | "decimals": null, 2063 | "fieldConfig": { 2064 | "defaults": { 2065 | "custom": {}, 2066 | "links": [] 2067 | }, 2068 | "overrides": [] 2069 | }, 2070 | "fill": 6, 2071 | "fillGradient": 0, 2072 | "gridPos": { 2073 | "h": 5, 2074 | "w": 13, 2075 | "x": 11, 2076 | "y": 31 2077 | }, 2078 | "hiddenSeries": false, 2079 | "id": 409, 2080 | "interval": "", 2081 | "legend": { 2082 | "alignAsTable": false, 2083 | "avg": false, 2084 | "current": false, 2085 | "max": false, 2086 | "min": false, 2087 | "rightSide": true, 2088 | "show": false, 2089 | "sideWidth": null, 2090 | "total": false, 2091 | "values": false 2092 | }, 2093 | "lines": true, 2094 | "linewidth": 1, 2095 | "nullPointMode": "null", 2096 | "options": { 2097 | "alertThreshold": true 2098 | }, 2099 | "percentage": false, 2100 | "pluginVersion": "7.2.2", 2101 | "pointradius": 2, 2102 | "points": false, 2103 | "renderer": "flot", 2104 | "repeat": null, 2105 | "repeatDirection": "h", 2106 | "seriesOverrides": [ 2107 | { 2108 | "$$hashKey": "object:406", 2109 | "alias": "/DiskRate/", 2110 | "stack": "A", 2111 | "yaxis": 2 2112 | }, 2113 | { 2114 | "$$hashKey": "object:407", 2115 | "alias": "/DiskSum/", 2116 | "color": "#56A64B", 2117 | "fill": 2, 2118 | "linewidth": 0, 2119 | "stack": "B" 2120 | } 2121 | ], 2122 | "spaceLength": 10, 2123 | "stack": false, 2124 | "steppedLine": false, 2125 | "targets": [ 2126 | { 2127 | "expr": "delta(storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}[5m]) * 8 / 300", 2128 | "format": "time_series", 2129 | "hide": false, 2130 | "instant": false, 2131 | "intervalFactor": 1, 2132 | "legendFormat": "DiskRate {{instance}}", 2133 | "refId": "B" 2134 | }, 2135 | { 2136 | "expr": "storj_total_diskspace{type=\"used\",instance=~\"$node.*\"}", 2137 | "format": "time_series", 2138 | "hide": false, 2139 | "instant": false, 2140 | "intervalFactor": 1, 2141 | "legendFormat": "DiskSum {{instance}}", 2142 | "refId": "D" 2143 | } 2144 | ], 2145 | "thresholds": [], 2146 | "timeFrom": null, 2147 | "timeRegions": [], 2148 | "timeShift": null, 2149 | "title": "$node Storage Used", 2150 | "tooltip": { 2151 | "shared": true, 2152 | "sort": 2, 2153 | "value_type": "individual" 2154 | }, 2155 | "type": "graph", 2156 | "xaxis": { 2157 | "buckets": null, 2158 | "mode": "time", 2159 | "name": null, 2160 | "show": false, 2161 | "values": [] 2162 | }, 2163 | "yaxes": [ 2164 | { 2165 | "$$hashKey": "object:436", 2166 | "decimals": 2, 2167 | "format": "decbytes", 2168 | "label": "Storage sum", 2169 | "logBase": 1, 2170 | "max": null, 2171 | "min": "0", 2172 | "show": true 2173 | }, 2174 | { 2175 | "$$hashKey": "object:437", 2176 | "decimals": 2, 2177 | "format": "bps", 2178 | "label": "Net I/O rate", 2179 | "logBase": 1, 2180 | "max": null, 2181 | "min": null, 2182 | "show": true 2183 | } 2184 | ], 2185 | "yaxis": { 2186 | "align": false, 2187 | "alignLevel": null 2188 | } 2189 | }, 2190 | { 2191 | "cacheTimeout": null, 2192 | "colorBackground": false, 2193 | "colorPrefix": false, 2194 | "colorValue": false, 2195 | "colors": [ 2196 | "#299c46", 2197 | "rgba(237, 129, 40, 0.89)", 2198 | "#d44a3a" 2199 | ], 2200 | "datasource": "${DS_PROMETHEUS}", 2201 | "decimals": 2, 2202 | "description": "", 2203 | "fieldConfig": { 2204 | "defaults": { 2205 | "custom": {} 2206 | }, 2207 | "overrides": [] 2208 | }, 2209 | "format": "currencyUSD", 2210 | "gauge": { 2211 | "maxValue": 100, 2212 | "minValue": 0, 2213 | "show": false, 2214 | "thresholdLabels": false, 2215 | "thresholdMarkers": true 2216 | }, 2217 | "gridPos": { 2218 | "h": 5, 2219 | "w": 3, 2220 | "x": 0, 2221 | "y": 36 2222 | }, 2223 | "id": 469, 2224 | "interval": null, 2225 | "links": [], 2226 | "mappingType": 1, 2227 | "mappingTypes": [ 2228 | { 2229 | "name": "value to text", 2230 | "value": 1 2231 | }, 2232 | { 2233 | "name": "range to text", 2234 | "value": 2 2235 | } 2236 | ], 2237 | "maxDataPoints": 100, 2238 | "nullPointMode": "connected", 2239 | "nullText": null, 2240 | "pluginVersion": "6.3.3", 2241 | "postfix": "", 2242 | "postfixFontSize": "50%", 2243 | "prefix": "", 2244 | "prefixFontSize": "50%", 2245 | "rangeMaps": [ 2246 | { 2247 | "from": "null", 2248 | "text": "N/A", 2249 | "to": "null" 2250 | } 2251 | ], 2252 | "repeat": null, 2253 | "repeatDirection": "v", 2254 | "sparkline": { 2255 | "fillColor": "rgba(31, 189, 54, 0.18)", 2256 | "full": true, 2257 | "lineColor": "#96D98D", 2258 | "show": true, 2259 | "ymax": null, 2260 | "ymin": null 2261 | }, 2262 | "tableColumn": "", 2263 | "targets": [ 2264 | { 2265 | "expr": "(sum(storj_sat_summary{type=\"storageSummary\",instance=~\"$node.*\"}) / (days_in_month() * 24) * 1.5 / 1000^4) + (sum(storj_sat_month_egress{instance=~\"$node.*\"}) / 1000^4 * 20)", 2266 | "format": "time_series", 2267 | "hide": false, 2268 | "instant": false, 2269 | "interval": "", 2270 | "intervalFactor": 1, 2271 | "legendFormat": "", 2272 | "refId": "B" 2273 | } 2274 | ], 2275 | "thresholds": "", 2276 | "timeFrom": null, 2277 | "timeShift": null, 2278 | "title": "$node Earnings", 2279 | "type": "singlestat", 2280 | "valueFontSize": "80%", 2281 | "valueMaps": [ 2282 | { 2283 | "op": "=", 2284 | "text": "N/A", 2285 | "value": "null" 2286 | } 2287 | ], 2288 | "valueName": "current" 2289 | }, 2290 | { 2291 | "cacheTimeout": null, 2292 | "datasource": "${DS_PROMETHEUS}", 2293 | "description": "", 2294 | "fieldConfig": { 2295 | "defaults": { 2296 | "color": { 2297 | "mode": "thresholds" 2298 | }, 2299 | "custom": {}, 2300 | "mappings": [], 2301 | "max": 105, 2302 | "min": 70, 2303 | "thresholds": { 2304 | "mode": "absolute", 2305 | "steps": [ 2306 | { 2307 | "color": "light-blue", 2308 | "value": null 2309 | }, 2310 | { 2311 | "color": "yellow", 2312 | "value": 90 2313 | }, 2314 | { 2315 | "color": "dark-green", 2316 | "value": 100 2317 | } 2318 | ] 2319 | } 2320 | }, 2321 | "overrides": [] 2322 | }, 2323 | "gridPos": { 2324 | "h": 5, 2325 | "w": 5, 2326 | "x": 3, 2327 | "y": 36 2328 | }, 2329 | "id": 153, 2330 | "links": [], 2331 | "options": { 2332 | "displayMode": "lcd", 2333 | "orientation": "horizontal", 2334 | "reduceOptions": { 2335 | "calcs": [ 2336 | "lastNotNull" 2337 | ], 2338 | "fields": "", 2339 | "values": false 2340 | }, 2341 | "showUnfilled": true 2342 | }, 2343 | "pluginVersion": "7.2.2", 2344 | "repeat": null, 2345 | "repeatDirection": "v", 2346 | "targets": [ 2347 | { 2348 | "expr": "storj_sat_audit{type=\"successCount\",instance=~\"$node.*\"}", 2349 | "format": "time_series", 2350 | "hide": false, 2351 | "instant": false, 2352 | "intervalFactor": 1, 2353 | "legendFormat": "{{satellite}}", 2354 | "refId": "A" 2355 | } 2356 | ], 2357 | "timeFrom": null, 2358 | "timeShift": null, 2359 | "title": "$node Vetting", 2360 | "type": "bargauge" 2361 | }, 2362 | { 2363 | "aliasColors": {}, 2364 | "bars": false, 2365 | "dashLength": 10, 2366 | "dashes": false, 2367 | "datasource": "${DS_PROMETHEUS}", 2368 | "decimals": null, 2369 | "description": "", 2370 | "fieldConfig": { 2371 | "defaults": { 2372 | "custom": {}, 2373 | "links": [] 2374 | }, 2375 | "overrides": [] 2376 | }, 2377 | "fill": 6, 2378 | "fillGradient": 0, 2379 | "gridPos": { 2380 | "h": 5, 2381 | "w": 8, 2382 | "x": 8, 2383 | "y": 36 2384 | }, 2385 | "hiddenSeries": false, 2386 | "id": 715, 2387 | "interval": "", 2388 | "legend": { 2389 | "alignAsTable": false, 2390 | "avg": false, 2391 | "current": false, 2392 | "max": false, 2393 | "min": false, 2394 | "rightSide": true, 2395 | "show": false, 2396 | "sideWidth": null, 2397 | "total": false, 2398 | "values": false 2399 | }, 2400 | "lines": true, 2401 | "linewidth": 1, 2402 | "nullPointMode": "null", 2403 | "options": { 2404 | "alertThreshold": true 2405 | }, 2406 | "percentage": false, 2407 | "pluginVersion": "7.2.2", 2408 | "pointradius": 2, 2409 | "points": false, 2410 | "renderer": "flot", 2411 | "repeat": null, 2412 | "repeatDirection": "h", 2413 | "seriesOverrides": [ 2414 | { 2415 | "$$hashKey": "object:603", 2416 | "alias": "/RateIn/", 2417 | "stack": "B", 2418 | "yaxis": 2 2419 | }, 2420 | { 2421 | "$$hashKey": "object:605", 2422 | "alias": "/SumIn/", 2423 | "fill": 2, 2424 | "legend": false, 2425 | "linewidth": 0, 2426 | "stack": "D" 2427 | } 2428 | ], 2429 | "spaceLength": 10, 2430 | "stack": false, 2431 | "steppedLine": false, 2432 | "targets": [ 2433 | { 2434 | "expr": "sum(rate(storj_sat_month_ingress{instance=~\"$node.*\"}[5m])) * 8", 2435 | "hide": false, 2436 | "intervalFactor": 4, 2437 | "legendFormat": "RateIn {{instance}}", 2438 | "refId": "B" 2439 | }, 2440 | { 2441 | "expr": "sum(storj_sat_month_ingress{instance=~\"$node.*\"})", 2442 | "format": "time_series", 2443 | "hide": false, 2444 | "legendFormat": "SumIn {{instance}}", 2445 | "refId": "D" 2446 | } 2447 | ], 2448 | "thresholds": [], 2449 | "timeFrom": null, 2450 | "timeRegions": [], 2451 | "timeShift": null, 2452 | "title": "$node Ingress", 2453 | "tooltip": { 2454 | "shared": true, 2455 | "sort": 2, 2456 | "value_type": "individual" 2457 | }, 2458 | "type": "graph", 2459 | "xaxis": { 2460 | "buckets": null, 2461 | "mode": "time", 2462 | "name": null, 2463 | "show": false, 2464 | "values": [] 2465 | }, 2466 | "yaxes": [ 2467 | { 2468 | "$$hashKey": "object:656", 2469 | "decimals": 2, 2470 | "format": "decbytes", 2471 | "label": "Monthly Ingress sum", 2472 | "logBase": 1, 2473 | "max": null, 2474 | "min": null, 2475 | "show": true 2476 | }, 2477 | { 2478 | "$$hashKey": "object:657", 2479 | "decimals": 2, 2480 | "format": "bps", 2481 | "label": "Ingress rate", 2482 | "logBase": 1, 2483 | "max": null, 2484 | "min": null, 2485 | "show": true 2486 | } 2487 | ], 2488 | "yaxis": { 2489 | "align": false, 2490 | "alignLevel": null 2491 | } 2492 | }, 2493 | { 2494 | "aliasColors": {}, 2495 | "bars": false, 2496 | "dashLength": 10, 2497 | "dashes": false, 2498 | "datasource": "${DS_PROMETHEUS}", 2499 | "decimals": null, 2500 | "description": "", 2501 | "fieldConfig": { 2502 | "defaults": { 2503 | "custom": {}, 2504 | "links": [] 2505 | }, 2506 | "overrides": [] 2507 | }, 2508 | "fill": 6, 2509 | "fillGradient": 0, 2510 | "gridPos": { 2511 | "h": 5, 2512 | "w": 8, 2513 | "x": 16, 2514 | "y": 36 2515 | }, 2516 | "hiddenSeries": false, 2517 | "id": 393, 2518 | "interval": "", 2519 | "legend": { 2520 | "alignAsTable": false, 2521 | "avg": false, 2522 | "current": false, 2523 | "max": false, 2524 | "min": false, 2525 | "rightSide": true, 2526 | "show": false, 2527 | "sideWidth": null, 2528 | "total": false, 2529 | "values": false 2530 | }, 2531 | "lines": true, 2532 | "linewidth": 1, 2533 | "nullPointMode": "null", 2534 | "options": { 2535 | "alertThreshold": true 2536 | }, 2537 | "percentage": false, 2538 | "pluginVersion": "7.2.2", 2539 | "pointradius": 2, 2540 | "points": false, 2541 | "renderer": "flot", 2542 | "repeat": null, 2543 | "repeatDirection": "v", 2544 | "seriesOverrides": [ 2545 | { 2546 | "$$hashKey": "object:602", 2547 | "alias": "/RateOut/", 2548 | "stack": "A", 2549 | "yaxis": 2 2550 | }, 2551 | { 2552 | "$$hashKey": "object:604", 2553 | "alias": "/SumOut/", 2554 | "fill": 2, 2555 | "legend": false, 2556 | "linewidth": 0, 2557 | "stack": "C" 2558 | } 2559 | ], 2560 | "spaceLength": 10, 2561 | "stack": false, 2562 | "steppedLine": false, 2563 | "targets": [ 2564 | { 2565 | "expr": "sum(rate(storj_sat_month_egress{instance=~\"$node.*\"}[5m])) * 8", 2566 | "format": "time_series", 2567 | "hide": false, 2568 | "instant": false, 2569 | "intervalFactor": 4, 2570 | "legendFormat": "RateOut {{instance}}", 2571 | "refId": "A" 2572 | }, 2573 | { 2574 | "expr": "sum(storj_sat_month_egress{instance=~\"$node.*\"})", 2575 | "format": "time_series", 2576 | "hide": false, 2577 | "instant": false, 2578 | "intervalFactor": 1, 2579 | "legendFormat": "SumOut {{instance}}", 2580 | "refId": "C" 2581 | } 2582 | ], 2583 | "thresholds": [], 2584 | "timeFrom": null, 2585 | "timeRegions": [], 2586 | "timeShift": null, 2587 | "title": "$node Egress", 2588 | "tooltip": { 2589 | "shared": true, 2590 | "sort": 2, 2591 | "value_type": "individual" 2592 | }, 2593 | "type": "graph", 2594 | "xaxis": { 2595 | "buckets": null, 2596 | "mode": "time", 2597 | "name": null, 2598 | "show": false, 2599 | "values": [] 2600 | }, 2601 | "yaxes": [ 2602 | { 2603 | "$$hashKey": "object:656", 2604 | "decimals": 2, 2605 | "format": "decbytes", 2606 | "label": "Monthly Egress sum", 2607 | "logBase": 1, 2608 | "max": null, 2609 | "min": null, 2610 | "show": true 2611 | }, 2612 | { 2613 | "$$hashKey": "object:657", 2614 | "decimals": 2, 2615 | "format": "bps", 2616 | "label": "Egress rate", 2617 | "logBase": 1, 2618 | "max": null, 2619 | "min": null, 2620 | "show": true 2621 | } 2622 | ], 2623 | "yaxis": { 2624 | "align": false, 2625 | "alignLevel": null 2626 | } 2627 | } 2628 | ], 2629 | "refresh": "1m", 2630 | "schemaVersion": 26, 2631 | "style": "dark", 2632 | "tags": [ 2633 | "storj", 2634 | "docker", 2635 | "prometheus", 2636 | "exporter" 2637 | ], 2638 | "templating": { 2639 | "list": [ 2640 | { 2641 | "allValue": null, 2642 | "current": {}, 2643 | "datasource": "${DS_PROMETHEUS}", 2644 | "definition": "label_values(storj_nodeID_info, instance)", 2645 | "hide": 0, 2646 | "includeAll": true, 2647 | "label": "Node:", 2648 | "multi": true, 2649 | "name": "node", 2650 | "options": [], 2651 | "query": "label_values(storj_nodeID_info, instance)", 2652 | "refresh": 1, 2653 | "regex": "", 2654 | "skipUrlSync": false, 2655 | "sort": 1, 2656 | "tagValuesQuery": "", 2657 | "tags": [], 2658 | "tagsQuery": "", 2659 | "type": "query", 2660 | "useTags": false 2661 | }, 2662 | { 2663 | "allValue": null, 2664 | "current": {}, 2665 | "datasource": "${DS_PROMETHEUS}", 2666 | "definition": "label_values(storj_sat_summary, satellite)", 2667 | "hide": 0, 2668 | "includeAll": true, 2669 | "label": "Satellite:", 2670 | "multi": true, 2671 | "name": "satellite", 2672 | "options": [], 2673 | "query": "label_values(storj_sat_summary, satellite)", 2674 | "refresh": 1, 2675 | "regex": "", 2676 | "skipUrlSync": false, 2677 | "sort": 1, 2678 | "tagValuesQuery": "", 2679 | "tags": [], 2680 | "tagsQuery": "", 2681 | "type": "query", 2682 | "useTags": false 2683 | } 2684 | ] 2685 | }, 2686 | "time": { 2687 | "from": "now-1h", 2688 | "to": "now" 2689 | }, 2690 | "timepicker": { 2691 | "refresh_intervals": [ 2692 | "5s", 2693 | "10s", 2694 | "30s", 2695 | "1m", 2696 | "5m", 2697 | "15m", 2698 | "30m", 2699 | "1h", 2700 | "2h", 2701 | "1d" 2702 | ] 2703 | }, 2704 | "timezone": "", 2705 | "title": "Storj-Exporter-Boom-Table-Alt", 2706 | "uid": "bblSUl6Zz", 2707 | "version": 27 2708 | } 2709 | --------------------------------------------------------------------------------