25 Commits

Author SHA1 Message Date
Pierre Riteau
555cd39f1a Fix typos in docs
This is a follow up to I7e5c1e20c7b66b64cbd333f669ef8d8da60daaa8.

Change-Id: I11a86f59c1fb9cddde3370b544ee7bf4e8ae4fb4
2022-05-02 15:44:34 +02:00
Zuul
2c15d36fed Merge "Adds prometheus_scrape_interval" 2022-04-21 16:55:35 +00:00
Jan Horstmann
3d91e69aab Change grafana provisioning.yaml indentation
This commit changes the indentation scheme used in
`ansible/roles/grafana/templates/provisioning.yaml.j2` to the commonly
used pattern of two whitespaces.

Change-Id: I2f9d34930ed06aa2e63f7cc28bfdda7046fc3e67
2022-03-25 09:26:24 +01:00
Pierre Riteau
f37562827d Remove grafana [session] configuration
These configuration settings were removed in Grafana 6.2. Instead we can
use [remote_cache], but it is not required since it will use database
settings by default.

Change-Id: I37966027aea9039b2ecba4214444507e9d87f513
2022-02-22 10:26:37 +01:00
Will Szumski
033db44f1c Adds prometheus_scrape_interval
Grafana requires the scrape interval to be set to be able to compute
$__rate_interval. The default is 15s which does not match the kolla
default of 60s. The symptom of not setting this is that you will see
"no data" when zooming graphs that use rate queries. This occurs as the
interval will be set to a period shorter than the scrape interval.
The recommendation is that you use a common scrape interval for all
jobs. See:

- https://grafana.com/blog/2020/09/28/new-in-grafana-7.2-__rate_interval-for-prometheus-rate-queries-that-just-work/
- https://stackoverflow.com/questions/66369969/set-scrape-interval-in-provisioned-prometheus-data-source-in-grafana

Change-Id: I7e5c1e20c7b66b64cbd333f669ef8d8da60daaa8
2022-02-14 11:10:44 +00:00
Bartosz Bezak
a9e30382fe Add support for custom grafana dashboards
Allow users to import custom grafana dashboards.
Dashboards as JSON files should be placed into
"{{ node_custom_config }}/grafana/dashboards/" folder.

Change-Id: Id0f83b8d08541b3b74649f097b10c9450201b426
2021-03-16 17:10:19 +01:00
Rafael Weingärtner
f425c0678f Standardize use and construction of endpoint URLs
The goal for this push request is to normalize the construction and use
 of internal, external, and admin URLs. While extending Kolla-ansible
 to enable a more flexible method to manage external URLs, we noticed
 that the same URL was constructed multiple times in different parts
 of the code. This can make it difficult for people that want to work
 with these URLs and create inconsistencies in a large code base with
 time. Therefore, we are proposing here the use of
 "single Kolla-ansible variable" per endpoint URL, which facilitates
 for people that are interested in overriding/extending these URLs.

As an example, we extended Kolla-ansible to facilitate the "override"
of public (external) URLs with the following standard
"<component/serviceName>.<companyBaseUrl>".
Therefore, the "NAT/redirect" in the SSL termination system (HAproxy,
HTTPD or some other) is done via the service name, and not by the port.
This allows operators to easily and automatically create more friendly
 URL names. To develop this feature, we first applied this patch that
 we are sending now to the community. We did that to reduce the surface
  of changes in Kolla-ansible.

Another example is the integration of Kolla-ansible and Consul, which
we also implemented internally, and also requires URLs changes.
Therefore, this PR is essential to reduce code duplicity, and to
facility users/developers to work/customize the services URLs.

Change-Id: I73d483e01476e779a5155b2e18dd5ea25f514e93
Signed-off-by: Rafael Weingärtner <rafael@apache.org>
2020-08-19 07:22:17 +00:00
Zuul
f867373a73 Merge "support ipv6 for grafana.ini.j2" 2020-03-11 02:29:54 +00:00
yj.bai
3e582a05fa support ipv6 for grafana.ini.j2
grafana not support ipv6 in grafana.ini.j2.

Closes-Bug: #1866141

Change-Id: Ia89a9283e70c10a624f25108b487528dbb370ee4
Signed-off-by: yj.bai <bai.yongjun@99cloud.net>
2020-03-10 17:47:34 +00:00
James Kirsch
d41f072c7b Construct service REST API urls using configured protocol
Service REST API urls should be constructed using the
{{ internal_protocol }} and {{ external_protocol }} configuration
parameters.

Change-Id: Id1e8098cf59f66aa35b371149fdb4b517fa4c908
Closes-Bug: 1862817
2020-02-25 13:20:34 -08:00
James Kirsch
256322a8fe Construct service configuration urls using kolla_internal_fqdn
Service configuration urls should be constructed using
kolla_internal_fqdn instead of kolla_internal_vip_address. Otherwise SSL
validation will fail when certificates are issued using domain names.

Change-Id: I21689e22870c2f6206e37c60a3c33e19140f77ff
Closes-Bug: 1862419
2020-02-22 08:28:01 -08:00
Radosław Piliszek
bc053c09c1 Implement IPv6 support in the control plane
Introduce kolla_address filter.
Introduce put_address_in_context filter.

Add AF config to vars.

Address contexts:
- raw (default): <ADDR>
- memcache: inet6:[<ADDR>]
- url: [<ADDR>]

Other changes:

globals.yml - mention just IP in comment

prechecks/port_checks (api_intf) - kolla_address handles validation

3x interface conditional (swift configs: replication/storage)

2x interface variable definition with hostname
(haproxy listens; api intf)

1x interface variable definition with hostname with bifrost exclusion
(baremetal pre-install /etc/hosts; api intf)

neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network

basic multinode source CI job for IPv6

prechecks for rabbitmq and qdrouterd use proper NSS database now

MariaDB Galera Cluster WSREP SST mariabackup workaround
(socat and IPv6)

Ceph naming workaround in CI
TODO: probably needs documenting

RabbitMQ IPv6-only proto_dist

Ceph ms switch to IPv6 mode

Remove neutron-server ml2_type_vxlan/vxlan_group setting
as it is not used (let's avoid any confusion)
and could break setups without proper multicast routing
if it started working (also IPv4-only)

haproxy upgrade checks for slaves based on ipv6 addresses

TODO:

ovs-dpdk grabs ipv4 network address (w/ prefix len / submask)
not supported, invalid by default because neutron_external has no address
No idea whether ovs-dpdk works at all atm.

ml2 for xenapi
Xen is not supported too well.
This would require working with XenAPI facts.

rp_filter setting
This would require meddling with ip6tables (there is no sysctl param).
By default nothing is dropped.
Unlikely we really need it.

ironic dnsmasq is configured IPv4-only
dnsmasq needs DHCPv6 options and testing in vivo.

KNOWN ISSUES (beyond us):

One cannot use IPv6 address to reference the image for docker like we
currently do, see: https://github.com/moby/moby/issues/39033
(docker_registry; docker API 400 - invalid reference format)
workaround: use hostname/FQDN

RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4.
This is due to old RabbitMQ versions available in images.
IPv4 is preferred by default and may fail in the IPv6-only scenario.
This should be no problem in real life as IPv6-only is indeed IPv6-only.
Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will
no longer be relevant as we supply all the necessary config.
See: https://github.com/rabbitmq/rabbitmq-server/pull/1982

For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed
to work well). Older Ansible versions are known to miss IPv6 addresses
in interface facts. This may affect redeploys, reconfigures and
upgrades which run after VIP address is assigned.
See: https://github.com/ansible/ansible/issues/63227

Bifrost Train does not support IPv6 deployments.
See: https://storyboard.openstack.org/#!/story/2006689

Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c
Implements: blueprint ipv6-control-plane
Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-10-16 10:24:35 +02:00
Kevin Tibi
1d249ca966 Fix Grafana config for extra conf
Previous change[1] of config for grafana introduced
new bugs.

[1]https://review.openstack.org/#/c/548291/

Change-Id: Ib62f0670003612073ff08f702febe81c753b72e5
2018-05-16 16:29:22 +02:00
Mark Giles
6777c903a0 Automatically add Prometheus as a Grafana datasource
Assuming both Prometheus and Grafana are enabled, this change
configures Grafana such that it can use data collected by the
Prometheus server.

Partially-Implements: blueprint prometheus
Change-Id: I0290806d0c622b1de33cf7047f099795b4c780b9
2018-05-03 11:29:27 -04:00
Kevin TIBI
965669b461 Custom configuration for grafana
Add custom configuration for grafana

Change-Id: I03e3ab57ce538c0f86d1442c7bd30d3ce9012637
2018-04-13 10:43:44 +02:00
Doug Szumski
b8979c2083 Support configuring grafana local admin username
The grafana local admin username can be configured by overriding
the admin user field in the grafana.ini file. However, this will
fail when kolla-ansible attempts to configure any enabled
datasources for grafana because the local admin password is
hardcoded to 'admin'. This change allows the grafana local admin
password to be configured via group vars so that the correct
username is used when configuring datasources.

Closes-Bug: #1750408
Change-Id: I0962200894f7a0452da1c249a68f9230b6fab13f
2018-02-19 16:58:50 +00:00
guochao
08753b404e Support customizing grafana home dashboard
Replace grafana home dashboard with file in node_custom_config folder.

Change-Id: I00e3963ee287c526935e34169b63b1a40e6b4025
2017-07-24 13:11:31 +08:00
Bertrand Lallau
afdd11b9a2 Generalize api_interface_address variable usage
Useful api_interface_address variable has been define here:
https://github.com/openstack/kolla-ansible/blob/master/ansible/group_vars/all.yml#L57
In order to simplify codebase we must use it as much as possible.

Change-Id: I18fec19bf69e05a22a4142a9cd1165eccd022455
2017-05-23 08:35:15 +00:00
Bertrand Lallau
a49e18a73f Fix Grafana config file template to use variables
Grafana session/provider_config property actually uses a static user
and a static database name.
If grafana_database_user and grafana_database_name default value is
changed, the config generated will not be updated accordingly.

Change-Id: I517daab5439ab1aef56a4b3a11104bd0717223bf
Closes-Bug: #1682810
2017-04-14 14:40:53 +02:00
prameswar
c1d80d3410 grafana added to haproxy to listen on VIP
Closes-bug: #1636579

Change-Id: I5628196885bddebab84abb71c89753582123418c
2016-10-26 15:51:54 +00:00
Jeffrey Zhang
aed67d9cc5 Add missing closing brace in grafana configuration file
Change-Id: Iebcca62cccb02b71953c43e1b595b731fc9d0b92
Closes-Bug: #1634506
2016-10-18 21:36:09 +08:00
zhubingbing
ce3126c54a
Fix grafana upgrade permission issue
Change-Id: I15d96a8ee04f860ce149b8a64f306e181383d2fa
Partial-Bug: #1631503
2016-10-18 11:09:34 +08:00
Jeffrey Zhang
0c15da00c8 Fix the wrong setting for Grafana session
The provider_config is configured wrong. And Grafana only supports one
Memcached instance for session, which is bad for high available.

Use mysql to provider the session storage.

TrivialFix

Change-Id: I889a961d7f36f44701654fbac04b4bff05043506
2016-10-10 19:47:32 +08:00
Eduardo Gonzalez
45ef86177f Add newline in grafana template
Grafana service fails while login
because a wrong memcached connection.

TrivialFix

Change-Id: I3b73733cd25bace09f1e478cbb770ba6a5ed85a5
2016-09-26 19:11:01 +02:00
Mathias Ewald
fe61591a7c Added grafana role
Added ansible role to deploy grafana

Added host group for grafana deployment

Co-Authored-By: zhubingbing <zhubingbing10@gmail.com>

Change-Id: I3dec4e8586b6f65fa7de66a48506d1c79de2fe1e
Partially-Implements: Blueprint performance-monitoring
2016-09-14 09:36:34 +00:00