[vitrage][monasca] Monasca datasource for Vitrage

Joseph Davis joseph.davis at suse.com
Sat Dec 15 03:49:52 UTC 2018


I left Bartosz some comments on his review, and I'll add a few things below.

joseph

On 12/13/18 12:52 AM, openstack-discuss-request at lists.openstack.org wrote
> From: Ifat Afek <ifatafekn at gmail.com>
> Message-ID:
> 	<CALxdkcxxrtYYv+f4-enZ2uuA88qJdPuze732Ufg6MLMADBcOtg at mail.gmail.com>
>
> Hi Witek,
>
> On Wed, Dec 12, 2018 at 5:04 PM Bedyk, Witold <witold.bedyk at est.fujitsu.com>
> wrote:
>
>
>>> There is one issue that we need to close though – how to connect the
>>> Monasca alarms to the resources in Vitrage.
>>> In order to connect an alarm to a resource, Vitrage should be able to
>>> identify that resource in its entity graph using the dimensions coming from
>>> Monasca. I understood that these dimensions are configurable and not
>>> pre-defined.
>> Correct. To make the picture complete: every alarm contains an associated
>> `metric name` and a set of dimensions which identify the monitored
>> resource. Both metric name and dimensions could potentially be used in
>> Vitrage.
>>
>>
>>
>> 1. For OpenStack services we typically use dimension keys `hostname` and
>> `service`. Examples would be:
>>
>>                  `name`: `http_status`, `dimensions`: {`hostname`: `node1`,
>> `service`: `keystone`, `url`: `http://node1/identity`
>> <http://node1/identity>}
>>
>>
>>
>> Libvirt metrics all have the dimension keys `hostname`,
>> `service`=`compute`, `resource_id`=instance_id
>>
>
> By instance_id do you mean the libvirt id or the OpenStack UUID? In order
> to correlate the id with the vm that exists in Vitrage, we need the Nova
> UUID.
> Another question: are these dimensions names always the same? Is it
> possible to change their names?
>
I believe it is the OpenStack id in each case.

Dimension names are always the same per type of metric, but different 
metrics can define different dimensions.

For example, the http_status metric has a 'url' but disk.space_used_perc 
has a 'device' and cpu.idle_perc has neither.  All metrics have 
'hostname', 'service', and a few other dimensions in common.

>> 2. For other resources I’m not sure if we can define a general rule for
>> assignments. As you have said, the unique information may be included in
>> more the one dimension.
>>
>>
>>
>> For Prometheus, we use labels on each metric as dimensions. Additional
>> dimensions can be configured in agent per Prometheus endpoint.
>>
We also have a monasca-ceilometer component (aka. Ceilosca) that can 
send metrics from Ceilometer to Monasca. These metrics include the 
OpenStack resource_id of the source of the metric. Any alarms created 
from Ceilometer data can carry through that resource_id. From what I've 
seen we don't currently include a resource_type, but that should be 
something we can configure in the metric. If nothing else, we may be 
able to statically define the resource_type as part of the metric 
definition (each alarm will be specific to the type of resource 
anyway).  But don't hold me to that - I have some more reading to do to 
understand the nuances. :) The dimensions from the metrics are carried 
over to the alarms.
> <snip>
> Can you give us some more examples of Monasca dimensions?

As Witek said, the metric dimensions are pretty flexible. You can see 
some of the dimensions mentioned in my answer above. I can try to pull a 
list of some standard alarm definitions and associated metrics from a 
SUSE install, or if we have a particular few alarms we want to start 
with then we can focus on those.





More information about the openstack-discuss mailing list