mirror of
https://github.com/jcwimer/openstack-exporter
synced 2026-03-24 17:44:42 +00:00
Added cloud name to all metrics
This commit is contained in:
@@ -5,10 +5,10 @@ import datetime
|
||||
import traceback
|
||||
import prometheus_client as prom
|
||||
|
||||
api_metrics = prom.Gauge('openstack_api_response_seconds', 'Time for openstack api to execute.', ['api_name'])
|
||||
api_status = prom.Gauge('openstack_api_status', 'API current status. 1 = up 0 = down.',['api_name'])
|
||||
api_metrics = prom.Gauge('openstack_api_response_seconds', 'Time for openstack api to execute.', ['api_name','cloud_name'])
|
||||
api_status = prom.Gauge('openstack_api_status', 'API current status. 1 = up 0 = down.',['api_name','cloud_name'])
|
||||
|
||||
def generate_nova_metrics(connection):
|
||||
def generate_nova_metrics(connection,cloud_name):
|
||||
try:
|
||||
start_time = datetime.datetime.now()
|
||||
for server in connection.compute.servers():
|
||||
@@ -17,14 +17,14 @@ def generate_nova_metrics(connection):
|
||||
time_took = end_time - start_time
|
||||
seconds_took = time_took.seconds
|
||||
print(f'Nova took {seconds_took} seconds')
|
||||
api_metrics.labels('nova').set(seconds_took)
|
||||
api_status.labels('nova').set(1)
|
||||
api_metrics.labels('nova',cloud_name).set(seconds_took)
|
||||
api_status.labels('nova',cloud_name).set(1)
|
||||
except:
|
||||
print(traceback.print_exc())
|
||||
print("Nova api is down.")
|
||||
api_status.labels('nova').set(0)
|
||||
api_status.labels('nova',cloud_name).set(0)
|
||||
|
||||
def generate_neutron_metrics(connection):
|
||||
def generate_neutron_metrics(connection,cloud_name):
|
||||
try:
|
||||
project = connection.current_project
|
||||
start_time = datetime.datetime.now()
|
||||
@@ -34,14 +34,14 @@ def generate_neutron_metrics(connection):
|
||||
time_took = end_time - start_time
|
||||
seconds_took = time_took.seconds
|
||||
print(f'Neutron took {seconds_took} seconds')
|
||||
api_metrics.labels('neutron').set(seconds_took)
|
||||
api_status.labels('neutron').set(1)
|
||||
api_metrics.labels('neutron',cloud_name).set(seconds_took)
|
||||
api_status.labels('neutron',cloud_name).set(1)
|
||||
except:
|
||||
print(traceback.print_exc())
|
||||
print("Neutron api is down.")
|
||||
api_status.labels('neutron').set(0)
|
||||
api_status.labels('neutron',cloud_name).set(0)
|
||||
|
||||
def generate_cinder_metrics(connection):
|
||||
def generate_cinder_metrics(connection,cloud_name):
|
||||
try:
|
||||
start_time = datetime.datetime.now()
|
||||
for volume in connection.volume.volumes():
|
||||
@@ -50,8 +50,8 @@ def generate_cinder_metrics(connection):
|
||||
time_took = end_time - start_time
|
||||
seconds_took = time_took.seconds
|
||||
print(f'Cinder took {seconds_took} seconds')
|
||||
api_metrics.labels('cinder').set(seconds_took)
|
||||
api_status.labels('cinder').set(1)
|
||||
api_metrics.labels('cinder',cloud_name).set(seconds_took)
|
||||
api_status.labels('cinder',cloud_name).set(1)
|
||||
except:
|
||||
print(traceback.print_exc())
|
||||
print("Cinder api is down.")
|
||||
|
||||
Reference in New Issue
Block a user