def grafana(self, func, grafana_password):
    ami_account = self.plateform['account']
    if 'ami-account' in self.plateform[self.blocname]:
      ami_account = self.plateform[self.blocname]['ami-account']

    grafana = ComponentWeb(self.plateform)
    web={
      'name': 'grafana',
      'ami-name': 'grafana-*',
      'ami-account': ami_account,
      'port': '3000',
      'health-check': '/api/health',
      'health-check-port': '3000',
      'attach_cw_ro': True,
      'efs-enable': False,
      'node-count': 1,
      'min-node-count': 1,
      'max-node-count': 1,
      'ips_whitelist': self.plateform[self.blocname]['ips_whitelist'],
      'enable_cognito': True,
      'user-data': '''
        #!/bin/bash -x
        exec > /tmp/userdata-grafana.log 2>&1
        grafana-cli admin reset-admin-password {password}
      '''.format(password=grafana_password)
    }
    grafana.compute_var(web, func)
  def alertmanager(self, func, sns_arn):
    ami_account = self.plateform['account']
    if 'ami-account' in self.plateform[self.blocname]:
      ami_account = self.plateform[self.blocname]['ami-account']

    alertmanager = ComponentWeb(self.plateform)
    web={
      'name': 'alertmanager',
      'ami-name': 'alertmanager-*',
      'ami-account': ami_account,
      'port': '9093',
      'health-check': '/-/ready',
      'attach_sns_pub': True,
      'efs-enable': False,
      'node-count': 1,
      'min-node-count': 1,
      'max-node-count': 1,
      'ips_whitelist': self.plateform[self.blocname]['ips_whitelist'],
      'enable_cognito': False,
      'enable_private_alb': True,
      'enable_public_alb': True,
      'user-data': '''
        #!/bin/bash -x
        exec > /tmp/userdata-alertmanager.log 2>&1
        sudo sed -i.bak 's/alertmanager-sns-to-email/{sns_arn}/g' /etc/alertmanager/alertmanager.yml
        sudo systemctl restart alertmanager.service
      '''.format(sns_arn=sns_arn.replace('\n', ''))
    }
    alertmanager.compute_var(web, func)
  def tracing(self, func):
    ami_account = self.plateform['account']
    if 'ami-account' in self.plateform[self.blocname]:
      ami_account = self.plateform[self.blocname]['ami-account']

    tracing = ComponentWeb(self.plateform)
    web={
      'name': 'tracing',
      'ami-name': 'jaeger-*',
      'ami-account': ami_account,
      'port': '16686',
      'health-check': '/',
      'health-check-port': '16687',
      'attach_cw_ro': False,
      'efs-enable': False,
      'node-count': 1,
      'min-node-count': 1,
      'max-node-count': 1,
      'ips_whitelist': self.plateform[self.blocname]['ips_whitelist'],
      'enable_cognito': True
    }
    tracing.compute_var(web, func)
  def prometheus(self, func):
    ami_account = self.plateform['account']
    if 'ami-account' in self.plateform[self.blocname]:
      ami_account = self.plateform[self.blocname]['ami-account']

    prometheus = ComponentWeb(self.plateform)
    web={
      'name': 'prometheus',
      'ami-name': 'prometheus-*',
      'ami-account': ami_account,
      'port': '9090',
      'health-check': '/-/ready',
      'attach_cw_ro': False,
      'attach_ec2_ro': True,
      'efs-enable': False,
      'node-count': 1,
      'min-node-count': 1,
      'max-node-count': 1,
      'ips_whitelist': self.plateform[self.blocname]['ips_whitelist'],
      'enable_cognito': False,
      'enable_private_alb': True,
      'enable_public_alb': True
    }
    prometheus.compute_var(web, func)