Add missing configuration files for ceilometer
Added pipeline.yaml, event_pipeline.yaml and event_definitions.yaml based on sample files in OpenStack documentation Edited haproxy.cfg for ceilometer support Edited ceilometer-base dockerfile for missing dependency Change-Id: I6ade05255e7e1aa7dbcffd026fad5869036d0d32 Closes-Bug: #1604004
This commit is contained in:
parent
bcb21d289b
commit
30e3d90499
@ -39,3 +39,12 @@
|
|||||||
- "ceilometer-api"
|
- "ceilometer-api"
|
||||||
- "ceilometer-central"
|
- "ceilometer-central"
|
||||||
- "ceilometer-compute"
|
- "ceilometer-compute"
|
||||||
|
|
||||||
|
- name: Copying over event and pipeline yaml for notification service
|
||||||
|
template:
|
||||||
|
src: "{{ item }}.j2"
|
||||||
|
dest: "{{ node_config_directory }}/ceilometer-notification/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "event_definitions.yaml"
|
||||||
|
- "event_pipeline.yaml"
|
||||||
|
- "pipeline.yaml"
|
||||||
|
@ -6,6 +6,24 @@
|
|||||||
"dest": "/etc/ceilometer/ceilometer.conf",
|
"dest": "/etc/ceilometer/ceilometer.conf",
|
||||||
"owner": "ceilometer",
|
"owner": "ceilometer",
|
||||||
"perm": "0600"
|
"perm": "0600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/event_definitions.yaml",
|
||||||
|
"dest": "/etc/ceilometer/event_definitions.yaml",
|
||||||
|
"owner": "ceilometer",
|
||||||
|
"perm": "0600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/event_pipeline.yaml",
|
||||||
|
"dest": "/etc/ceilometer/event_pipeline.yaml",
|
||||||
|
"owner": "ceilometer",
|
||||||
|
"perm": "0600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "{{ container_config_directory }}/pipeline.yaml",
|
||||||
|
"dest": "/etc/ceilometer/pipeline.yaml",
|
||||||
|
"owner": "ceilometer",
|
||||||
|
"perm": "0600"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
553
ansible/roles/ceilometer/templates/event_definitions.yaml.j2
Normal file
553
ansible/roles/ceilometer/templates/event_definitions.yaml.j2
Normal file
@ -0,0 +1,553 @@
|
|||||||
|
---
|
||||||
|
- event_type: compute.instance.*
|
||||||
|
traits: &instance_traits
|
||||||
|
tenant_id:
|
||||||
|
fields: payload.tenant_id
|
||||||
|
user_id:
|
||||||
|
fields: payload.user_id
|
||||||
|
instance_id:
|
||||||
|
fields: payload.instance_id
|
||||||
|
host:
|
||||||
|
fields: publisher_id.`split(., 1, 1)`
|
||||||
|
service:
|
||||||
|
fields: publisher_id.`split(., 0, -1)`
|
||||||
|
memory_mb:
|
||||||
|
type: int
|
||||||
|
fields: payload.memory_mb
|
||||||
|
disk_gb:
|
||||||
|
type: int
|
||||||
|
fields: payload.disk_gb
|
||||||
|
root_gb:
|
||||||
|
type: int
|
||||||
|
fields: payload.root_gb
|
||||||
|
ephemeral_gb:
|
||||||
|
type: int
|
||||||
|
fields: payload.ephemeral_gb
|
||||||
|
vcpus:
|
||||||
|
type: int
|
||||||
|
fields: payload.vcpus
|
||||||
|
instance_type_id:
|
||||||
|
type: int
|
||||||
|
fields: payload.instance_type_id
|
||||||
|
instance_type:
|
||||||
|
fields: payload.instance_type
|
||||||
|
state:
|
||||||
|
fields: payload.state
|
||||||
|
os_architecture:
|
||||||
|
fields: payload.image_meta.'org.openstack__1__architecture'
|
||||||
|
os_version:
|
||||||
|
fields: payload.image_meta.'org.openstack__1__os_version'
|
||||||
|
os_distro:
|
||||||
|
fields: payload.image_meta.'org.openstack__1__os_distro'
|
||||||
|
launched_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.launched_at
|
||||||
|
deleted_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.deleted_at
|
||||||
|
- event_type: compute.instance.exists
|
||||||
|
traits:
|
||||||
|
<<: *instance_traits
|
||||||
|
audit_period_beginning:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_beginning
|
||||||
|
audit_period_ending:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_ending
|
||||||
|
- event_type: ['volume.exists', 'volume.create.*', 'volume.delete.*', 'volume.resize.*', 'volume.attach.*', 'volume.detach.*', 'volume.update.*', 'snapshot.exists', 'snapshot.create.*', 'snapshot.delete.*', 'snapshot.update.*']
|
||||||
|
traits: &cinder_traits
|
||||||
|
user_id:
|
||||||
|
fields: payload.user_id
|
||||||
|
project_id:
|
||||||
|
fields: payload.tenant_id
|
||||||
|
availability_zone:
|
||||||
|
fields: payload.availability_zone
|
||||||
|
display_name:
|
||||||
|
fields: payload.display_name
|
||||||
|
replication_status:
|
||||||
|
fields: payload.replication_status
|
||||||
|
status:
|
||||||
|
fields: payload.status
|
||||||
|
created_at:
|
||||||
|
fields: payload.created_at
|
||||||
|
- event_type: ['volume.exists', 'volume.create.*', 'volume.delete.*', 'volume.resize.*', 'volume.attach.*', 'volume.detach.*', 'volume.update.*']
|
||||||
|
traits:
|
||||||
|
<<: *cinder_traits
|
||||||
|
resource_id:
|
||||||
|
fields: payload.volume_id
|
||||||
|
host:
|
||||||
|
fields: payload.host
|
||||||
|
size:
|
||||||
|
fields: payload.size
|
||||||
|
type:
|
||||||
|
fields: payload.volume_type
|
||||||
|
replication_status:
|
||||||
|
fields: payload.replication_status
|
||||||
|
- event_type: ['snapshot.exists', 'snapshot.create.*', 'snapshot.delete.*', 'snapshot.update.*']
|
||||||
|
traits:
|
||||||
|
<<: *cinder_traits
|
||||||
|
resource_id:
|
||||||
|
fields: payload.snapshot_id
|
||||||
|
volume_id:
|
||||||
|
fields: payload.volume_id
|
||||||
|
- event_type: ['image_volume_cache.*']
|
||||||
|
traits:
|
||||||
|
image_id:
|
||||||
|
fields: payload.image_id
|
||||||
|
host:
|
||||||
|
fields: payload.host
|
||||||
|
- event_type: ['image.update', 'image.upload', 'image.delete']
|
||||||
|
traits: &glance_crud
|
||||||
|
project_id:
|
||||||
|
fields: payload.owner
|
||||||
|
resource_id:
|
||||||
|
fields: payload.id
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
status:
|
||||||
|
fields: payload.status
|
||||||
|
created_at:
|
||||||
|
fields: payload.created_at
|
||||||
|
user_id:
|
||||||
|
fields: payload.owner
|
||||||
|
deleted_at:
|
||||||
|
fields: payload.deleted_at
|
||||||
|
size:
|
||||||
|
fields: payload.size
|
||||||
|
- event_type: image.send
|
||||||
|
traits: &glance_send
|
||||||
|
receiver_project:
|
||||||
|
fields: payload.receiver_tenant_id
|
||||||
|
receiver_user:
|
||||||
|
fields: payload.receiver_user_id
|
||||||
|
user_id:
|
||||||
|
fields: payload.owner_id
|
||||||
|
image_id:
|
||||||
|
fields: payload.image_id
|
||||||
|
destination_ip:
|
||||||
|
fields: payload.destination_ip
|
||||||
|
bytes_sent:
|
||||||
|
fields: payload.bytes_sent
|
||||||
|
- event_type: orchestration.stack.*
|
||||||
|
traits: &orchestration_crud
|
||||||
|
project_id:
|
||||||
|
fields: payload.tenant_id
|
||||||
|
user_id:
|
||||||
|
fields: ['_context_trustor_user_id', '_context_user_id']
|
||||||
|
resource_id:
|
||||||
|
fields: payload.stack_identity
|
||||||
|
- event_type: sahara.cluster.*
|
||||||
|
traits: &sahara_crud
|
||||||
|
project_id:
|
||||||
|
fields: payload.project_id
|
||||||
|
user_id:
|
||||||
|
fields: _context_user_id
|
||||||
|
resource_id:
|
||||||
|
fields: payload.cluster_id
|
||||||
|
- event_type: sahara.cluster.health
|
||||||
|
traits: &sahara_health
|
||||||
|
<<: *sahara_crud
|
||||||
|
verification_id:
|
||||||
|
fields: payload.verification_id
|
||||||
|
health_check_status:
|
||||||
|
fields: payload.health_check_status
|
||||||
|
health_check_name:
|
||||||
|
fields: payload.health_check_name
|
||||||
|
health_check_description:
|
||||||
|
fields: payload.health_check_description
|
||||||
|
created_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.created_at
|
||||||
|
updated_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.updated_at
|
||||||
|
- event_type: ['identity.user.*', 'identity.project.*', 'identity.group.*', 'identity.role.*', 'identity.OS-TRUST:trust.*',
|
||||||
|
'identity.region.*', 'identity.service.*', 'identity.endpoint.*', 'identity.policy.*']
|
||||||
|
traits: &identity_crud
|
||||||
|
resource_id:
|
||||||
|
fields: payload.resource_info
|
||||||
|
initiator_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
|
project_id:
|
||||||
|
fields: payload.initiator.project_id
|
||||||
|
domain_id:
|
||||||
|
fields: payload.initiator.domain_id
|
||||||
|
- event_type: identity.role_assignment.*
|
||||||
|
traits: &identity_role_assignment
|
||||||
|
role:
|
||||||
|
fields: payload.role
|
||||||
|
group:
|
||||||
|
fields: payload.group
|
||||||
|
domain:
|
||||||
|
fields: payload.domain
|
||||||
|
user:
|
||||||
|
fields: payload.user
|
||||||
|
project:
|
||||||
|
fields: payload.project
|
||||||
|
- event_type: identity.authenticate
|
||||||
|
traits: &identity_authenticate
|
||||||
|
typeURI:
|
||||||
|
fields: payload.typeURI
|
||||||
|
id:
|
||||||
|
fields: payload.id
|
||||||
|
action:
|
||||||
|
fields: payload.action
|
||||||
|
eventType:
|
||||||
|
fields: payload.eventType
|
||||||
|
eventTime:
|
||||||
|
fields: payload.eventTime
|
||||||
|
outcome:
|
||||||
|
fields: payload.outcome
|
||||||
|
initiator_typeURI:
|
||||||
|
fields: payload.initiator.typeURI
|
||||||
|
initiator_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
|
initiator_name:
|
||||||
|
fields: payload.initiator.name
|
||||||
|
initiator_host_agent:
|
||||||
|
fields: payload.initiator.host.agent
|
||||||
|
initiator_host_addr:
|
||||||
|
fields: payload.initiator.host.address
|
||||||
|
target_typeURI:
|
||||||
|
fields: payload.target.typeURI
|
||||||
|
target_id:
|
||||||
|
fields: payload.target.id
|
||||||
|
observer_typeURI:
|
||||||
|
fields: payload.observer.typeURI
|
||||||
|
observer_id:
|
||||||
|
fields: payload.observer.id
|
||||||
|
- event_type: objectstore.http.request
|
||||||
|
traits: &objectstore_request
|
||||||
|
typeURI:
|
||||||
|
fields: payload.typeURI
|
||||||
|
id:
|
||||||
|
fields: payload.id
|
||||||
|
action:
|
||||||
|
fields: payload.action
|
||||||
|
eventType:
|
||||||
|
fields: payload.eventType
|
||||||
|
eventTime:
|
||||||
|
fields: payload.eventTime
|
||||||
|
outcome:
|
||||||
|
fields: payload.outcome
|
||||||
|
initiator_typeURI:
|
||||||
|
fields: payload.initiator.typeURI
|
||||||
|
initiator_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
|
initiator_project_id:
|
||||||
|
fields: payload.initiator.project_id
|
||||||
|
target_typeURI:
|
||||||
|
fields: payload.target.typeURI
|
||||||
|
target_id:
|
||||||
|
fields: payload.target.id
|
||||||
|
target_action:
|
||||||
|
fields: payload.target.action
|
||||||
|
target_metadata_path:
|
||||||
|
fields: payload.target.metadata.path
|
||||||
|
target_metadata_version:
|
||||||
|
fields: payload.target.metadata.version
|
||||||
|
target_metadata_container:
|
||||||
|
fields: payload.target.metadata.container
|
||||||
|
target_metadata_object:
|
||||||
|
fields: payload.target.metadata.object
|
||||||
|
observer_id:
|
||||||
|
fields: payload.observer.id
|
||||||
|
- event_type: magnetodb.table.*
|
||||||
|
traits: &kv_store
|
||||||
|
resource_id:
|
||||||
|
fields: payload.table_uuid
|
||||||
|
user_id:
|
||||||
|
fields: _context_user_id
|
||||||
|
project_id:
|
||||||
|
fields: _context_tenant
|
||||||
|
- event_type: ['network.*', 'subnet.*', 'port.*', 'router.*', 'floatingip.*', 'pool.*', 'vip.*', 'member.*', 'health_monitor.*', 'healthmonitor.*', 'listener.*', 'loadbalancer.*', 'firewall.*', 'firewall_policy.*', 'firewall_rule.*', 'vpnservice.*', 'ipsecpolicy.*', 'ikepolicy.*', 'ipsec_site_connection.*']
|
||||||
|
traits: &network_traits
|
||||||
|
user_id:
|
||||||
|
fields: _context_user_id
|
||||||
|
project_id:
|
||||||
|
fields: _context_tenant_id
|
||||||
|
- event_type: network.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.network.id', 'payload.id']
|
||||||
|
- event_type: subnet.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.subnet.id', 'payload.id']
|
||||||
|
- event_type: port.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.port.id', 'payload.id']
|
||||||
|
- event_type: router.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.router.id', 'payload.id']
|
||||||
|
- event_type: floatingip.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.floatingip.id', 'payload.id']
|
||||||
|
- event_type: pool.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.pool.id', 'payload.id']
|
||||||
|
- event_type: vip.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.vip.id', 'payload.id']
|
||||||
|
- event_type: member.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.member.id', 'payload.id']
|
||||||
|
- event_type: health_monitor.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.health_monitor.id', 'payload.id']
|
||||||
|
- event_type: healthmonitor.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.healthmonitor.id', 'payload.id']
|
||||||
|
- event_type: listener.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.listener.id', 'payload.id']
|
||||||
|
- event_type: loadbalancer.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.loadbalancer.id', 'payload.id']
|
||||||
|
- event_type: firewall.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.firewall.id', 'payload.id']
|
||||||
|
- event_type: firewall_policy.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.firewall_policy.id', 'payload.id']
|
||||||
|
- event_type: firewall_rule.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.firewall_rule.id', 'payload.id']
|
||||||
|
- event_type: vpnservice.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.vpnservice.id', 'payload.id']
|
||||||
|
- event_type: ipsecpolicy.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.ipsecpolicy.id', 'payload.id']
|
||||||
|
- event_type: ikepolicy.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.ikepolicy.id', 'payload.id']
|
||||||
|
- event_type: ipsec_site_connection.*
|
||||||
|
traits:
|
||||||
|
<<: *network_traits
|
||||||
|
resource_id:
|
||||||
|
fields: ['payload.ipsec_site_connection.id', 'payload.id']
|
||||||
|
- event_type: '*http.*'
|
||||||
|
traits: &http_audit
|
||||||
|
project_id:
|
||||||
|
fields: payload.initiator.project_id
|
||||||
|
user_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
|
typeURI:
|
||||||
|
fields: payload.typeURI
|
||||||
|
eventType:
|
||||||
|
fields: payload.eventType
|
||||||
|
action:
|
||||||
|
fields: payload.action
|
||||||
|
outcome:
|
||||||
|
fields: payload.outcome
|
||||||
|
id:
|
||||||
|
fields: payload.id
|
||||||
|
eventTime:
|
||||||
|
fields: payload.eventTime
|
||||||
|
requestPath:
|
||||||
|
fields: payload.requestPath
|
||||||
|
observer_id:
|
||||||
|
fields: payload.observer.id
|
||||||
|
target_id:
|
||||||
|
fields: payload.target.id
|
||||||
|
target_typeURI:
|
||||||
|
fields: payload.target.typeURI
|
||||||
|
target_name:
|
||||||
|
fields: payload.target.name
|
||||||
|
initiator_typeURI:
|
||||||
|
fields: payload.initiator.typeURI
|
||||||
|
initiator_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
|
initiator_name:
|
||||||
|
fields: payload.initiator.name
|
||||||
|
initiator_host_address:
|
||||||
|
fields: payload.initiator.host.address
|
||||||
|
- event_type: '*http.response'
|
||||||
|
traits:
|
||||||
|
<<: *http_audit
|
||||||
|
reason_code:
|
||||||
|
fields: payload.reason.reasonCode
|
||||||
|
- event_type: ['dns.domain.create', 'dns.domain.update', 'dns.domain.delete']
|
||||||
|
traits: &dns_domain_traits
|
||||||
|
status:
|
||||||
|
fields: payload.status
|
||||||
|
retry:
|
||||||
|
fields: payload.retry
|
||||||
|
description:
|
||||||
|
fields: payload.description
|
||||||
|
expire:
|
||||||
|
fields: payload.expire
|
||||||
|
email:
|
||||||
|
fields: payload.email
|
||||||
|
ttl:
|
||||||
|
fields: payload.ttl
|
||||||
|
action:
|
||||||
|
fields: payload.action
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
resource_id:
|
||||||
|
fields: payload.id
|
||||||
|
created_at:
|
||||||
|
fields: payload.created_at
|
||||||
|
updated_at:
|
||||||
|
fields: payload.updated_at
|
||||||
|
version:
|
||||||
|
fields: payload.version
|
||||||
|
parent_domain_id:
|
||||||
|
fields: parent_domain_id
|
||||||
|
serial:
|
||||||
|
fields: payload.serial
|
||||||
|
- event_type: dns.domain.exists
|
||||||
|
traits:
|
||||||
|
<<: *dns_domain_traits
|
||||||
|
audit_period_beginning:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_beginning
|
||||||
|
audit_period_ending:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_ending
|
||||||
|
- event_type: trove.*
|
||||||
|
traits: &trove_base_traits
|
||||||
|
state:
|
||||||
|
fields: payload.state_description
|
||||||
|
instance_type:
|
||||||
|
fields: payload.instance_type
|
||||||
|
user_id:
|
||||||
|
fields: payload.user_id
|
||||||
|
resource_id:
|
||||||
|
fields: payload.instance_id
|
||||||
|
instance_type_id:
|
||||||
|
fields: payload.instance_type_id
|
||||||
|
launched_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.launched_at
|
||||||
|
instance_name:
|
||||||
|
fields: payload.instance_name
|
||||||
|
state:
|
||||||
|
fields: payload.state
|
||||||
|
nova_instance_id:
|
||||||
|
fields: payload.nova_instance_id
|
||||||
|
service_id:
|
||||||
|
fields: payload.service_id
|
||||||
|
created_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.created_at
|
||||||
|
region:
|
||||||
|
fields: payload.region
|
||||||
|
- event_type: ['trove.instance.create', 'trove.instance.modify_volume', 'trove.instance.modify_flavor', 'trove.instance.delete']
|
||||||
|
traits: &trove_common_traits
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
availability_zone:
|
||||||
|
fields: payload.availability_zone
|
||||||
|
instance_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.instance_size
|
||||||
|
volume_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.volume_size
|
||||||
|
nova_volume_id:
|
||||||
|
fields: payload.nova_volume_id
|
||||||
|
- event_type: trove.instance.create
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
- event_type: trove.instance.modify_volume
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
old_volume_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.old_volume_size
|
||||||
|
modify_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.modify_at
|
||||||
|
- event_type: trove.instance.modify_flavor
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
old_instance_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.old_instance_size
|
||||||
|
modify_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.modify_at
|
||||||
|
- event_type: trove.instance.delete
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
deleted_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.deleted_at
|
||||||
|
- event_type: trove.instance.exists
|
||||||
|
traits:
|
||||||
|
<<: *trove_base_traits
|
||||||
|
display_name:
|
||||||
|
fields: payload.display_name
|
||||||
|
audit_period_beginning:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_beginning
|
||||||
|
audit_period_ending:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_ending
|
||||||
|
- event_type: profiler.*
|
||||||
|
traits:
|
||||||
|
project:
|
||||||
|
fields: payload.project
|
||||||
|
service:
|
||||||
|
fields: payload.service
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
base_id:
|
||||||
|
fields: payload.base_id
|
||||||
|
trace_id:
|
||||||
|
fields: payload.trace_id
|
||||||
|
parent_id:
|
||||||
|
fields: payload.parent_id
|
||||||
|
timestamp:
|
||||||
|
fields: payload.timestamp
|
||||||
|
host:
|
||||||
|
fields: payload.info.host
|
||||||
|
path:
|
||||||
|
fields: payload.info.request.path
|
||||||
|
query:
|
||||||
|
fields: payload.info.request.query
|
||||||
|
method:
|
||||||
|
fields: payload.info.request.method
|
||||||
|
scheme:
|
||||||
|
fields: payload.info.request.scheme
|
||||||
|
db.statement:
|
||||||
|
fields: payload.info.db.statement
|
||||||
|
db.params:
|
||||||
|
fields: payload.info.db.params
|
13
ansible/roles/ceilometer/templates/event_pipeline.yaml.j2
Normal file
13
ansible/roles/ceilometer/templates/event_pipeline.yaml.j2
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: event_source
|
||||||
|
events:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- event_sink
|
||||||
|
sinks:
|
||||||
|
- name: event_sink
|
||||||
|
transformers:
|
||||||
|
triggers:
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
92
ansible/roles/ceilometer/templates/pipeline.yaml.j2
Normal file
92
ansible/roles/ceilometer/templates/pipeline.yaml.j2
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: meter_source
|
||||||
|
interval: 600
|
||||||
|
meters:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- meter_sink
|
||||||
|
- name: cpu_source
|
||||||
|
interval: 600
|
||||||
|
meters:
|
||||||
|
- "cpu"
|
||||||
|
sinks:
|
||||||
|
- cpu_sink
|
||||||
|
- cpu_delta_sink
|
||||||
|
- name: disk_source
|
||||||
|
interval: 600
|
||||||
|
meters:
|
||||||
|
- "disk.read.bytes"
|
||||||
|
- "disk.read.requests"
|
||||||
|
- "disk.write.bytes"
|
||||||
|
- "disk.write.requests"
|
||||||
|
- "disk.device.read.bytes"
|
||||||
|
- "disk.device.read.requests"
|
||||||
|
- "disk.device.write.bytes"
|
||||||
|
- "disk.device.write.requests"
|
||||||
|
sinks:
|
||||||
|
- disk_sink
|
||||||
|
- name: network_source
|
||||||
|
interval: 600
|
||||||
|
meters:
|
||||||
|
- "network.incoming.bytes"
|
||||||
|
- "network.incoming.packets"
|
||||||
|
- "network.outgoing.bytes"
|
||||||
|
- "network.outgoing.packets"
|
||||||
|
sinks:
|
||||||
|
- network_sink
|
||||||
|
sinks:
|
||||||
|
- name: meter_sink
|
||||||
|
transformers:
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
||||||
|
- name: cpu_sink
|
||||||
|
transformers:
|
||||||
|
- name: "rate_of_change"
|
||||||
|
parameters:
|
||||||
|
target:
|
||||||
|
name: "cpu_util"
|
||||||
|
unit: "%"
|
||||||
|
type: "gauge"
|
||||||
|
scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))"
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
||||||
|
- name: cpu_delta_sink
|
||||||
|
transformers:
|
||||||
|
- name: "delta"
|
||||||
|
parameters:
|
||||||
|
target:
|
||||||
|
name: "cpu.delta"
|
||||||
|
growth_only: True
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
||||||
|
- name: disk_sink
|
||||||
|
transformers:
|
||||||
|
- name: "rate_of_change"
|
||||||
|
parameters:
|
||||||
|
source:
|
||||||
|
map_from:
|
||||||
|
name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)"
|
||||||
|
unit: "(B|request)"
|
||||||
|
target:
|
||||||
|
map_to:
|
||||||
|
name: "\\1.\\2.\\3.rate"
|
||||||
|
unit: "\\1/s"
|
||||||
|
type: "gauge"
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
||||||
|
- name: network_sink
|
||||||
|
transformers:
|
||||||
|
- name: "rate_of_change"
|
||||||
|
parameters:
|
||||||
|
source:
|
||||||
|
map_from:
|
||||||
|
name: "network\\.(incoming|outgoing)\\.(bytes|packets)"
|
||||||
|
unit: "(B|packet)"
|
||||||
|
target:
|
||||||
|
map_to:
|
||||||
|
name: "network.\\1.\\2.rate"
|
||||||
|
unit: "\\1/s"
|
||||||
|
type: "gauge"
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
@ -381,6 +381,22 @@ listen elasticsearch
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enable_ceilometer | bool %}
|
||||||
|
listen ceilometer_api
|
||||||
|
bind {{ kolla_internal_vip_address }}:{{ ceilometer_api_port }}
|
||||||
|
{% for host in groups['ceilometer-api'] %}
|
||||||
|
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_api_port }} check inter 2000 rise 2 fall 5
|
||||||
|
{% endfor %}
|
||||||
|
{% if haproxy_enable_external_vip | bool %}
|
||||||
|
|
||||||
|
listen ceilometer_api_external
|
||||||
|
bind {{ kolla_external_vip_address }}:{{ ceilometer_api_port }} {{ tls_bind_info }}
|
||||||
|
{% for host in groups['ceilometer-api'] %}
|
||||||
|
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ ceilometer_api_port }} check inter 2000 rise 2 fall 5
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
# (NOTE): This defaults section deletes forwardfor as recomended by:
|
# (NOTE): This defaults section deletes forwardfor as recomended by:
|
||||||
# https://marc.info/?l=haproxy&m=141684110710132&w=1
|
# https://marc.info/?l=haproxy&m=141684110710132&w=1
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ RUN yum -y install \
|
|||||||
|
|
||||||
RUN apt-get -y install --no-install-recommends \
|
RUN apt-get -y install --no-install-recommends \
|
||||||
ceilometer-common \
|
ceilometer-common \
|
||||||
|
python-pymongo \
|
||||||
&& apt-get clean
|
&& apt-get clean
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
Reference in New Issue
Block a user