Add support of Mitaka Ceilometer
In this CR configs and package names for supporting Ceilometer Mitaka with Openstack Telemetry Fuel plugin features. Change-Id: I132cccddbb8bc799079e8302d805b92f0a33c08d
This commit is contained in:
parent
d55475e7b3
commit
783b33e7a7
|
@ -0,0 +1,517 @@
|
||||||
|
{%- from "ceilometer/map.jinja" import agent with context %}
|
||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Print debugging output (set logging level to DEBUG instead
|
||||||
|
# of default WARNING level). (boolean value)
|
||||||
|
#debug=false
|
||||||
|
debug=False
|
||||||
|
|
||||||
|
# Print more verbose output (set logging level to INFO instead
|
||||||
|
# of default WARNING level). (boolean value)
|
||||||
|
#verbose=false
|
||||||
|
verbose=True
|
||||||
|
# Size of RPC connection pool. (integer value)
|
||||||
|
#rpc_conn_pool_size = 30
|
||||||
|
|
||||||
|
auth_strategy = keystone
|
||||||
|
|
||||||
|
# ZeroMQ bind address. Should be a wildcard (*), an ethernet
|
||||||
|
# interface, or IP. The "host" option should point or resolve to this
|
||||||
|
# address. (string value)
|
||||||
|
#rpc_zmq_bind_address = *
|
||||||
|
|
||||||
|
# MatchMaker driver. (string value)
|
||||||
|
#rpc_zmq_matchmaker = local
|
||||||
|
|
||||||
|
# ZeroMQ receiver listening port. (integer value)
|
||||||
|
#rpc_zmq_port = 9501
|
||||||
|
|
||||||
|
# Number of ZeroMQ contexts, defaults to 1. (integer value)
|
||||||
|
#rpc_zmq_contexts = 1
|
||||||
|
|
||||||
|
# Maximum number of ingress messages to locally buffer per topic.
|
||||||
|
# Default is unlimited. (integer value)
|
||||||
|
#rpc_zmq_topic_backlog = <None>
|
||||||
|
|
||||||
|
# Directory for holding IPC sockets. (string value)
|
||||||
|
#rpc_zmq_ipc_dir = /var/run/openstack
|
||||||
|
|
||||||
|
# Name of this node. Must be a valid hostname, FQDN, or IP address.
|
||||||
|
# Must match "host" option, if running Nova. (string value)
|
||||||
|
#rpc_zmq_host = localhost
|
||||||
|
|
||||||
|
# Seconds to wait before a cast expires (TTL). Only supported by
|
||||||
|
# impl_zmq. (integer value)
|
||||||
|
#rpc_cast_timeout = 30
|
||||||
|
|
||||||
|
# Heartbeat frequency. (integer value)
|
||||||
|
#matchmaker_heartbeat_freq = 300
|
||||||
|
|
||||||
|
# Heartbeat time-to-live. (integer value)
|
||||||
|
#matchmaker_heartbeat_ttl = 600
|
||||||
|
|
||||||
|
# Size of RPC thread pool. (integer value)
|
||||||
|
#rpc_thread_pool_size = 64
|
||||||
|
{%- if agent.message_queue.rpc_thread_pool_size is defined %}
|
||||||
|
rpc_thread_pool_size = {{ agent.message_queue.rpc_thread_pool_size }}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
# Driver or drivers to handle sending notifications. (multi valued)
|
||||||
|
#notification_driver =
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
#notification_topics = notifications
|
||||||
|
notification_topics=notifications
|
||||||
|
|
||||||
|
# Seconds to wait for a response from a call. (integer value)
|
||||||
|
#rpc_response_timeout = 60
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use and its full
|
||||||
|
# configuration. If not set, we fall back to the rpc_backend option
|
||||||
|
# and driver specific configuration. (string value)
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# The messaging driver to use, defaults to rabbit. Other drivers
|
||||||
|
# include qpid and zmq. (string value)
|
||||||
|
#rpc_backend = rabbit
|
||||||
|
rpc_backend = rabbit
|
||||||
|
|
||||||
|
# The default exchange under which topics are scoped. May be
|
||||||
|
# overridden by an exchange name specified in the transport_url
|
||||||
|
# option. (string value)
|
||||||
|
#control_exchange = openstack
|
||||||
|
|
||||||
|
[database]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.db
|
||||||
|
#
|
||||||
|
|
||||||
|
# The file name to use with SQLite. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sqlite_db
|
||||||
|
#sqlite_db = oslo.sqlite
|
||||||
|
|
||||||
|
# If True, SQLite uses synchronous mode. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sqlite_synchronous
|
||||||
|
#sqlite_synchronous = true
|
||||||
|
|
||||||
|
# The back end to use for the database. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/db_backend
|
||||||
|
#backend = sqlalchemy
|
||||||
|
|
||||||
|
# The SQLAlchemy connection string to use to connect to the database.
|
||||||
|
# (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_connection
|
||||||
|
# Deprecated group/name - [sql]/connection
|
||||||
|
#connection = <None>
|
||||||
|
|
||||||
|
# The SQLAlchemy connection string to use to connect to the slave
|
||||||
|
# database. (string value)
|
||||||
|
#slave_connection = <None>
|
||||||
|
|
||||||
|
# The SQL mode to be used for MySQL sessions. This option, including
|
||||||
|
# the default, overrides any server-set SQL mode. To use whatever SQL
|
||||||
|
# mode is set by the server configuration, set this to no value.
|
||||||
|
# Example: mysql_sql_mode= (string value)
|
||||||
|
#mysql_sql_mode = TRADITIONAL
|
||||||
|
|
||||||
|
# Timeout before idle SQL connections are reaped. (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_idle_timeout
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_idle_timeout
|
||||||
|
# Deprecated group/name - [sql]/idle_timeout
|
||||||
|
#idle_timeout = 3600
|
||||||
|
|
||||||
|
# Minimum number of SQL connections to keep open in a pool. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_min_pool_size
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_min_pool_size
|
||||||
|
#min_pool_size = 1
|
||||||
|
|
||||||
|
# Maximum number of SQL connections to keep open in a pool. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_pool_size
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_max_pool_size
|
||||||
|
#max_pool_size = <None>
|
||||||
|
|
||||||
|
# Maximum number of database connection retries during startup. Set to
|
||||||
|
# -1 to specify an infinite retry count. (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_retries
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_max_retries
|
||||||
|
#max_retries = 10
|
||||||
|
|
||||||
|
# Interval between retries of opening a SQL connection. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_retry_interval
|
||||||
|
# Deprecated group/name - [DATABASE]/reconnect_interval
|
||||||
|
#retry_interval = 10
|
||||||
|
|
||||||
|
# If set, use this value for max_overflow with SQLAlchemy. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_overflow
|
||||||
|
# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
|
||||||
|
#max_overflow = <None>
|
||||||
|
|
||||||
|
# Verbosity of SQL debugging information: 0=None, 100=Everything.
|
||||||
|
# (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection_debug
|
||||||
|
#connection_debug = 0
|
||||||
|
|
||||||
|
# Add Python stack traces to SQL as comment strings. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection_trace
|
||||||
|
#connection_trace = false
|
||||||
|
|
||||||
|
# If set, use this value for pool_timeout with SQLAlchemy. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
|
||||||
|
#pool_timeout = <None>
|
||||||
|
|
||||||
|
# Enable the experimental use of database reconnect on connection
|
||||||
|
# lost. (boolean value)
|
||||||
|
#use_db_reconnect = false
|
||||||
|
|
||||||
|
# Seconds between retries of a database transaction. (integer value)
|
||||||
|
#db_retry_interval = 1
|
||||||
|
|
||||||
|
# If True, increases the interval between retries of a database
|
||||||
|
# operation up to db_max_retry_interval. (boolean value)
|
||||||
|
#db_inc_retry_interval = true
|
||||||
|
|
||||||
|
# If db_inc_retry_interval is set, the maximum seconds between retries
|
||||||
|
# of a database operation. (integer value)
|
||||||
|
#db_max_retry_interval = 10
|
||||||
|
|
||||||
|
# Maximum retries in case of connection error or deadlock error before
|
||||||
|
# error is raised. Set to -1 to specify an infinite retry count.
|
||||||
|
# (integer value)
|
||||||
|
#db_max_retries = 20
|
||||||
|
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From keystonemiddleware.auth_token
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Service tenant name. (string value)
|
||||||
|
#admin_tenant_name = admin
|
||||||
|
auth_host={{ agent.identity.host }}
|
||||||
|
|
||||||
|
# Port of the admin Identity API endpoint (integer value)
|
||||||
|
#auth_port=35357
|
||||||
|
auth_port={{ agent.identity.port }}
|
||||||
|
|
||||||
|
# Protocol of the admin Identity API endpoint(http or https)
|
||||||
|
# (string value)
|
||||||
|
#auth_protocol=https
|
||||||
|
auth_protocol=http
|
||||||
|
|
||||||
|
# Complete public Identity API endpoint (string value)
|
||||||
|
#auth_uri=<None>
|
||||||
|
auth_uri=http://{{ agent.identity.host }}:5000/
|
||||||
|
|
||||||
|
# Complete admin Identity API endpoint. This should specify
|
||||||
|
# the unversioned root endpoint e.g. https://localhost:35357/
|
||||||
|
# (string value)
|
||||||
|
#identity_uri=<None>
|
||||||
|
identity_uri=http://{{ agent.identity.host }}:35357
|
||||||
|
|
||||||
|
# API version of the admin Identity API endpoint (string
|
||||||
|
# value)
|
||||||
|
#auth_version=<None>
|
||||||
|
|
||||||
|
# Do not handle authorization requests within the middleware,
|
||||||
|
# but delegate the authorization decision to downstream WSGI
|
||||||
|
# components (boolean value)
|
||||||
|
#delay_auth_decision=false
|
||||||
|
|
||||||
|
# Request timeout value for communicating with Identity API
|
||||||
|
# server. (boolean value)
|
||||||
|
#http_connect_timeout=<None>
|
||||||
|
|
||||||
|
# How many times are we trying to reconnect when communicating
|
||||||
|
# with Identity API Server. (integer value)
|
||||||
|
#http_request_max_retries=3
|
||||||
|
|
||||||
|
# This option is deprecated and may be removed in a future
|
||||||
|
# release. Single shared secret with the Keystone
|
||||||
|
# configuration used for bootstrapping a Keystone
|
||||||
|
# installation, or otherwise bypassing the normal
|
||||||
|
# authentication process. This option should not be used, use
|
||||||
|
# `admin_user` and `admin_password` instead. (string value)
|
||||||
|
#admin_token=<None>
|
||||||
|
|
||||||
|
# Keystone account username (string value)
|
||||||
|
#admin_user=<None>
|
||||||
|
admin_user={{ agent.identity.user }}
|
||||||
|
|
||||||
|
# Keystone account password (string value)
|
||||||
|
#admin_password=<None>
|
||||||
|
admin_password={{ agent.identity.password }}
|
||||||
|
|
||||||
|
# Keystone service account tenant name to validate user tokens
|
||||||
|
# (string value)
|
||||||
|
#admin_tenant_name=admin
|
||||||
|
admin_tenant_name={{ agent.identity.tenant }}
|
||||||
|
|
||||||
|
[matchmaker_redis]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Host to locate redis. (string value)
|
||||||
|
#host = 127.0.0.1
|
||||||
|
|
||||||
|
# Use this port to connect to redis host. (integer value)
|
||||||
|
#port = 6379
|
||||||
|
|
||||||
|
# Password for Redis server (optional). (string value)
|
||||||
|
#password = <None>
|
||||||
|
|
||||||
|
|
||||||
|
[matchmaker_ring]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Matchmaker ring file (JSON). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/matchmaker_ringfile
|
||||||
|
#ringfile = /etc/oslo/matchmaker_ring.json
|
||||||
|
|
||||||
|
[oslo_messaging_amqp]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# address prefix used when sending to a specific server (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/server_request_prefix
|
||||||
|
#server_request_prefix = exclusive
|
||||||
|
|
||||||
|
# address prefix used when broadcasting to all servers (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/broadcast_prefix
|
||||||
|
#broadcast_prefix = broadcast
|
||||||
|
|
||||||
|
# address prefix when sending to any server in group (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/group_request_prefix
|
||||||
|
#group_request_prefix = unicast
|
||||||
|
|
||||||
|
# Name for the AMQP container (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/container_name
|
||||||
|
#container_name = <None>
|
||||||
|
|
||||||
|
# Timeout for inactive connections (in seconds) (integer value)
|
||||||
|
# Deprecated group/name - [amqp1]/idle_timeout
|
||||||
|
#idle_timeout = 0
|
||||||
|
|
||||||
|
# Debug: dump AMQP frames to stdout (boolean value)
|
||||||
|
# Deprecated group/name - [amqp1]/trace
|
||||||
|
#trace = false
|
||||||
|
|
||||||
|
# CA certificate PEM file for verifing server certificate (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_ca_file
|
||||||
|
#ssl_ca_file =
|
||||||
|
|
||||||
|
# Identifying certificate PEM file to present to clients (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_cert_file
|
||||||
|
#ssl_cert_file =
|
||||||
|
|
||||||
|
# Private key PEM file used to sign cert_file certificate (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_key_file
|
||||||
|
#ssl_key_file =
|
||||||
|
|
||||||
|
# Password for decrypting ssl_key_file (if encrypted) (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_key_password
|
||||||
|
#ssl_key_password = <None>
|
||||||
|
|
||||||
|
# Accept clients using either SSL or plain TCP (boolean value)
|
||||||
|
# Deprecated group/name - [amqp1]/allow_insecure_clients
|
||||||
|
#allow_insecure_clients = false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[oslo_messaging_rabbit]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use durable queues in AMQP. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
|
||||||
|
#amqp_durable_queues = false
|
||||||
|
|
||||||
|
# Auto-delete queues in AMQP. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/amqp_auto_delete
|
||||||
|
#amqp_auto_delete = false
|
||||||
|
|
||||||
|
# SSL version to use (valid only if SSL enabled). Valid values are
|
||||||
|
# TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be
|
||||||
|
# available on some distributions. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_version
|
||||||
|
#kombu_ssl_version =
|
||||||
|
|
||||||
|
# SSL key file (valid only if SSL enabled). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile
|
||||||
|
#kombu_ssl_keyfile =
|
||||||
|
|
||||||
|
# SSL cert file (valid only if SSL enabled). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
|
||||||
|
#kombu_ssl_certfile =
|
||||||
|
|
||||||
|
# SSL certification authority file (valid only if SSL enabled).
|
||||||
|
# (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
|
||||||
|
#kombu_ssl_ca_certs =
|
||||||
|
|
||||||
|
# How long to wait before reconnecting in response to an AMQP consumer
|
||||||
|
# cancel notification. (floating point value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
|
||||||
|
#kombu_reconnect_delay = 1.0
|
||||||
|
kombu_reconnect_delay = 5.0
|
||||||
|
|
||||||
|
# The RabbitMQ broker address where a single node is used. (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
#rabbit_host = localhost
|
||||||
|
rabbit_host = {{ agent.message_queue.host }}
|
||||||
|
|
||||||
|
# The RabbitMQ broker port where a single node is used. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_port
|
||||||
|
#rabbit_port = 5672
|
||||||
|
rabbit_port = {{ agent.message_queue.port }}
|
||||||
|
|
||||||
|
# RabbitMQ HA cluster host:port pairs. (list value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_hosts
|
||||||
|
#rabbit_hosts = $rabbit_host:$rabbit_port
|
||||||
|
|
||||||
|
# Connect over SSL for RabbitMQ. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_use_ssl
|
||||||
|
#rabbit_use_ssl = false
|
||||||
|
|
||||||
|
# The RabbitMQ userid. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_userid
|
||||||
|
#rabbit_userid = guest
|
||||||
|
rabbit_userid = {{ agent.message_queue.user }}
|
||||||
|
|
||||||
|
# The RabbitMQ password. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_password
|
||||||
|
#rabbit_password = guest
|
||||||
|
rabbit_password = {{ agent.message_queue.password }}
|
||||||
|
|
||||||
|
# The RabbitMQ login method. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_login_method
|
||||||
|
#rabbit_login_method = AMQPLAIN
|
||||||
|
|
||||||
|
# The RabbitMQ virtual host. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_virtual_host
|
||||||
|
#rabbit_virtual_host = /
|
||||||
|
rabbit_virtual_host = {{ agent.message_queue.virtual_host }}
|
||||||
|
|
||||||
|
# How frequently to retry connecting with RabbitMQ. (integer value)
|
||||||
|
#rabbit_retry_interval = 1
|
||||||
|
|
||||||
|
# How long to backoff for between retries when connecting to RabbitMQ.
|
||||||
|
# (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
|
||||||
|
#rabbit_retry_backoff = 2
|
||||||
|
|
||||||
|
# Maximum number of RabbitMQ connection retries. Default is 0
|
||||||
|
# (infinite retry count). (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_max_retries
|
||||||
|
#rabbit_max_retries = 0
|
||||||
|
|
||||||
|
# Use HA queues in RabbitMQ (x-ha-policy: all). If you change this
|
||||||
|
# option, you must wipe the RabbitMQ database. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_ha_queues
|
||||||
|
#rabbit_ha_queues = false
|
||||||
|
|
||||||
|
# Number of seconds after which the Rabbit broker is considered down
|
||||||
|
# if heartbeat's keep-alive fails (0 disable the heartbeat). (integer
|
||||||
|
# value)
|
||||||
|
#heartbeat_timeout_threshold = 60
|
||||||
|
|
||||||
|
# How often times during the heartbeat_timeout_threshold we check the
|
||||||
|
# heartbeat. (integer value)
|
||||||
|
#heartbeat_rate = 2
|
||||||
|
|
||||||
|
# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
|
||||||
|
# (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/fake_rabbit
|
||||||
|
#fake_rabbit = false
|
||||||
|
|
||||||
|
[publisher]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.publisher.utils
|
||||||
|
#
|
||||||
|
|
||||||
|
# Secret value for signing metering messages. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/metering_secret
|
||||||
|
# Deprecated group/name - [publisher_rpc]/metering_secret
|
||||||
|
#metering_secret=change this or be hacked
|
||||||
|
telemetry_secret={{ agent.secret }}
|
||||||
|
|
||||||
|
[service_credentials]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.service
|
||||||
|
#
|
||||||
|
|
||||||
|
# User name to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_username=ceilometer
|
||||||
|
os_username={{ agent.identity.user }}
|
||||||
|
|
||||||
|
# Password to use for OpenStack service access. (string value)
|
||||||
|
#os_password=admin
|
||||||
|
os_password={{ agent.identity.password }}
|
||||||
|
|
||||||
|
# Tenant ID to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_tenant_id=
|
||||||
|
|
||||||
|
# Tenant name to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_tenant_name=admin
|
||||||
|
os_tenant_name={{ agent.identity.tenant }}
|
||||||
|
|
||||||
|
# Certificate chain for SSL validation. (string value)
|
||||||
|
#os_cacert=<None>
|
||||||
|
|
||||||
|
# Auth URL to use for OpenStack service access. (string value)
|
||||||
|
#os_auth_url=http://localhost:5000/v2.0
|
||||||
|
os_auth_url=http://{{ agent.identity.host }}:5000/v2.0
|
||||||
|
|
||||||
|
# Region name to use for OpenStack service endpoints. (string
|
||||||
|
# value)
|
||||||
|
#os_region_name=<None>
|
||||||
|
os_region_name={{ agent.get('region', 'RegionOne') }}
|
||||||
|
|
||||||
|
# Type of endpoint in Identity service catalog to use for
|
||||||
|
# communication with OpenStack services. (string value)
|
||||||
|
#os_endpoint_type=publicURL
|
||||||
|
|
||||||
|
# Disables X.509 certificate validation when an SSL connection
|
||||||
|
# to Identity Service is established. (boolean value)
|
||||||
|
#insecure=false
|
||||||
|
|
||||||
|
{%- if agent.publisher.graphite is defined %}
|
||||||
|
|
||||||
|
[graphite]
|
||||||
|
prefix = {{ agent.publisher.graphite.get('prefix', 'ceilometer') }}.
|
||||||
|
append_hostname = true
|
||||||
|
|
||||||
|
{%- endif %}
|
|
@ -0,0 +1,639 @@
|
||||||
|
{%- from "ceilometer/map.jinja" import server with context %}
|
||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Print debugging output (set logging level to DEBUG instead
|
||||||
|
# of default WARNING level). (boolean value)
|
||||||
|
#debug=false
|
||||||
|
debug=False
|
||||||
|
|
||||||
|
# Print more verbose output (set logging level to INFO instead
|
||||||
|
# of default WARNING level). (boolean value)
|
||||||
|
#verbose=false
|
||||||
|
verbose=True
|
||||||
|
# Size of RPC connection pool. (integer value)
|
||||||
|
#rpc_conn_pool_size = 30
|
||||||
|
|
||||||
|
auth_strategy = keystone
|
||||||
|
|
||||||
|
# ZeroMQ bind address. Should be a wildcard (*), an ethernet
|
||||||
|
# interface, or IP. The "host" option should point or resolve to this
|
||||||
|
# address. (string value)
|
||||||
|
#rpc_zmq_bind_address = *
|
||||||
|
|
||||||
|
# MatchMaker driver. (string value)
|
||||||
|
#rpc_zmq_matchmaker = local
|
||||||
|
|
||||||
|
# ZeroMQ receiver listening port. (integer value)
|
||||||
|
#rpc_zmq_port = 9501
|
||||||
|
|
||||||
|
# Number of ZeroMQ contexts, defaults to 1. (integer value)
|
||||||
|
#rpc_zmq_contexts = 1
|
||||||
|
|
||||||
|
# Maximum number of ingress messages to locally buffer per topic.
|
||||||
|
# Default is unlimited. (integer value)
|
||||||
|
#rpc_zmq_topic_backlog = <None>
|
||||||
|
|
||||||
|
# Directory for holding IPC sockets. (string value)
|
||||||
|
#rpc_zmq_ipc_dir = /var/run/openstack
|
||||||
|
|
||||||
|
# Name of this node. Must be a valid hostname, FQDN, or IP address.
|
||||||
|
# Must match "host" option, if running Nova. (string value)
|
||||||
|
#rpc_zmq_host = localhost
|
||||||
|
|
||||||
|
# Seconds to wait before a cast expires (TTL). Only supported by
|
||||||
|
# impl_zmq. (integer value)
|
||||||
|
#rpc_cast_timeout = 30
|
||||||
|
|
||||||
|
# Heartbeat frequency. (integer value)
|
||||||
|
#matchmaker_heartbeat_freq = 300
|
||||||
|
|
||||||
|
# Heartbeat time-to-live. (integer value)
|
||||||
|
#matchmaker_heartbeat_ttl = 600
|
||||||
|
|
||||||
|
# Size of RPC thread pool. (integer value)
|
||||||
|
#rpc_thread_pool_size = 64
|
||||||
|
{%- if server.message_queue.rpc_thread_pool_size is defined %}
|
||||||
|
rpc_thread_pool_size = {{ server.message_queue.rpc_thread_pool_size }}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
# Driver or drivers to handle sending notifications. (multi valued)
|
||||||
|
#notification_driver =
|
||||||
|
|
||||||
|
# AMQP topic used for OpenStack notifications. (list value)
|
||||||
|
# Deprecated group/name - [rpc_notifier2]/topics
|
||||||
|
#notification_topics = notifications
|
||||||
|
notification_topics=notifications
|
||||||
|
|
||||||
|
# Seconds to wait for a response from a call. (integer value)
|
||||||
|
#rpc_response_timeout = 60
|
||||||
|
|
||||||
|
# A URL representing the messaging driver to use and its full
|
||||||
|
# configuration. If not set, we fall back to the rpc_backend option
|
||||||
|
# and driver specific configuration. (string value)
|
||||||
|
#transport_url = <None>
|
||||||
|
|
||||||
|
# The messaging driver to use, defaults to rabbit. Other drivers
|
||||||
|
# include qpid and zmq. (string value)
|
||||||
|
#rpc_backend = rabbit
|
||||||
|
rpc_backend = rabbit
|
||||||
|
|
||||||
|
# The default exchange under which topics are scoped. May be
|
||||||
|
# overridden by an exchange name specified in the transport_url
|
||||||
|
# option. (string value)
|
||||||
|
#control_exchange = openstack
|
||||||
|
|
||||||
|
[alarm]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.cli
|
||||||
|
#
|
||||||
|
|
||||||
|
# Class to launch as alarm evaluation service. (string value)
|
||||||
|
#evaluation_service=ceilometer.alarm.service.SingletonAlarmService
|
||||||
|
evaluation_service=ceilometer.alarm.service.SingletonAlarmService
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.alarm.notifier.rest
|
||||||
|
#
|
||||||
|
|
||||||
|
# SSL Client certificate for REST notifier. (string value)
|
||||||
|
#rest_notifier_certificate_file=
|
||||||
|
|
||||||
|
# SSL Client private key for REST notifier. (string value)
|
||||||
|
#rest_notifier_certificate_key=
|
||||||
|
|
||||||
|
# Whether to verify the SSL Server certificate when calling
|
||||||
|
# alarm action. (boolean value)
|
||||||
|
#rest_notifier_ssl_verify=true
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.alarm.rpc
|
||||||
|
#
|
||||||
|
|
||||||
|
# The topic that ceilometer uses for alarm notifier messages.
|
||||||
|
# (string value)
|
||||||
|
#notifier_rpc_topic=alarm_notifier
|
||||||
|
|
||||||
|
# The topic that ceilometer uses for alarm partition
|
||||||
|
# coordination messages. (string value)
|
||||||
|
#partition_rpc_topic=alarm_partition_coordination
|
||||||
|
partition_rpc_topic=alarm_partition_coordination
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.alarm.service
|
||||||
|
#
|
||||||
|
|
||||||
|
# Period of evaluation cycle, should be >= than configured
|
||||||
|
# pipeline interval for collection of underlying metrics.
|
||||||
|
# (integer value)
|
||||||
|
# Deprecated group/name - [alarm]/threshold_evaluation_interval
|
||||||
|
#evaluation_interval=60
|
||||||
|
evaluation_interval=60
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.api.controllers.v2
|
||||||
|
#
|
||||||
|
|
||||||
|
# Record alarm change events. (boolean value)
|
||||||
|
#record_history=true
|
||||||
|
record_history=True
|
||||||
|
|
||||||
|
[api]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.api
|
||||||
|
#
|
||||||
|
|
||||||
|
# The port for the ceilometer API server. (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/metering_api_port
|
||||||
|
#port=8777
|
||||||
|
port={{ server.bind.port }}
|
||||||
|
|
||||||
|
# The listen IP for the ceilometer API server. (string value)
|
||||||
|
#host=0.0.0.0
|
||||||
|
host={{ server.bind.host }}
|
||||||
|
|
||||||
|
# Set it to False if your environment does not need or have
|
||||||
|
# dns server, otherwise it will delay the response from api.
|
||||||
|
# (boolean value)
|
||||||
|
#enable_reverse_dns_lookup=false
|
||||||
|
|
||||||
|
[database]
|
||||||
|
|
||||||
|
metering_time_to_live = {{ server.ttl }}
|
||||||
|
event_time_to_live = {{ server.ttl }}
|
||||||
|
alarm_history_time_to_live = {{ server.ttl }}
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.db
|
||||||
|
#
|
||||||
|
|
||||||
|
# The file name to use with SQLite. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sqlite_db
|
||||||
|
#sqlite_db = oslo.sqlite
|
||||||
|
|
||||||
|
# If True, SQLite uses synchronous mode. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sqlite_synchronous
|
||||||
|
#sqlite_synchronous = true
|
||||||
|
|
||||||
|
# The back end to use for the database. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/db_backend
|
||||||
|
#backend = sqlalchemy
|
||||||
|
|
||||||
|
# The SQLAlchemy connection string to use to connect to the database.
|
||||||
|
# (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_connection
|
||||||
|
# Deprecated group/name - [sql]/connection
|
||||||
|
metering_connection = stacklight://{{ server.database.influxdb.user }}:{{ server.database.influxdb.password }}@{{ server.database.influxdb.host }}:{{ server.database.influxdb.port }}/{{ server.database.influxdb.dbname }}
|
||||||
|
|
||||||
|
{{{%- if server.database.elasticsearch.enabled %}}}
|
||||||
|
resource_connection = es://{{ server.database.elasticsearch.host}}:{{server.database.elasticsearch.port }}
|
||||||
|
event_connection = es://{{ server.database.elasticsearch.host}}:{{server.database.elasticsearch.port }}
|
||||||
|
{{%- else %}}
|
||||||
|
resource_connection = es://localhost:9200
|
||||||
|
event_connection = log://
|
||||||
|
{{%- endif }}
|
||||||
|
|
||||||
|
# The SQLAlchemy connection string to use to connect to the slave
|
||||||
|
# database. (string value)
|
||||||
|
#slave_connection = <None>
|
||||||
|
|
||||||
|
# The SQL mode to be used for MySQL sessions. This option, including
|
||||||
|
# the default, overrides any server-set SQL mode. To use whatever SQL
|
||||||
|
# mode is set by the server configuration, set this to no value.
|
||||||
|
# Example: mysql_sql_mode= (string value)
|
||||||
|
#mysql_sql_mode = TRADITIONAL
|
||||||
|
|
||||||
|
# Timeout before idle SQL connections are reaped. (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_idle_timeout
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_idle_timeout
|
||||||
|
# Deprecated group/name - [sql]/idle_timeout
|
||||||
|
#idle_timeout = 3600
|
||||||
|
|
||||||
|
# Minimum number of SQL connections to keep open in a pool. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_min_pool_size
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_min_pool_size
|
||||||
|
#min_pool_size = 1
|
||||||
|
|
||||||
|
# Maximum number of SQL connections to keep open in a pool. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_pool_size
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_max_pool_size
|
||||||
|
#max_pool_size = <None>
|
||||||
|
|
||||||
|
# Maximum number of database connection retries during startup. Set to
|
||||||
|
# -1 to specify an infinite retry count. (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_retries
|
||||||
|
# Deprecated group/name - [DATABASE]/sql_max_retries
|
||||||
|
#max_retries = 10
|
||||||
|
|
||||||
|
# Interval between retries of opening a SQL connection. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_retry_interval
|
||||||
|
# Deprecated group/name - [DATABASE]/reconnect_interval
|
||||||
|
#retry_interval = 10
|
||||||
|
|
||||||
|
# If set, use this value for max_overflow with SQLAlchemy. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_max_overflow
|
||||||
|
# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
|
||||||
|
#max_overflow = <None>
|
||||||
|
|
||||||
|
# Verbosity of SQL debugging information: 0=None, 100=Everything.
|
||||||
|
# (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection_debug
|
||||||
|
#connection_debug = 0
|
||||||
|
|
||||||
|
# Add Python stack traces to SQL as comment strings. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/sql_connection_trace
|
||||||
|
#connection_trace = false
|
||||||
|
|
||||||
|
# If set, use this value for pool_timeout with SQLAlchemy. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
|
||||||
|
#pool_timeout = <None>
|
||||||
|
|
||||||
|
# Enable the experimental use of database reconnect on connection
|
||||||
|
# lost. (boolean value)
|
||||||
|
#use_db_reconnect = false
|
||||||
|
|
||||||
|
# Seconds between retries of a database transaction. (integer value)
|
||||||
|
#db_retry_interval = 1
|
||||||
|
|
||||||
|
# If True, increases the interval between retries of a database
|
||||||
|
# operation up to db_max_retry_interval. (boolean value)
|
||||||
|
#db_inc_retry_interval = true
|
||||||
|
|
||||||
|
# If db_inc_retry_interval is set, the maximum seconds between retries
|
||||||
|
# of a database operation. (integer value)
|
||||||
|
#db_max_retry_interval = 10
|
||||||
|
|
||||||
|
# Maximum retries in case of connection error or deadlock error before
|
||||||
|
# error is raised. Set to -1 to specify an infinite retry count.
|
||||||
|
# (integer value)
|
||||||
|
#db_max_retries = 20
|
||||||
|
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From keystonemiddleware.auth_token
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# Service tenant name. (string value)
|
||||||
|
#admin_tenant_name = admin
|
||||||
|
auth_host={{ server.identity.host }}
|
||||||
|
|
||||||
|
# Port of the admin Identity API endpoint (integer value)
|
||||||
|
#auth_port=35357
|
||||||
|
auth_port={{ server.identity.port }}
|
||||||
|
|
||||||
|
# Protocol of the admin Identity API endpoint(http or https)
|
||||||
|
# (string value)
|
||||||
|
#auth_protocol=https
|
||||||
|
auth_protocol=http
|
||||||
|
|
||||||
|
# Complete public Identity API endpoint (string value)
|
||||||
|
#auth_uri=<None>
|
||||||
|
auth_uri=http://{{ server.identity.host }}:5000/
|
||||||
|
|
||||||
|
# Complete admin Identity API endpoint. This should specify
|
||||||
|
# the unversioned root endpoint e.g. https://localhost:35357/
|
||||||
|
# (string value)
|
||||||
|
#identity_uri=<None>
|
||||||
|
identity_uri=http://{{ server.identity.host }}:35357
|
||||||
|
|
||||||
|
# API version of the admin Identity API endpoint (string
|
||||||
|
# value)
|
||||||
|
#auth_version=<None>
|
||||||
|
|
||||||
|
# Do not handle authorization requests within the middleware,
|
||||||
|
# but delegate the authorization decision to downstream WSGI
|
||||||
|
# components (boolean value)
|
||||||
|
#delay_auth_decision=false
|
||||||
|
|
||||||
|
# Request timeout value for communicating with Identity API
|
||||||
|
# server. (boolean value)
|
||||||
|
#http_connect_timeout=<None>
|
||||||
|
|
||||||
|
# How many times are we trying to reconnect when communicating
|
||||||
|
# with Identity API Server. (integer value)
|
||||||
|
#http_request_max_retries=3
|
||||||
|
|
||||||
|
# This option is deprecated and may be removed in a future
|
||||||
|
# release. Single shared secret with the Keystone
|
||||||
|
# configuration used for bootstrapping a Keystone
|
||||||
|
# installation, or otherwise bypassing the normal
|
||||||
|
# authentication process. This option should not be used, use
|
||||||
|
# `admin_user` and `admin_password` instead. (string value)
|
||||||
|
#admin_token=<None>
|
||||||
|
|
||||||
|
# Keystone account username (string value)
|
||||||
|
#admin_user=<None>
|
||||||
|
admin_user={{ server.identity.user }}
|
||||||
|
|
||||||
|
# Keystone account password (string value)
|
||||||
|
#admin_password=<None>
|
||||||
|
admin_password={{ server.identity.password }}
|
||||||
|
|
||||||
|
# Keystone service account tenant name to validate user tokens
|
||||||
|
# (string value)
|
||||||
|
#admin_tenant_name=admin
|
||||||
|
admin_tenant_name={{ server.identity.tenant }}
|
||||||
|
|
||||||
|
[matchmaker_redis]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Host to locate redis. (string value)
|
||||||
|
#host = 127.0.0.1
|
||||||
|
|
||||||
|
# Use this port to connect to redis host. (integer value)
|
||||||
|
#port = 6379
|
||||||
|
|
||||||
|
# Password for Redis server (optional). (string value)
|
||||||
|
#password = <None>
|
||||||
|
|
||||||
|
|
||||||
|
[matchmaker_ring]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Matchmaker ring file (JSON). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/matchmaker_ringfile
|
||||||
|
#ringfile = /etc/oslo/matchmaker_ring.json
|
||||||
|
|
||||||
|
[notification]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.notification
|
||||||
|
#
|
||||||
|
|
||||||
|
# Acknowledge message when event persistence fails. (boolean
|
||||||
|
# value)
|
||||||
|
#ack_on_event_error=true
|
||||||
|
ack_on_event_error=True
|
||||||
|
|
||||||
|
# Save event details. (boolean value)
|
||||||
|
#store_events=false
|
||||||
|
store_events=True
|
||||||
|
|
||||||
|
# Messaging URLs to listen for notifications. Example:
|
||||||
|
# transport://user:pass@host1:port[,hostN:portN]/virtual_host
|
||||||
|
# (DEFAULT/transport_url is used if empty) (multi valued)
|
||||||
|
#messaging_urls=
|
||||||
|
|
||||||
|
disable_non_metric_meters = False
|
||||||
|
|
||||||
|
[publisher]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.publisher.utils
|
||||||
|
#
|
||||||
|
|
||||||
|
# Secret value for signing metering messages. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/metering_secret
|
||||||
|
# Deprecated group/name - [publisher_rpc]/metering_secret
|
||||||
|
#metering_secret=change this or be hacked
|
||||||
|
telemetry_secret={{ server.secret }}
|
||||||
|
|
||||||
|
{%- for publisher_name, publisher in server.get('publisher', {}).iteritems() %}
|
||||||
|
{%- if publisher_name == 'graphite' %}
|
||||||
|
|
||||||
|
graphite=ceilometer.publisher.graphite:GraphitePublisher
|
||||||
|
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
|
[oslo_messaging_amqp]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# address prefix used when sending to a specific server (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/server_request_prefix
|
||||||
|
#server_request_prefix = exclusive
|
||||||
|
|
||||||
|
# address prefix used when broadcasting to all servers (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/broadcast_prefix
|
||||||
|
#broadcast_prefix = broadcast
|
||||||
|
|
||||||
|
# address prefix when sending to any server in group (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/group_request_prefix
|
||||||
|
#group_request_prefix = unicast
|
||||||
|
|
||||||
|
# Name for the AMQP container (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/container_name
|
||||||
|
#container_name = <None>
|
||||||
|
|
||||||
|
# Timeout for inactive connections (in seconds) (integer value)
|
||||||
|
# Deprecated group/name - [amqp1]/idle_timeout
|
||||||
|
#idle_timeout = 0
|
||||||
|
|
||||||
|
# Debug: dump AMQP frames to stdout (boolean value)
|
||||||
|
# Deprecated group/name - [amqp1]/trace
|
||||||
|
#trace = false
|
||||||
|
|
||||||
|
# CA certificate PEM file for verifing server certificate (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_ca_file
|
||||||
|
#ssl_ca_file =
|
||||||
|
|
||||||
|
# Identifying certificate PEM file to present to clients (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_cert_file
|
||||||
|
#ssl_cert_file =
|
||||||
|
|
||||||
|
# Private key PEM file used to sign cert_file certificate (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_key_file
|
||||||
|
#ssl_key_file =
|
||||||
|
|
||||||
|
# Password for decrypting ssl_key_file (if encrypted) (string value)
|
||||||
|
# Deprecated group/name - [amqp1]/ssl_key_password
|
||||||
|
#ssl_key_password = <None>
|
||||||
|
|
||||||
|
# Accept clients using either SSL or plain TCP (boolean value)
|
||||||
|
# Deprecated group/name - [amqp1]/allow_insecure_clients
|
||||||
|
#allow_insecure_clients = false
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[oslo_messaging_rabbit]
|
||||||
|
|
||||||
|
#
|
||||||
|
# From oslo.messaging
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use durable queues in AMQP. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
|
||||||
|
#amqp_durable_queues = false
|
||||||
|
|
||||||
|
# Auto-delete queues in AMQP. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/amqp_auto_delete
|
||||||
|
#amqp_auto_delete = false
|
||||||
|
|
||||||
|
# SSL version to use (valid only if SSL enabled). Valid values are
|
||||||
|
# TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be
|
||||||
|
# available on some distributions. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_version
|
||||||
|
#kombu_ssl_version =
|
||||||
|
|
||||||
|
# SSL key file (valid only if SSL enabled). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile
|
||||||
|
#kombu_ssl_keyfile =
|
||||||
|
|
||||||
|
# SSL cert file (valid only if SSL enabled). (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_certfile
|
||||||
|
#kombu_ssl_certfile =
|
||||||
|
|
||||||
|
# SSL certification authority file (valid only if SSL enabled).
|
||||||
|
# (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs
|
||||||
|
#kombu_ssl_ca_certs =
|
||||||
|
|
||||||
|
# How long to wait before reconnecting in response to an AMQP consumer
|
||||||
|
# cancel notification. (floating point value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
|
||||||
|
#kombu_reconnect_delay = 1.0
|
||||||
|
kombu_reconnect_delay = 5.0
|
||||||
|
|
||||||
|
# RabbitMQ HA cluster host:port pairs. (list value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_hosts
|
||||||
|
{%- if server.message_queue.members is defined %}
|
||||||
|
rabbit_hosts = {% for member in server.message_queue.members -%}
|
||||||
|
{{ member.host }}:{{ member.get('port', 5672) }}
|
||||||
|
{%- if not loop.last -%},{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- else %}
|
||||||
|
|
||||||
|
# The RabbitMQ broker address where a single node is used. (string
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_host
|
||||||
|
#rabbit_host = localhost
|
||||||
|
rabbit_host = {{ server.message_queue.host }}
|
||||||
|
|
||||||
|
# The RabbitMQ broker port where a single node is used. (integer
|
||||||
|
# value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_port
|
||||||
|
#rabbit_port = 5672
|
||||||
|
rabbit_port = {{ server.message_queue.port }}
|
||||||
|
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
# Connect over SSL for RabbitMQ. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_use_ssl
|
||||||
|
#rabbit_use_ssl = false
|
||||||
|
|
||||||
|
# The RabbitMQ userid. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_userid
|
||||||
|
#rabbit_userid = guest
|
||||||
|
rabbit_userid = {{ server.message_queue.user }}
|
||||||
|
|
||||||
|
# The RabbitMQ password. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_password
|
||||||
|
#rabbit_password = guest
|
||||||
|
rabbit_password = {{ server.message_queue.password }}
|
||||||
|
|
||||||
|
# The RabbitMQ login method. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_login_method
|
||||||
|
#rabbit_login_method = AMQPLAIN
|
||||||
|
|
||||||
|
# The RabbitMQ virtual host. (string value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_virtual_host
|
||||||
|
#rabbit_virtual_host = /
|
||||||
|
rabbit_virtual_host = {{ server.message_queue.virtual_host }}
|
||||||
|
|
||||||
|
# How frequently to retry connecting with RabbitMQ. (integer value)
|
||||||
|
#rabbit_retry_interval = 1
|
||||||
|
|
||||||
|
# How long to backoff for between retries when connecting to RabbitMQ.
|
||||||
|
# (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
|
||||||
|
#rabbit_retry_backoff = 2
|
||||||
|
|
||||||
|
# Maximum number of RabbitMQ connection retries. Default is 0
|
||||||
|
# (infinite retry count). (integer value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_max_retries
|
||||||
|
#rabbit_max_retries = 0
|
||||||
|
|
||||||
|
# Use HA queues in RabbitMQ (x-ha-policy: all). If you change this
|
||||||
|
# option, you must wipe the RabbitMQ database. (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/rabbit_ha_queues
|
||||||
|
#rabbit_ha_queues = false
|
||||||
|
|
||||||
|
# Number of seconds after which the Rabbit broker is considered down
|
||||||
|
# if heartbeat's keep-alive fails (0 disable the heartbeat). (integer
|
||||||
|
# value)
|
||||||
|
#heartbeat_timeout_threshold = 60
|
||||||
|
|
||||||
|
# How often times during the heartbeat_timeout_threshold we check the
|
||||||
|
# heartbeat. (integer value)
|
||||||
|
#heartbeat_rate = 2
|
||||||
|
|
||||||
|
# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
|
||||||
|
# (boolean value)
|
||||||
|
# Deprecated group/name - [DEFAULT]/fake_rabbit
|
||||||
|
#fake_rabbit = false
|
||||||
|
|
||||||
|
[service_credentials]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options defined in ceilometer.service
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# User name to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_username=ceilometer
|
||||||
|
os_username={{ server.identity.user }}
|
||||||
|
|
||||||
|
# Password to use for OpenStack service access. (string value)
|
||||||
|
#os_password=admin
|
||||||
|
os_password={{ server.identity.password }}
|
||||||
|
|
||||||
|
# Tenant ID to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_tenant_id=
|
||||||
|
|
||||||
|
# Tenant name to use for OpenStack service access. (string
|
||||||
|
# value)
|
||||||
|
#os_tenant_name=admin
|
||||||
|
os_tenant_name={{ server.identity.tenant }}
|
||||||
|
|
||||||
|
# Certificate chain for SSL validation. (string value)
|
||||||
|
#os_cacert=<None>
|
||||||
|
|
||||||
|
# Auth URL to use for OpenStack service access. (string value)
|
||||||
|
#os_auth_url=http://localhost:5000/v2.0
|
||||||
|
os_auth_url=http://{{ server.identity.host }}:5000/v2.0
|
||||||
|
|
||||||
|
# Region name to use for OpenStack service endpoints. (string
|
||||||
|
# value)
|
||||||
|
#os_region_name=<None>
|
||||||
|
os_region_name={{ server.get('region', 'RegionOne') }}
|
||||||
|
|
||||||
|
# Type of endpoint in Identity service catalog to use for
|
||||||
|
# communication with OpenStack services. (string value)
|
||||||
|
#os_endpoint_type=publicURL
|
||||||
|
|
||||||
|
# Disables X.509 certificate validation when an SSL connection
|
||||||
|
# to Identity Service is established. (boolean value)
|
||||||
|
#insecure=false
|
|
@ -0,0 +1,26 @@
|
||||||
|
{%- from "ceilometer/map.jinja" import server with context %}
|
||||||
|
{%- from "ceilometer/map.jinja" import agent with context %}
|
||||||
|
{%- if server.get('enabled', False) %}
|
||||||
|
{%- set publisher = server.publisher %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set publisher = agent.publisher %}
|
||||||
|
{%- endif %}
|
||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: meter_source
|
||||||
|
interval: 60
|
||||||
|
meters:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- meter_sink
|
||||||
|
sinks:
|
||||||
|
- name: meter_sink
|
||||||
|
transformers:
|
||||||
|
publishers:
|
||||||
|
{%- for publisher_name, publisher in publisher.iteritems() %}
|
||||||
|
{%- if publisher_name == 'graphite' %}
|
||||||
|
- graphite://{{ publisher.host }}:{{ publisher.port }}
|
||||||
|
{%- else %}
|
||||||
|
- notifier://
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
|
@ -0,0 +1,497 @@
|
||||||
|
---
|
||||||
|
- 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
|
||||||
|
plugin:
|
||||||
|
name: split
|
||||||
|
parameters:
|
||||||
|
segment: 1
|
||||||
|
max_split: 1
|
||||||
|
service:
|
||||||
|
fields: publisher_id
|
||||||
|
plugin: split
|
||||||
|
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: ['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.*', '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: 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
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: event_source
|
||||||
|
events:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- event_sink
|
||||||
|
sinks:
|
||||||
|
- name: event_sink
|
||||||
|
transformers:
|
||||||
|
triggers:
|
||||||
|
publishers:
|
||||||
|
- direct://
|
|
@ -0,0 +1,19 @@
|
||||||
|
# A limited pipeline for use with the Gabbi spike.
|
||||||
|
# direct writes to the the metering database without using an
|
||||||
|
# intermediary dispatcher.
|
||||||
|
#
|
||||||
|
# This is one of several things that will need some extensive
|
||||||
|
# tidying to be more right.
|
||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: meter_source
|
||||||
|
interval: 1
|
||||||
|
meters:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- meter_sink
|
||||||
|
sinks:
|
||||||
|
- name: meter_sink
|
||||||
|
transformers:
|
||||||
|
publishers:
|
||||||
|
- direct://
|
|
@ -0,0 +1,27 @@
|
||||||
|
{%- from "ceilometer/map.jinja" import server with context %}
|
||||||
|
{%- from "ceilometer/map.jinja" import agent with context %}
|
||||||
|
{%- if server.get('enabled', False) %}
|
||||||
|
{%- set publisher = server.publisher %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set publisher = agent.publisher %}
|
||||||
|
{%- endif %}
|
||||||
|
---
|
||||||
|
sources:
|
||||||
|
- name: meter_source
|
||||||
|
interval: 60
|
||||||
|
meters:
|
||||||
|
- "*"
|
||||||
|
sinks:
|
||||||
|
- meter_sink
|
||||||
|
sinks:
|
||||||
|
- name: meter_sink
|
||||||
|
transformers:
|
||||||
|
publishers:
|
||||||
|
{%- for publisher_name, publisher in publisher.iteritems() %}
|
||||||
|
{%- if publisher_name == 'default' %}
|
||||||
|
- notifier://
|
||||||
|
{%- endif %}
|
||||||
|
{%- if publisher_name == 'graphite' %}
|
||||||
|
- graphite://{{ publisher.host }}:{{ publisher.port }}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
|
@ -1,15 +1,3 @@
|
||||||
|
|
||||||
{% set server = salt['grains.filter_by']({
|
|
||||||
'Debian': {
|
|
||||||
'pkgs': ['ceilometer-alarm-evaluator', 'ceilometer-api', 'ceilometer-agent-central', 'ceilometer-collector', 'python-ceilometerclient','ceilometer-agent-notification','ceilometer-alarm-notifier'],
|
|
||||||
'services': ['ceilometer-collector', 'ceilometer-api','ceilometer-agent-central','ceilometer-agent-notification','ceilometer-alarm-evaluator','ceilometer-alarm-notifier'],
|
|
||||||
},
|
|
||||||
'RedHat': {
|
|
||||||
'pkgs': ['openstack-ceilometer-alarm', 'openstack-ceilometer-api', 'openstack-ceilometer-central', 'openstack-ceilometer-collector', 'python-ceilometerclient'],
|
|
||||||
'services': ['openstack-ceilometer-collector', 'openstack-ceilometer-api'],
|
|
||||||
},
|
|
||||||
}, merge=salt['pillar.get']('ceilometer:server')) %}
|
|
||||||
|
|
||||||
{% set agent = salt['grains.filter_by']({
|
{% set agent = salt['grains.filter_by']({
|
||||||
'Debian': {
|
'Debian': {
|
||||||
'pkgs': ['ceilometer-agent-compute'],
|
'pkgs': ['ceilometer-agent-compute'],
|
||||||
|
@ -20,3 +8,47 @@
|
||||||
'services': ['openstack-ceilometer-compute'],
|
'services': ['openstack-ceilometer-compute'],
|
||||||
},
|
},
|
||||||
}, merge=salt['pillar.get']('ceilometer:agent')) %}
|
}, merge=salt['pillar.get']('ceilometer:agent')) %}
|
||||||
|
|
||||||
|
# Server initialization
|
||||||
|
|
||||||
|
{% set pkgs = salt['grains.filter_by']({
|
||||||
|
'Debian': {
|
||||||
|
'alarm': ['ceilometer-alarm-evaluator', 'ceilometer-alarm-notifier'],
|
||||||
|
'collector': ['ceilometer-collector'],
|
||||||
|
'basic': ['ceilometer-api', 'ceilometer-agent-central', 'python-ceilometerclient', 'ceilometer-agent-notification'],
|
||||||
|
'db_drivers': ['python-elasticsearch', 'python-influxdb'],
|
||||||
|
},
|
||||||
|
'RedHat': {
|
||||||
|
'alarm': ['openstack-ceilometer-alarm-evaluator', 'openstack-ceilometer-alarm-notifier'],
|
||||||
|
'basic':[ 'openstack-ceilometer-api', 'openstack-ceilometer-central', 'python-ceilometerclient'],
|
||||||
|
'collector':['openstack-ceilometer-collector'],
|
||||||
|
'db_drivers': ['python-elasticsearch', 'python-influxdb'],
|
||||||
|
},
|
||||||
|
}) %}
|
||||||
|
|
||||||
|
{% set services = salt['grains.filter_by']({
|
||||||
|
'Debian': {
|
||||||
|
'alarm': ['ceilometer-alarm-evaluator', 'ceilometer-alarm-notifier'],
|
||||||
|
'collector': ['ceilometer-collector'],
|
||||||
|
'basic': ['ceilometer-api', 'ceilometer-agent-central', 'python-ceilometerclient', 'ceilometer-agent-notification'],
|
||||||
|
},
|
||||||
|
'RedHat': {
|
||||||
|
'alarm':['openstack-ceilometer-alarm-evaluator', 'openstack-ceilometer-alarm-notifier'],
|
||||||
|
'basic':['openstack-ceilometer-api', 'openstack-ceilometer-central', 'openstack-ceilometer-notification'],
|
||||||
|
'collector': ['openstack-ceilometer-collector'],
|
||||||
|
},
|
||||||
|
}) %}
|
||||||
|
|
||||||
|
{%- set server = salt['grains.filter_by']({'default': {}}, merge=salt['pillar.get']('ceilometer:server')) %}
|
||||||
|
|
||||||
|
# Mitaka based deployments don't need collector and alarm packages/services,
|
||||||
|
# because alarming is implemented by Aodh and collector stuff is implemented
|
||||||
|
# by the ceilometer_collector service.
|
||||||
|
|
||||||
|
{%- if salt['pillar.get']('ceilometer:server:version') >= 'mitaka' %}
|
||||||
|
{%- do server.update({'pkgs': pkgs.basic + pkgs.db_drivers}) %}
|
||||||
|
{%- do server.update({'services': services.basic}) %}
|
||||||
|
{%- else %}
|
||||||
|
{%- do server.update({'pkgs': pkgs.basic + pkgs.collector + pkgs.alarm}) %}
|
||||||
|
{%- do server.update({'services': services.basic + services.collector + services.alarm}) %}
|
||||||
|
{%- endif %}
|
||||||
|
|
|
@ -12,14 +12,14 @@ parameters:
|
||||||
default:
|
default:
|
||||||
identity:
|
identity:
|
||||||
engine: keystone
|
engine: keystone
|
||||||
host: ${_param:cluster_vip_address}
|
host: ${_param:single_address}
|
||||||
port: 35357
|
port: 35357
|
||||||
tenant: service
|
tenant: service
|
||||||
user: ceilometer
|
user: ceilometer
|
||||||
password: ${_param:keystone_ceilometer_password}
|
password: ${_param:keystone_ceilometer_password}
|
||||||
message_queue:
|
message_queue:
|
||||||
engine: rabbitmq
|
engine: rabbitmq
|
||||||
host: ${_param:cluster_vip_address}
|
host: ${_param:single_address}
|
||||||
port: 5672
|
port: 5672
|
||||||
user: openstack
|
user: openstack
|
||||||
password: ${_param:rabbitmq_openstack_password}
|
password: ${_param:rabbitmq_openstack_password}
|
||||||
|
|
|
@ -37,4 +37,4 @@ parameters:
|
||||||
port: 27017
|
port: 27017
|
||||||
name: ceilometer
|
name: ceilometer
|
||||||
user: ceilometer
|
user: ceilometer
|
||||||
password: ${_param:mongodb_ceilometer_password}
|
password: ${_param:mongodb_ceilometer_password}
|
|
@ -2,7 +2,7 @@ ceilometer:
|
||||||
server:
|
server:
|
||||||
region: RegionOne
|
region: RegionOne
|
||||||
enabled: true
|
enabled: true
|
||||||
version: liberty
|
version: mitaka
|
||||||
cluster: true
|
cluster: true
|
||||||
secret: password
|
secret: password
|
||||||
ttl: 86400
|
ttl: 86400
|
||||||
|
|
|
@ -2,7 +2,7 @@ ceilometer:
|
||||||
server:
|
server:
|
||||||
#region: RegionOne
|
#region: RegionOne
|
||||||
enabled: true
|
enabled: true
|
||||||
version: liberty
|
version: mitaka
|
||||||
secret: password
|
secret: password
|
||||||
ttl: 86400
|
ttl: 86400
|
||||||
publisher:
|
publisher:
|
||||||
|
|
Loading…
Reference in New Issue