add prometheus option

pull/2080/head
damon 2020-10-06 11:04:09 -07:00
parent 77dae7b4f6
commit 43dbe26dd8
4 changed files with 24 additions and 7 deletions

View File

@ -70,7 +70,7 @@
max-file: "5"
image: "{{ nucypher_image | default('nucypher/nucypher:latest') }}"
restart_policy: "unless-stopped"
command: "nucypher ursula run {{nucypher_ursula_run_options | default('')}} {{signer_options}} --lonely --prometheus --metrics-port 9101"
command: "nucypher ursula run {{nucypher_ursula_run_options | default('')}} {{signer_options}} --lonely {{prometheus | default('')}}"
volumes:
- /home/nucypher:/root/.local/share/
ports:
@ -102,7 +102,7 @@
max-file: "5"
image: "{{ nucypher_image | default('nucypher/nucypher:latest') }}"
restart_policy: "unless-stopped"
command: "nucypher ursula run {{nucypher_ursula_run_options | default('')}} {{signer_options}} --disable-availability-check --teacher {{SEED_NODE_URI}} --prometheus --metrics-port 9101"
command: "nucypher ursula run {{nucypher_ursula_run_options | default('')}} {{signer_options}} --disable-availability-check --teacher {{SEED_NODE_URI}} {{prometheus | default('')}}"
volumes:
- /home/nucypher:/root/.local/share/
ports:

View File

@ -54,8 +54,9 @@ def cloudworkers():
@click.option('--sentry-dsn', help="a sentry dsn for these workers (https://sentry.io/)", default=None)
@click.option('--include-stakeholder', 'stakes', help="limit worker to specified stakeholder addresses", multiple=True)
@click.option('--wipe', help="Clear nucypher configs on existing nodes and start a fresh node with new keys.", default=False, is_flag=True)
@click.option('--prometheus', help="Run Prometheus on workers.", default=False, is_flag=True)
@group_general_config
def up(general_config, staker_options, config_file, cloudprovider, aws_profile, remote_provider, nucypher_image, seed_network, sentry_dsn, stakes, wipe):
def up(general_config, staker_options, config_file, cloudprovider, aws_profile, remote_provider, nucypher_image, seed_network, sentry_dsn, stakes, wipe, prometheus):
"""Creates workers for all stakes owned by the user for the given network."""
emitter = setup_emitter(general_config)
@ -74,7 +75,7 @@ def up(general_config, staker_options, config_file, cloudprovider, aws_profile,
config_file = config_file or StakeHolderConfiguration.default_filepath()
deployer = CloudDeployers.get_deployer(cloudprovider)(emitter, STAKEHOLDER, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn, aws_profile)
deployer = CloudDeployers.get_deployer(cloudprovider)(emitter, STAKEHOLDER, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn, aws_profile, prometheus)
config = deployer.create_nodes_for_stakers(staker_addresses)
if config.get('instances') and len(config.get('instances')) >= len(staker_addresses):
@ -124,8 +125,9 @@ def add(general_config, staker_options, config_file, staker_address, host_addres
@click.option('--sentry-dsn', help="a sentry dsn for these workers (https://sentry.io/)", default=None)
@click.option('--include-stakeholder', 'stakes', help="limit worker to specified stakeholder addresses", multiple=True)
@click.option('--wipe', help="Clear your nucypher config and start a fresh node with new kets", default=False, is_flag=True)
@click.option('--prometheus', help="Run Prometheus on workers.", default=False, is_flag=True)
@group_general_config
def deploy(general_config, staker_options, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn, stakes, wipe):
def deploy(general_config, staker_options, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn, stakes, wipe, prometheus):
"""Deploys NuCypher on existing hardware."""
emitter = setup_emitter(general_config)
@ -144,7 +146,7 @@ def deploy(general_config, staker_options, config_file, remote_provider, nucyphe
config_file = config_file or StakeHolderConfiguration.default_filepath()
deployer = CloudDeployers.get_deployer('generic')(emitter, STAKEHOLDER, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn)
deployer = CloudDeployers.get_deployer('generic')(emitter, STAKEHOLDER, config_file, remote_provider, nucypher_image, seed_network, sentry_dsn, prometheus=prometheus)
emitter.echo("found nodes for the following stakers:")
for staker_address in staker_addresses:

View File

@ -133,7 +133,19 @@ class AnsiblePlayBookResultsCollector(CallbackBase):
class BaseCloudNodeConfigurator:
def __init__(self, emitter, stakeholder, stakeholder_config_path, blockchain_provider=None, nucypher_image=None, seed_network=False, sentry_dsn=None, profile=None):
PROMETHEUS_PORT = PROMETHEUS_PORTS[0]
def __init__(self,
emitter,
stakeholder,
stakeholder_config_path,
blockchain_provider=None,
nucypher_image=None,
seed_network=False,
sentry_dsn=None,
profile=None,
prometheus=False,
):
self.emitter = emitter
self.stakeholder = stakeholder
@ -183,6 +195,8 @@ class BaseCloudNodeConfigurator:
self.config.pop('seed_node', None)
self.nodes_are_decentralized = 'geth.ipc' in self.config['blockchain_provider']
self.config['stakeholder_config_file'] = stakeholder_config_path
self.config['use-prometheus'] = prometheus
self._write_config()
def _write_config(self):

View File

@ -19,6 +19,7 @@ all:
nucypher_image: {{deployer.config['nucypher_image']}}
blockchain_provider: {{deployer.config['blockchain_provider']}}
node_is_decentralized: {{deployer.nodes_are_decentralized}}
prometheus: {% if deployer.config.get('use-prometheus') %}--prometheus --metrics-port {{deployer.PROMETHEUS_PORT}}{% endif %}
SEED_NODE_URI:{% if deployer.config.get('seed_node') %} {{deployer.config['seed_node']}}{% endif %}
{% if deployer.config.get('sentry_dsn')%}SENTRY_DSN: {{deployer.config['sentry_dsn']}}{% endif %}
wipe_nucypher_config: {{wipe_nucypher}}