---
# Copyright 2016-2017 FUJITSU LIMITED
# file: group_vars/monasca_group

is_openstack: false

# monasca global settings
monasca_log_level: WARN
monasca_api_log_level: WARNING
monasca_group: monasca

# urls
influxdb_deb_src_url: "{{ world_repo_url }}"
get_pip_download_url: "{{ world_repo_url }}"

# influxdb
influxdb_client_port: 8086
influxdb_relay_http_port: 9096
influxdb_version: 1.1.1

############################################### kafka ###############################################

# those settings need to be placed here, because they can be used by other
# components to specify their settings

kafka_hosts: "{% for item in groups['kafka_group'] -%}
                {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['kafka_listen_ip']]['ansible_ssh_host'] }}:{{ kafka_port|int }}
              {%- endfor %}"
kafka_nodes: "{{ kafka_hosts.split(',') }}"

kafka_replication_factor: 1 # 0 < X <= 1.0
kafka_partitions_factor: 1 # 1 <= X < K

kafka_log_topic_max_message_bytes: 1048576
kafka_biggest_topic_size_bytes: "{{ [kafka_log_topic_max_message_bytes]|max }}"

kafka_replicas: "{{ (kafka_nodes|length|int * kafka_replication_factor)|round(0, 'ceil')|int }}"
kafka_log_topic_replicas: "{{ kafka_replicas|int }}"

# https://www.linkedin.com/pulse/how-choose-number-topicspartitions-kafka-cluster-gaurhari-dass
kafka_transformed_log_partitions: "{{ ([groups['monasca_log_persister_group']|length,groups['monasca_log_metrics_group']|length]|max * kafka_partitions_factor)|int }}"
kafka_log_topic_partitions: "{{ (groups['monasca_log_transformer_group']|length * kafka_partitions_factor)|int }}"
kafka_events_partitions: "{{ (groups['storm_supervisor_group']|length * kafka_partitions_factor)|int }}"
kafka_metrics_partitions: "{{ (groups['storm_supervisor_group']|length * kafka_partitions_factor)|int }}"
kafka_notifications_partitions: "{{ (groups['monasca_notification_group']|length * kafka_partitions_factor)|int }}"

############################################### kafka ###############################################

# zookeeper
zookeeper_hosts: "{% for item in groups['zookeeper_group'] -%}
                    {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['zookeeper_listen_ip']]['ansible_ssh_host'] }}:{{ zookeeper_port|int }}
                  {%- endfor %}"

# monasca-log-api
monasca_log_api_hosts: "{% for item in groups['monasca_log_api_group'] -%}
                          {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['log_api_listen_ip']]['ansible_ssh_host'] }}
                        {%- endfor %}"
monasca_log_api_nodes: "{{ monasca_log_api_hosts.split(',') }}"

# memcached
memcached_hosts: "{% for item in groups['memcached_group'] -%}
                    {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['memcached_listen_node_ip']]['ansible_ssh_host'] }}:{{ memcached_port|int }}
                  {%- endfor %}"
memcached_nodes: "{{ memcached_hosts.split(',') }}"

# monasca-api
monasca_api_hosts: "{% for item in groups['monasca_api_group'] -%}
                          {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['monasca_api_listen_ip']]['ansible_ssh_host'] }}
                        {%- endfor %}"
monasca_api_nodes: "{{ monasca_api_hosts.split(',') }}"

storm_hosts: "{% for item in groups['storm_group'] -%}
                {% if loop.index > 1 %},{% endif %}{{ hostvars[hostvars[item]['storm_listen_ip']]['ansible_ssh_host'] }}
              {%- endfor %}"
storm_nodes: "{{ storm_hosts.split(',') }}"

# keystone
keystone_host_full: "{{ keystone_host }}:{{ keystone_port }}"
keystone_auth_method: password

# database
mysql_schema_enabled: true
postgres_schema_enabled: false
database_backend: mariadb
orm_enabled: true
hibernate_support_enabled: false
database_port: 3306
database_name: mon

number_of_database_hosts: "{{ groups['mariadb_group'] | count }}"
number_of_influxdb_hosts: "{{ groups['influxdb_group'] | count }}"

# Database user used by clustercheck script when installing Galera cluster.
clustercheck_db_user: clustercheck
clustercheck_db_password: clustercheck

# monasca-api
api_log_dir: "{{ monasca_log_dir }}/api"

# monasca-log-api
log_api_log_dir: "{{ monasca_log_dir }}/log-api"
log_api_bind_host: 0.0.0.0

# monasca-agent
monasca_agent_log_dir: "{{ monasca_log_dir }}/agent"
monasca_agent_statsd_port: 8125

# monasca-notification
monasca_notification_statsd_port: "{{ monasca_agent_statsd_port|int }}"

# apache
apache_mirror: "{{ world_repo_url }}"

# elasticsearch
elasticsearch_download: "{{ world_repo_url }}"
elasticsearch_log_dir: "{{ log_dir }}/elasticsearch"
elasticsearch_data_dir:
  - "{{ data_dir }}/elasticsearch"
elasticsearch_repo_dir: []

# log persister
log_persister_host: 127.0.0.1
monasca_log_dir: "{{ log_dir }}/monasca"
monasca_log_persister_log_dir: "{{ monasca_log_dir }}/monasca-log-persister"
monasca_log_transformer_log_dir: "{{ monasca_log_dir }}/monasca-log-transformer"

default_authorized_roles: "user,domainuser,domainadmin,monasca-user"
agent_authorized_roles: "monasca-agent"

# kibana
kibana_log_dir: "{{ log_dir }}/kibana"

# log directories to be monitored
log_agent_log_dir: "{{ monasca_log_dir }}/monasca-log-agent"

# monasca-thresh
thresh_topology_name: "thresh-cluster"
thresh_statsd_port: "{{ monasca_agent_statsd_port|int }}"

# grafana
grafana_database_user: grafana
grafana_database_password: "{{ database_grafana_password }}"
grafana_database_name: grafana
