Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Prometheus Setup · QuarkChain/pyquarkchain Wiki · GitHub
Skip to content

Prometheus Setup

ninjaahhh edited this page Aug 6, 2020 · 5 revisions

Prometheus Monitoring Setup Guide

Introduction

Quarkchain now has built-in monitoring tools implemented through Prometheus.

Currently you can use it to monitor the total balance of a specific token as well as the balance of each shard.

You can run the prometheus client with an existing cluster with JSONRPC port enabled, or start a cluster with prometheus enabled to monitor itself.

We recommend following the instruction wiki to start clusters using docker.

Run Prometheus Client to Monitor Existing Cluster

Cluster Env Setup

  • Update the cluster with latest pyquarkchain version
  • Setup port forwarding for UDP/TCP 38291 and UDP/TCP 8000. Port 8000 is the default prometheus client exposing port, your can change to other available port for your need but remember to change all relative port settings in following steps.

Script Env Setup

To run a prometheus client, you should have the python package prometheus_client installed, we recommend the latest version.

pip install prometheus_client

Then you can run the script pyquarkchain/quarkchain/cluster/prom.py with following options:

  • --enable_count_balance: Enable the prometheus client to monitor total balance.
  • --tokens: Specified the tokens to be monitored, separated by comma.
  • --interval: Time gap between two consecutive queries for monitoring, lower interval may cause performance degradation, default is 30s.
  • --host: Socket of the cluster, as well as the JSONRPC port.
  • --port: Port where prometheus expose the data to localhost, default is 8000.

The following command will run the prometheus client to monitor the socket "cluster.address.com:39291" for token "QKC" and "BTC", the interval will be 60s and the port is 8000 by default.

python prom.py --host "cluster.address.com:38291" --enable_count_balance --tokens "QKC,BTC" --interval 60

Then you can open the address "localhost:8000" (localhost should be changed to the actual address where the script is running, and the port should change to the port you actually use) to see the metrics exposed by the prometheus.

Start a Cluster with Prometheus client

If you wanna start a cluster with a prometheus client, your should do some extra steps before you run the run_cluster.sh file in the instruction wiki

1. Edit cluster configuration file

Open mainnet/singularity/cluster_config_template.json and add the prometheus configuration, your can change to your own parameter value, remember to add comma after previous configuration:

...},"PROMETHEUS": {
"INTERVAL": 30,
"TOKENS": "QKC,BTC",
"PORT": 8000
}
}

2. Edit the shell script

Open the run_cluster.sh script and add the prometheus parameters:

#!/bin/bash${PYTHON:=python3} quarkchain/cluster/cluster.py --enable_prometheus --enable_count_balance --cluster_config $(realpath mainnet/singularity/cluster_config_template${QKC_CONFIG_EXT:=}.json)"$@"

Now the cluster has started with prometheus monitoring itself for the balance counting. If you wanna run a prometheus client for other cluster in the same time, remember using different port number to avoid confiliction.

Prometheus Server and Grafana Server

As the metrics had been exposed to the port you specified, you can now run a prometheus server to fetch the data following the official instructions, and setup grafana to visualize your result as well.

Clone this wiki locally