Skip to content

Commit

Permalink
Add disabled reason label for Nova and Cinder (#91)
Browse files Browse the repository at this point in the history
* DisabledReason label for Nova

* DisabledReason label for Cinder

Co-authored-by: Jorge Niedbalski <[email protected]>
  • Loading branch information
newrushbolt and niedbalski committed Mar 27, 2020
1 parent bd991bc commit a96e106
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 13 deletions.
4 changes: 2 additions & 2 deletions exporters/cinder.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func mapVolumeStatus(volStatus string) int {
var defaultCinderMetrics = []Metric{
{Name: "volumes", Fn: ListVolumes},
{Name: "snapshots", Fn: ListSnapshots},
{Name: "agent_state", Labels: []string{"hostname", "service", "adminState", "zone"}, Fn: ListCinderAgentState},
{Name: "agent_state", Labels: []string{"hostname", "service", "adminState", "zone", "disabledReason"}, Fn: ListCinderAgentState},
{Name: "volume_status", Labels: []string{"id", "name", "status", "bootable", "tenant_id", "size", "volume_type"}, Fn: nil},
{Name: "pool_capacity_free_gb", Labels: []string{"name", "volume_backend_name", "vendor_name"}, Fn: ListCinderPoolCapacityFree},
{Name: "pool_capacity_total_gb", Labels: []string{"name", "volume_backend_name", "vendor_name"}, Fn: nil},
Expand Down Expand Up @@ -144,7 +144,7 @@ func ListCinderAgentState(exporter *BaseOpenStackExporter, ch chan<- prometheus.
state = 1
}
ch <- prometheus.MustNewConstMetric(exporter.Metrics["agent_state"].Metric,
prometheus.CounterValue, float64(state), service.Host, service.Binary, service.Status, service.Zone)
prometheus.CounterValue, float64(state), service.Host, service.Binary, service.Status, service.Zone, service.DisabledReason)
}

return nil
Expand Down
6 changes: 3 additions & 3 deletions exporters/cinder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ type CinderTestSuite struct {
var cinderExpectedUp = `
# HELP openstack_cinder_agent_state agent_state
# TYPE openstack_cinder_agent_state counter
openstack_cinder_agent_state{adminState="enabled",hostname="devstack",service="cinder-backup",zone="nova"} 1
openstack_cinder_agent_state{adminState="enabled",hostname="devstack",service="cinder-scheduler",zone="nova"} 1
openstack_cinder_agent_state{adminState="enabled",hostname="devstack@lvmdriver-1",service="cinder-volume",zone="nova"} 1
openstack_cinder_agent_state{adminState="enabled",disabledReason="",hostname="devstack@lvmdriver-1",service="cinder-volume",zone="nova"} 1
openstack_cinder_agent_state{adminState="enabled",disabledReason="Test1",hostname="devstack",service="cinder-scheduler",zone="nova"} 1
openstack_cinder_agent_state{adminState="enabled",disabledReason="Test2",hostname="devstack",service="cinder-backup",zone="nova"} 1
# HELP openstack_cinder_pool_capacity_free_gb pool_capacity_free_gb
# TYPE openstack_cinder_pool_capacity_free_gb gauge
openstack_cinder_pool_capacity_free_gb{name="i666testhost@FastPool01",vendor_name="EMC",volume_backend_name="VNX_Pool"} 636.316
Expand Down
4 changes: 2 additions & 2 deletions exporters/fixtures/cinder_os_services.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"state": "up",
"updated_at": "2017-06-29T05:50:35.000000",
"host": "devstack",
"disabled_reason": null
"disabled_reason": "Test1"
},
{
"status": "enabled",
Expand All @@ -15,7 +15,7 @@
"state": "up",
"updated_at": "2017-06-29T05:50:42.000000",
"host": "devstack",
"disabled_reason": null
"disabled_reason": "Test2"
},
{
"status": "enabled",
Expand Down
4 changes: 2 additions & 2 deletions exporters/nova.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var defaultNovaMetrics = []Metric{
{Name: "availability_zones", Fn: ListAZs},
{Name: "security_groups", Fn: ListComputeSecGroups},
{Name: "total_vms", Fn: ListAllServers},
{Name: "agent_state", Labels: []string{"id", "hostname", "service", "adminState", "zone"}, Fn: ListNovaAgentState},
{Name: "agent_state", Labels: []string{"id", "hostname", "service", "adminState", "zone", "disabledReason"}, Fn: ListNovaAgentState},
{Name: "running_vms", Labels: []string{"hostname", "availability_zone", "aggregates"}, Fn: ListHypervisors},
{Name: "current_workload", Labels: []string{"hostname", "availability_zone", "aggregates"}},
{Name: "vcpus_available", Labels: []string{"hostname", "availability_zone", "aggregates"}},
Expand Down Expand Up @@ -112,7 +112,7 @@ func ListNovaAgentState(exporter *BaseOpenStackExporter, ch chan<- prometheus.Me
state = 1
}
ch <- prometheus.MustNewConstMetric(exporter.Metrics["agent_state"].Metric,
prometheus.CounterValue, float64(state), service.ID, service.Host, service.Binary, service.Status, service.Zone)
prometheus.CounterValue, float64(state), service.ID, service.Host, service.Binary, service.Status, service.Zone, service.DisabledReason)
}

return nil
Expand Down
8 changes: 4 additions & 4 deletions exporters/nova_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ type NovaTestSuite struct {
var novaExpectedUp = `
# HELP openstack_nova_agent_state agent_state
# TYPE openstack_nova_agent_state counter
openstack_nova_agent_state{adminState="disabled",hostname="host1",id="1",service="nova-scheduler",zone="internal"} 1
openstack_nova_agent_state{adminState="disabled",hostname="host1",id="2",service="nova-compute",zone="nova"} 1
openstack_nova_agent_state{adminState="disabled",hostname="host2",id="4",service="nova-compute",zone="nova"} 0
openstack_nova_agent_state{adminState="enabled",hostname="host2",id="3",service="nova-scheduler",zone="internal"} 0
openstack_nova_agent_state{adminState="disabled",disabledReason="test1",hostname="host1",id="1",service="nova-scheduler",zone="internal"} 1
openstack_nova_agent_state{adminState="disabled",disabledReason="test2",hostname="host1",id="2",service="nova-compute",zone="nova"} 1
openstack_nova_agent_state{adminState="disabled",disabledReason="test4",hostname="host2",id="4",service="nova-compute",zone="nova"} 0
openstack_nova_agent_state{adminState="enabled",disabledReason="",hostname="host2",id="3",service="nova-scheduler",zone="internal"} 0
# HELP openstack_nova_availability_zones availability_zones
# TYPE openstack_nova_availability_zones gauge
openstack_nova_availability_zones 1
Expand Down

0 comments on commit a96e106

Please sign in to comment.