Infrastructure Integration¶
Configuration¶
-
First configure a Epoch role and user with your identity server
1. openstack role create epoch_monitoring 2. openstack user create epoch --password my_password --project my_project_name 3. openstack role add epoch_monitoring --project my_project_name --user epoch
-
Update your policy.json files to grant the needed permissions. role:epoch_monitoring requires access to the following operations:
Nova
- "compute_extension:aggregates", - "compute_extension:hypervisors", - "compute_extension:server_diagnostics", - "compute_extension:v3:os-hypervisors", - "compute_extension:v3:os-server-diagnostics", - "compute_extension:availability_zone:detail", - "compute_extension:v3:availability_zone:detail", - "compute_extension:used_limits_for_admin", - "os_compute_api:os-aggregates:index", - "os_compute_api:os-aggregates:show", - "os_compute_api:os-hypervisors", - "os_compute_api:os-hypervisors:discoverable", - "os_compute_api:os-server-diagnostics", - "os_compute_api:os-used-limits"
Neutron
- "get_network"
Keystone
- "identity:get_project" - "identity:list_projects"
You may need to restart your Keystone, Neutron and Nova API services to ensure that the policy changes take place.
-
Configure the agent by editing
/etc/nutanix/epoch-dd-agent/conf.d/openstack.yaml
in the collectors.
Example:
init_config:
# All directives prefixed with a '#' sign are optional and will default to sane values when omitted
# Where your identity server lives. Note that the server must support Identity API v3
keystone_server_url: "https://my-keystone-server.com:<port>/"
# The hostname of this machine registered with Nova. Defaults to socket.gethostname()
# os_host: my_hostname
# Nova API version to use - this check supports v2 and v2.1 (default)
# nova_api_version: 'v2.1'
# IDs of Nova Hypervisors to monitor
# Required for OpenStack Kilo or `nova_api_version` v2 -indexing hypervisors is restricted
# to `admin`s in Compute API v2-.
# On more recent versions, the check automatically discovers the locally running hypervisor,
# based on the `hypervisor_hostname`.
# hypervisor_ids:
# - 1
# IDs of servers to exclude from monitoring. (by default the agent will collect metrics from all guest servers that are running on the host)
# Regex expressions for the server IDs are supported.
# exclude_server_ids:
# - server_1
# - other_.*
# IDs of networks to exclude from monitoring (by default the agent will collect metrics from networks returned by the neutron:get_networks operation)
# Regex expressions for the network IDs to exclude are supported.
# exclude_network_ids:
# - network_1
# - other_.*
# Whether to enable SSL certificate verification for HTTP requests. Defaults to true, you may
# need to set to false when using self-signed certs
# ssl_verify: true
# Whether the dd-agent proxy should also be used for openstack API requests (if set)
# use_agent_proxy: true
instances:
- name: instance_1 # A required unique identifier for this instance
# The authorization scope that will be used to request a token from Identity API v3
# The auth scope must resolve to 1 of the following structures:
# {'project': {'name': 'my_project', 'domain': 'my_domain} OR {'project': {'id': 'my_project_id'}}
auth_scope:
project:
id: my_project_id
# Alternately
# project:
# name: my_project_name
# domain:
# id: default
# User credentials
# Password authentication is the only auth method supported right now
# User expects username, password, and user domain id
# `user` should resolve to a structure like {'password': 'my_password', 'name': 'my_name', 'domain': {'id': 'my_domain_id'}}
user:
password: my_password
name: epoch
domain:
id: default
# In some cases, the nova url is returned without the tenant id suffixed
# e.g. http://172.0.0.1:8774 rather than http://172.0.0.1:8774/<tenant_id>
# Setting append_tenant_id to true manually adds this suffix for downstream requests
# append_tenant_id: false
-
Check and make sure that all yaml files are valid with following command:
/etc/init.d/epoch-collectors configcheck
-
Restart the Agent using the following command:
/etc/init.d/epoch-collectors restart
-
Execute the info command to verify that the integration check has passed:
/etc/init.d/epoch-collectors info
The output of the command should contain a section similar to the following:
Checks
======
[...]
openstack
---------
- instance #0 [OK]
- Collected 8 metrics & 0 events
Infrastructure Datasources¶
Datasource | Available Aggregations | Unit | Description |
---|---|---|---|
openstack.nova.current_workload | avg max min sum |
Current workload on the Nova hypervisor | |
openstack.nova.disk_available_least | avg max min sum |
gibibyte | Disk available for the Nova hypervisor |
openstack.nova.free_disk_gb | avg max min sum |
gibibyte | Free disk on the Nova hypervisor |
openstack.nova.free_ram_mb | avg max min sum |
mebibyte | Free RAM on the Nova hypervisor |
openstack.nova.hypervisor_load.1 | avg max min sum |
The average hypervisor load over one minute. | |
openstack.nova.hypervisor_load.5 | avg max min sum |
The average hypervisor load over five minutes. | |
openstack.nova.hypervisor_load.15 | avg max min sum |
The average hypervisor load over fifteen minutes. | |
openstack.nova.limits.max_image_meta | avg max min sum |
The maximum allowed image metadata definitions for this tenant | |
openstack.nova.limits.max_personality | avg max min sum |
The maximum allowed personalities for this tenant | |
openstack.nova.limits.max_personality_size | avg max min sum |
The maximum size of a single personality allowed for this tenant | |
openstack.nova.limits.max_security_group_rules | avg max min sum |
The maximum number of security group rules allowed for this tenant | |
openstack.nova.limits.max_security_groups | avg max min sum |
The maximum number of security groups allowed for this tenant | |
openstack.nova.limits.max_server_meta | avg max min sum |
The maximum allowed service metadata definitions for this tenant | |
openstack.nova.limits.max_total_cores | avg max min sum |
The maximum allowed cores for this tenant | |
openstack.nova.limits.max_total_floating_ips | avg max min sum |
The maximum allowed floating IPs for this tenant | |
openstack.nova.limits.max_total_instances | avg max min sum |
The maximum number of instances allowed for this tenant | |
openstack.nova.limits.max_total_keypairs | avg max min sum |
The maximum allowed keypairs allowed for this tenant | |
openstack.nova.limits.total_cores_used | avg max min sum |
The total cores used by this tenant | |
openstack.nova.limits.total_floating_ips_used | avg max min sum |
The total floating IPs used by this tenant | |
openstack.nova.limits.total_instances_used | avg max min sum |
The total instances used by this tenant | |
openstack.nova.limits.total_security_groups_used | avg max min sum |
The total number of security groups used by this tenant | |
openstack.nova.running_vms | avg max min sum |
Number of running VMs on this hypervisor host | |
openstack.nova.vcpus | avg max min sum |
Number of vCPUs available on this hypervisor host | |
openstack.nova.vcpus_used | avg max min sum |
Number of vCPUS used on this hypervisor host | |
openstack.nova.server.hdd_errors | avg max min sum |
The number of errors seen by the server when accessing an HDD device | |
openstack.nova.server.hdd_read_req | avg max min sum |
The number of read requests made to an HDD device by this server | |
openstack.nova.server.hdd_write_req | avg max min sum |
The number of write requests made to an HDD device by this server | |
openstack.nova.server.vda_errors | avg max min sum |
The number of errors seen by the server when accessing a VDA device | |
openstack.nova.server.vda_read_req | avg max min sum |
The number of read requests made to a VDA device by this server | |
openstack.nova.server.vda_write_req | avg max min sum |
The number of write requests made to a VDA device by this server | |
openstack.nova.limits.max_total_ram_size | avg max min sum |
gibibyte | The max allowed RAM size for this tenant |
openstack.nova.limits.total_ram_used | avg max min sum |
gibibyte | The current RAM used by this tenant |
openstack.nova.local_gb | avg max min sum |
gibibyte | The size in GB of the ephemeral disk present on this hypervisor host |
openstack.nova.local_gb_used | avg max min sum |
gibibyte | The size in GB of disk used on this hypervisor host |
openstack.nova.memory_mb | avg max min sum |
mebibyte | The size in MB of RAM present on this hypervisor host |
openstack.nova.memory_mb_used | avg max min sum |
mebibyte | The size in MB of RAM used on this hypervisor host |
openstack.nova.server.hdd_read | avg max min sum |
byte | Number of bytes read from an HDD device by this server |
openstack.nova.server.hdd_write | avg max min sum |
byte | Number of bytes written to an HDD device by this server |
openstack.nova.server.vda_read | avg max min sum |
byte | Number of bytes read from a VDA device by this server |
openstack.nova.server.vda_write | avg max min sum |
byte | Number of bytes written to a VDA device by this server |
openstack.nova.server.memory | avg max min sum |
mebibyte | The amount of memory in MB provisioned for this server |
openstack.nova.server.memory_actual | avg max min sum |
mebibyte | The amount of memory in MB provisioned for this server |
openstack.nova.server.memory_rss | avg max min sum |
mebibyte | The amount of memory used by the processes of this server that is not associated with disk pages - such as stack and heap memory |
openstack.nova.server.cpu0_time | avg max min sum |
nanosecond | CPU time in nanoseconds of this virtual CPU |