Add prometheus data source for watcher decision engine
This adds a new data source for the Watcher decision engine that implements the watcher.decision_engine.datasources.DataSourceBase. related spec was merged at [1]. Implements: blueprint prometheus-datasource [1] https://review.opendev.org/c/openstack/watcher-specs/+/933300 Change-Id: I6a70c4acc70a864c418cf347f5f6951cb92ec906
This commit is contained in:
@@ -42,6 +42,7 @@ from watcher.conf import nova_client
|
||||
from watcher.conf import paths
|
||||
from watcher.conf import placement_client
|
||||
from watcher.conf import planner
|
||||
from watcher.conf import prometheus_client
|
||||
from watcher.conf import service
|
||||
|
||||
CONF = cfg.CONF
|
||||
@@ -70,3 +71,4 @@ clients_auth.register_opts(CONF)
|
||||
ironic_client.register_opts(CONF)
|
||||
collector.register_opts(CONF)
|
||||
placement_client.register_opts(CONF)
|
||||
prometheus_client.register_opts(CONF)
|
||||
|
||||
58
watcher/conf/prometheus_client.py
Normal file
58
watcher/conf/prometheus_client.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# Copyright 2024 Red Hat, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
prometheus_client = cfg.OptGroup(name='prometheus_client',
|
||||
title='Configuration Options for Prometheus',
|
||||
help="See https://docs.openstack.org/watcher/"
|
||||
"latest/datasources/prometheus.html for "
|
||||
"details on how these options are used.")
|
||||
|
||||
PROMETHEUS_CLIENT_OPTS = [
|
||||
cfg.StrOpt('host',
|
||||
help="The hostname or IP address for the prometheus server."),
|
||||
cfg.StrOpt('port',
|
||||
help="The port number used by the prometheus server."),
|
||||
cfg.StrOpt('fqdn_label',
|
||||
default="fqdn",
|
||||
help="The label that Prometheus uses to store the fqdn of "
|
||||
"exporters. Defaults to 'fqdn'."),
|
||||
cfg.StrOpt('username',
|
||||
help="The basic_auth username to use to authenticate with the "
|
||||
"Prometheus server."),
|
||||
cfg.StrOpt('password',
|
||||
secret=True,
|
||||
help="The basic_auth password to use to authenticate with the "
|
||||
"Prometheus server."),
|
||||
cfg.StrOpt('cafile',
|
||||
help="Path to the CA certificate for establishing a TLS "
|
||||
"connection with the Prometheus server."),
|
||||
cfg.StrOpt('certfile',
|
||||
help="Path to the client certificate for establishing a TLS "
|
||||
"connection with the Prometheus server."),
|
||||
cfg.StrOpt('keyfile',
|
||||
help="Path to the client key for establishing a TLS "
|
||||
"connection with the Prometheus server."),
|
||||
]
|
||||
|
||||
|
||||
def register_opts(conf):
|
||||
conf.register_group(prometheus_client)
|
||||
conf.register_opts(PROMETHEUS_CLIENT_OPTS, group=prometheus_client)
|
||||
|
||||
|
||||
def list_opts():
|
||||
return [(prometheus_client, PROMETHEUS_CLIENT_OPTS)]
|
||||
Reference in New Issue
Block a user