1
0
mirror of https://github.com/jcwimer/openstack-exporter synced 2026-03-24 17:44:42 +00:00

Changed api response time to milliseconds, updated grafan dashbaords, and updated README to reflect that.

This commit is contained in:
2020-12-25 09:57:18 -05:00
parent c9c7925e85
commit c6b1b9f211
3 changed files with 100 additions and 95 deletions

View File

@@ -5,19 +5,20 @@ 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','cloud_name'])
api_metrics = prom.Gauge('openstack_api_response_milliseconds', 'Time for openstack api to execute in milliseconds.', ['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,cloud_name):
try:
start_time = datetime.datetime.now()
for server in connection.compute.servers():
name = server
name = server.name
break
end_time = datetime.datetime.now()
time_took = end_time - start_time
seconds_took = time_took.seconds
print(f'Nova took {seconds_took} seconds')
api_metrics.labels('nova',cloud_name).set(seconds_took)
milliseconds_took = time_took.microseconds / 1000
print(f'Nova took {milliseconds_took} milliseconds')
api_metrics.labels('nova',cloud_name).set(milliseconds_took)
api_status.labels('nova',cloud_name).set(1)
except:
print(traceback.print_exc())
@@ -29,12 +30,13 @@ def generate_neutron_metrics(connection,cloud_name):
project = connection.current_project
start_time = datetime.datetime.now()
for network in connection.network.networks(project_id=project.id):
name = network
name = network.name
break
end_time = datetime.datetime.now()
time_took = end_time - start_time
seconds_took = time_took.seconds
print(f'Neutron took {seconds_took} seconds')
api_metrics.labels('neutron',cloud_name).set(seconds_took)
milliseconds_took = time_took.microseconds / 1000
print(f'Neutron took {milliseconds_took} milliseconds')
api_metrics.labels('neutron',cloud_name).set(milliseconds_took)
api_status.labels('neutron',cloud_name).set(1)
except:
print(traceback.print_exc())
@@ -45,12 +47,13 @@ def generate_cinder_metrics(connection,cloud_name):
try:
start_time = datetime.datetime.now()
for volume in connection.volume.volumes():
name = volume
name = volume.name
break
end_time = datetime.datetime.now()
time_took = end_time - start_time
seconds_took = time_took.seconds
print(f'Cinder took {seconds_took} seconds')
api_metrics.labels('cinder',cloud_name).set(seconds_took)
milliseconds_took = time_took.microseconds / 1000
print(f'Cinder took {milliseconds_took} milliseconds')
api_metrics.labels('cinder',cloud_name).set(milliseconds_took)
api_status.labels('cinder',cloud_name).set(1)
except:
print(traceback.print_exc())