Go to file
Jaromir Wysoglad 2f31846d73 Split get_prometheus_client to multiple functions
Improvements:
- better readability
- get_prom_client_from_keystone can be used by watcher for
  PrometheusAPIClient initialization.
- A better split between how the client is created for Aetos and
  how it's created for Prometheus.

Changes to the previous behavior of get_prometheus_client:
- It's not possible to override PrometheusAPIClient arguments with
  environment variables if they're retrieved from Keystone.
- It's not possible to use config file / environment variables to
  connect to Aetos (the keystone session parameter won't be passed to
  PrometheusAPIClient and so it won't be able to authenticate)

I think even though, there are some changes to how Aetos can access
can be configured, it's getting it a bit closer to how other services
work (getting the endpoint from keystone and not requiring / allowing
additional configuration). Prometheus access configuration through
config file / env variables stays unchanged.

Change-Id: Icd08347056e92502992d4fee799bb3e06e03c0c9
Signed-off-by: Jaromir Wysoglad <jwysogla@redhat.com>
2025-07-31 16:22:25 -04:00
2023-11-15 05:54:41 -05:00
2023-10-16 09:02:34 -04:00
2023-10-16 09:02:34 -04:00
2025-06-27 02:53:27 +02:00
2022-11-23 08:49:25 -05:00
2023-08-04 14:25:09 +02:00
2025-07-01 00:13:26 +09:00
2022-04-25 13:02:34 +02:00
2025-06-30 16:14:29 +00:00
2025-06-05 06:40:38 +00:00

python-observabilityclient

observabilityclient is an OpenStackClient (OSC) plugin implementation that implements commands for management of Prometheus.

Development

Install your OpenStack environment and patch your openstack client application using python.

# if using standalone, the following commands come after 'sudo dnf install -y python3-tripleoclient'

su - stack

# clone and install observability client plugin
git clone https://opendev.org/openstack/python-observabilityclient.git
cd python-observabilityclient
sudo python setup.py install --prefix=/usr

Usage

Use openstack metric query somequery to query for metrics in prometheus.

To use the python api do the following:

from observabilityclient import client

c = client.Client(
            '1', keystone_client.get_session(conf),
            adapter_options={
                'interface': conf.service_credentials.interface,
                'region_name': conf.service_credentials.region_name})
c.query.query("somequery")

List of commands

openstack metric list - lists all metrics openstack metric show - shows current values of a metric openstack metric query - queries prometheus and outputs the result openstack metric delete - deletes some metrics openstack metric snapshot - takes a snapshot of the current data openstack metric clean-tombstones - cleans the tsdb tombstones

List of functions provided by the python library

c.query.list - lists all metrics c.query.show - shows current values of a metric c.query.query - queries prometheus and outputs the result c.query.delete - deletes some metrics c.query.snapshot - takes a snapshot of the current data c.query.clean-tombstones - cleans the tsdb tombstones

Description
Client for Telemetry projects for Prometheus communication
Readme 653 KiB
Languages
Python 98.1%
Shell 1.9%