
IPMI device should be mounted from host to ceilometer-ipmi pod in order to enable pulling of ipmi samples. Change-Id: Ic8c31c825e406ab4f3fd7bdad5c9dd104120230c Story: 2003909 Task: 27083 Signed-off-by: Angie Wang <angie.wang@windriver.com>
2127 lines
69 KiB
Diff
2127 lines
69 KiB
Diff
From 56c73d9c0714f4fb5dd673dc84d4cd4579de2306 Mon Sep 17 00:00:00 2001
|
|
From: Angie Wang <angie.wang@windriver.com>
|
|
Date: Fri, 19 Oct 2018 14:46:27 -0400
|
|
Subject: [PATCH 1/1] ceilometer chart updates
|
|
|
|
This commit includes the following changes:
|
|
- add polling process with ipmi function
|
|
- run ceilometer-upgrade instead of the obsolete command ceilometer-dbsync
|
|
- set ceilometer cache server
|
|
- update event_definitions.yaml in values.yaml
|
|
- add missing defintion yaml files for meter (meters.yaml, polling.yaml)
|
|
- configure messaging_urls option to listen to each rabbitmq vhost
|
|
- add the ability to push events to panko
|
|
|
|
We should try to upstream above changes.
|
|
---
|
|
ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl | 13 +
|
|
ceilometer/templates/bin/_db-sync.sh.tpl | 2 +-
|
|
ceilometer/templates/configmap-bin.yaml | 2 +
|
|
ceilometer/templates/configmap-etc.yaml | 6 +
|
|
ceilometer/templates/daemonset-compute.yaml | 4 +
|
|
ceilometer/templates/daemonset-ipmi.yaml | 113 ++
|
|
ceilometer/templates/deployment-central.yaml | 4 +
|
|
ceilometer/templates/deployment-notification.yaml | 20 +
|
|
ceilometer/values.yaml | 1532 ++++++++++-----------
|
|
9 files changed, 910 insertions(+), 786 deletions(-)
|
|
create mode 100644 ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl
|
|
create mode 100644 ceilometer/templates/daemonset-ipmi.yaml
|
|
|
|
diff --git a/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl b/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl
|
|
new file mode 100644
|
|
index 0000000..ad280c3
|
|
--- /dev/null
|
|
+++ b/ceilometer/templates/bin/_ceilometer-ipmi.sh.tpl
|
|
@@ -0,0 +1,13 @@
|
|
+#!/bin/bash
|
|
+
|
|
+{{/*
|
|
+Copyright (c) 2018 Wind River Systems, Inc.
|
|
+
|
|
+SPDX-License-Identifier: Apache-2.0
|
|
+*/}}
|
|
+
|
|
+set -ex
|
|
+
|
|
+exec ceilometer-polling \
|
|
+ --polling-namespaces ipmi \
|
|
+ --config-file /etc/ceilometer/ceilometer.conf
|
|
diff --git a/ceilometer/templates/bin/_db-sync.sh.tpl b/ceilometer/templates/bin/_db-sync.sh.tpl
|
|
index 02f6f5d..ba7c1d8 100644
|
|
--- a/ceilometer/templates/bin/_db-sync.sh.tpl
|
|
+++ b/ceilometer/templates/bin/_db-sync.sh.tpl
|
|
@@ -18,4 +18,4 @@ limitations under the License.
|
|
|
|
set -ex
|
|
|
|
-exec ceilometer-dbsync
|
|
+exec ceilometer-upgrade --skip-metering-database
|
|
diff --git a/ceilometer/templates/configmap-bin.yaml b/ceilometer/templates/configmap-bin.yaml
|
|
index 6c7d59a..558f24e 100644
|
|
--- a/ceilometer/templates/configmap-bin.yaml
|
|
+++ b/ceilometer/templates/configmap-bin.yaml
|
|
@@ -53,6 +53,8 @@ data:
|
|
{{ tuple "bin/_ceilometer-collector.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
|
ceilometer-compute.sh: |
|
|
{{ tuple "bin/_ceilometer-compute.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
|
+ ceilometer-ipmi.sh: |
|
|
+{{ tuple "bin/_ceilometer-ipmi.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
|
ceilometer-notification.sh: |
|
|
{{ tuple "bin/_ceilometer-notification.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
|
rabbit-init.sh: |
|
|
diff --git a/ceilometer/templates/configmap-etc.yaml b/ceilometer/templates/configmap-etc.yaml
|
|
index 17ddb1b..c48a3b8 100644
|
|
--- a/ceilometer/templates/configmap-etc.yaml
|
|
+++ b/ceilometer/templates/configmap-etc.yaml
|
|
@@ -32,6 +32,10 @@ limitations under the License.
|
|
{{- $_ := set .Values.conf.ceilometer.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
|
|
{{- end -}}
|
|
|
|
+{{- if empty .Values.conf.ceilometer.cache.memcache_servers -}}
|
|
+{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.ceilometer.cache "memcache_servers" -}}
|
|
+{{- end -}}
|
|
+
|
|
{{- if empty .Values.conf.ceilometer.database.connection -}}
|
|
{{- $_ := tuple "oslo_db" "internal" "ceilometer" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup"| set .Values.conf.ceilometer.database "connection" -}}
|
|
{{- end -}}
|
|
@@ -120,5 +124,7 @@ data:
|
|
pipeline.yaml: {{ toYaml .Values.conf.pipeline | b64enc }}
|
|
event_definitions.yaml: {{ toYaml .Values.conf.event_definitions | b64enc }}
|
|
gnocchi_resources.yaml: {{ toYaml .Values.conf.gnocchi_resources | b64enc }}
|
|
+ meters.yaml: {{ toYaml .Values.conf.meters | b64enc }}
|
|
+ polling.yaml: {{ toYaml .Values.conf.polling | b64enc }}
|
|
{{ include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.wsgi_ceilometer "key" "wsgi-ceilometer.conf" "format" "Secret" ) | indent 2 }}
|
|
{{- end }}
|
|
diff --git a/ceilometer/templates/daemonset-compute.yaml b/ceilometer/templates/daemonset-compute.yaml
|
|
index 686572a..bff2e15 100644
|
|
--- a/ceilometer/templates/daemonset-compute.yaml
|
|
+++ b/ceilometer/templates/daemonset-compute.yaml
|
|
@@ -91,6 +91,10 @@ spec:
|
|
mountPath: /etc/ceilometer/gnocchi_resources.yaml
|
|
subPath: gnocchi_resources.yaml
|
|
readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/polling.yaml
|
|
+ subPath: polling.yaml
|
|
+ readOnly: true
|
|
- name: ceilometer-bin
|
|
mountPath: /tmp/ceilometer-compute.sh
|
|
subPath: ceilometer-compute.sh
|
|
diff --git a/ceilometer/templates/daemonset-ipmi.yaml b/ceilometer/templates/daemonset-ipmi.yaml
|
|
new file mode 100644
|
|
index 0000000..a41d60d
|
|
--- /dev/null
|
|
+++ b/ceilometer/templates/daemonset-ipmi.yaml
|
|
@@ -0,0 +1,113 @@
|
|
+{{/*
|
|
+Copyright (c) 2018 Wind River Systems, Inc.
|
|
+
|
|
+SPDX-License-Identifier: Apache-2.0
|
|
+*/}}
|
|
+
|
|
+{{- if .Values.manifests.daemonset_ipmi }}
|
|
+{{- $envAll := . }}
|
|
+
|
|
+{{- $mounts_ceilometer_ipmi := .Values.pod.mounts.ceilometer_ipmi.ceilometer_ipmi }}
|
|
+{{- $mounts_ceilometer_ipmi_init := .Values.pod.mounts.ceilometer_ipmi.init_container }}
|
|
+
|
|
+{{- $serviceAccountName := "ceilometer-ipmi" }}
|
|
+{{ tuple $envAll "ipmi" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
|
+---
|
|
+apiVersion: apps/v1
|
|
+kind: DaemonSet
|
|
+metadata:
|
|
+ name: ceilometer-ipmi
|
|
+ annotations:
|
|
+ {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
|
+ labels:
|
|
+{{ tuple $envAll "ceilometer" "ipmi" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
|
+spec:
|
|
+ selector:
|
|
+ matchLabels:
|
|
+{{ tuple $envAll "ceilometer" "ipmi" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
|
+{{ tuple $envAll "ipmi" | include "helm-toolkit.snippets.kubernetes_upgrades_daemonset" | indent 2 }}
|
|
+ template:
|
|
+ metadata:
|
|
+ labels:
|
|
+{{ tuple $envAll "ceilometer" "ipmi" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
|
+ annotations:
|
|
+ configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
|
+ configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
|
+ spec:
|
|
+ serviceAccountName: {{ $serviceAccountName }}
|
|
+ affinity:
|
|
+{{ tuple $envAll "ceilometer" "ipmi" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
|
+ hostNetwork: true
|
|
+ hostPID: true
|
|
+ dnsPolicy: ClusterFirstWithHostNet
|
|
+ nodeSelector:
|
|
+ {{ .Values.labels.ipmi.node_selector_key }}: {{ .Values.labels.ipmi.node_selector_value }}
|
|
+ initContainers:
|
|
+{{ tuple $envAll "ipmi" $mounts_ceilometer_ipmi_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
|
+ containers:
|
|
+ - name: ceilometer-ipmi
|
|
+{{ tuple $envAll "ceilometer_ipmi" | include "helm-toolkit.snippets.image" | indent 10 }}
|
|
+{{ tuple $envAll $envAll.Values.pod.resources.ipmi | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
|
+ securityContext:
|
|
+ privileged: true
|
|
+ command:
|
|
+ - /tmp/ceilometer-ipmi.sh
|
|
+ volumeMounts:
|
|
+ - name: pod-etc-ceilometer
|
|
+ mountPath: /etc/ceilometer
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/ceilometer.conf
|
|
+ subPath: ceilometer.conf
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/api_paste.ini
|
|
+ subPath: api_paste.ini
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/policy.json
|
|
+ subPath: policy.json
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/event_definitions.yaml
|
|
+ subPath: event_definitions.yaml
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/event_pipeline.yaml
|
|
+ subPath: event_pipeline.yaml
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/pipeline.yaml
|
|
+ subPath: pipeline.yaml
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/gnocchi_resources.yaml
|
|
+ subPath: gnocchi_resources.yaml
|
|
+ readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/polling.yaml
|
|
+ subPath: polling.yaml
|
|
+ readOnly: true
|
|
+ - name: ceilometer-bin
|
|
+ mountPath: /tmp/ceilometer-ipmi.sh
|
|
+ subPath: ceilometer-ipmi.sh
|
|
+ readOnly: true
|
|
+ - name: ipmi-device
|
|
+ mountPath: {{ .Values.ipmi_device }}
|
|
+ readOnly: true
|
|
+{{ if $mounts_ceilometer_ipmi.volumeMounts }}{{ toYaml $mounts_ceilometer_ipmi.volumeMounts | indent 12 }}{{ end }}
|
|
+ volumes:
|
|
+ - name: pod-etc-ceilometer
|
|
+ emptyDir: {}
|
|
+ - name: ceilometer-etc
|
|
+ secret:
|
|
+ secretName: ceilometer-etc
|
|
+ defaultMode: 0444
|
|
+ - name: ceilometer-bin
|
|
+ configMap:
|
|
+ name: ceilometer-bin
|
|
+ defaultMode: 0555
|
|
+ - name: ipmi-device
|
|
+ hostPath:
|
|
+ path: {{ .Values.ipmi_device }}
|
|
+{{ if $mounts_ceilometer_ipmi.volumes }}{{ toYaml $mounts_ceilometer_ipmi.volumes | indent 8 }}{{ end }}
|
|
+{{- end }}
|
|
diff --git a/ceilometer/templates/deployment-central.yaml b/ceilometer/templates/deployment-central.yaml
|
|
index b7a597b..7a6cd2b 100644
|
|
--- a/ceilometer/templates/deployment-central.yaml
|
|
+++ b/ceilometer/templates/deployment-central.yaml
|
|
@@ -89,6 +89,10 @@ spec:
|
|
mountPath: /etc/ceilometer/gnocchi_resources.yaml
|
|
subPath: gnocchi_resources.yaml
|
|
readOnly: true
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/polling.yaml
|
|
+ subPath: polling.yaml
|
|
+ readOnly: true
|
|
- name: ceilometer-bin
|
|
mountPath: /tmp/ceilometer-central.sh
|
|
subPath: ceilometer-central.sh
|
|
diff --git a/ceilometer/templates/deployment-notification.yaml b/ceilometer/templates/deployment-notification.yaml
|
|
index 06fda3d..45d7ecb 100644
|
|
--- a/ceilometer/templates/deployment-notification.yaml
|
|
+++ b/ceilometer/templates/deployment-notification.yaml
|
|
@@ -89,14 +89,30 @@ spec:
|
|
mountPath: /etc/ceilometer/gnocchi_resources.yaml
|
|
subPath: gnocchi_resources.yaml
|
|
readOnly: true
|
|
+ - name: etc-ceilometer-meters
|
|
+ mountPath: /etc/ceilometer/meters.d
|
|
+ - name: ceilometer-etc
|
|
+ mountPath: /etc/ceilometer/meters.d/meters.yaml
|
|
+ subPath: meters.yaml
|
|
+ readOnly: true
|
|
- name: ceilometer-bin
|
|
mountPath: /tmp/ceilometer-notification.sh
|
|
subPath: ceilometer-notification.sh
|
|
readOnly: true
|
|
+ - name: etcpanko
|
|
+ mountPath: /etc/panko
|
|
+ - name: panko-etc
|
|
+ mountPath: /etc/panko/panko.conf
|
|
+ subPath: panko.conf
|
|
+ readOnly: true
|
|
{{ if $mounts_ceilometer_notification.volumeMounts }}{{ toYaml $mounts_ceilometer_notification.volumeMounts | indent 12 }}{{ end }}
|
|
volumes:
|
|
- name: pod-etc-ceilometer
|
|
emptyDir: {}
|
|
+ - name: etc-ceilometer-meters
|
|
+ emptyDir: {}
|
|
+ - name: etcpanko
|
|
+ emptyDir: {}
|
|
- name: ceilometer-etc
|
|
secret:
|
|
secretName: ceilometer-etc
|
|
@@ -105,5 +121,9 @@ spec:
|
|
configMap:
|
|
name: ceilometer-bin
|
|
defaultMode: 0555
|
|
+ - name: panko-etc
|
|
+ secret:
|
|
+ secretName: panko-etc
|
|
+ defaultMode: 0444
|
|
{{ if $mounts_ceilometer_notification.volumes }}{{ toYaml $mounts_ceilometer_notification.volumes | indent 8 }}{{ end }}
|
|
{{- end }}
|
|
diff --git a/ceilometer/values.yaml b/ceilometer/values.yaml
|
|
index 5021967..7947eb7 100644
|
|
--- a/ceilometer/values.yaml
|
|
+++ b/ceilometer/values.yaml
|
|
@@ -29,6 +29,9 @@ labels:
|
|
central:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
+ ipmi:
|
|
+ node_selector_key: openstack-node
|
|
+ node_selector_value: enabled
|
|
collector:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
@@ -80,6 +83,8 @@ network:
|
|
enabled: false
|
|
port: 38777
|
|
|
|
+ipmi_device: /dev/ipmi0
|
|
+
|
|
conf:
|
|
ceilometer:
|
|
DEFAULT:
|
|
@@ -113,1041 +118,971 @@ conf:
|
|
auth_type: password
|
|
interface: internal
|
|
notification:
|
|
- messaging_urls: null
|
|
+ messaging_urls:
|
|
+ type: multistring
|
|
+ values:
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/ceilometer
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/cinder
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/glance
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/nova
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/keystone
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/neutron
|
|
+ - rabbit://rabbitmq:password@rabbitmq.openstack.svc.cluster.local:5672/heat
|
|
oslo_messaging_notifications:
|
|
driver: messagingv2
|
|
topics:
|
|
- notifications
|
|
- profiler
|
|
+ cache:
|
|
+ enabled: true
|
|
+ backend: dogpile.cache.memcached
|
|
event_definitions:
|
|
- - event_type: compute.instance.*
|
|
- traits:
|
|
- deleted_at:
|
|
- fields: payload.deleted_at
|
|
- type: datetime
|
|
+ - 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
|
|
+ resource_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
|
|
- host:
|
|
- fields: 'publisher_id.`split(., 1, 1)`'
|
|
- instance_id:
|
|
- fields: payload.instance_id
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
+ fields: payload.vcpus
|
|
instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- type: int
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- memory_mb:
|
|
- fields: payload.memory_mb
|
|
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_distro:
|
|
- fields: payload.image_meta.'org.openstack__1__os_distro'
|
|
os_version:
|
|
fields: payload.image_meta.'org.openstack__1__os_version'
|
|
- root_gb:
|
|
- fields: payload.root_gb
|
|
- type: int
|
|
- service:
|
|
- fields: 'publisher_id.`split(., 0, -1)`'
|
|
- state:
|
|
- fields: payload.state
|
|
- tenant_id:
|
|
- fields: payload.tenant_id
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- vcpus:
|
|
- fields: payload.vcpus
|
|
- type: int
|
|
+ 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.update
|
|
+ traits:
|
|
+ <<: *instance_traits
|
|
+ old_state:
|
|
+ fields: payload.old_state
|
|
- event_type: compute.instance.exists
|
|
traits:
|
|
+ <<: *instance_traits
|
|
audit_period_beginning:
|
|
- fields: payload.audit_period_beginning
|
|
type: datetime
|
|
+ fields: payload.audit_period_beginning
|
|
audit_period_ending:
|
|
- fields: payload.audit_period_ending
|
|
- type: datetime
|
|
- deleted_at:
|
|
- fields: payload.deleted_at
|
|
- type: datetime
|
|
- disk_gb:
|
|
- fields: payload.disk_gb
|
|
- type: int
|
|
- ephemeral_gb:
|
|
- fields: payload.ephemeral_gb
|
|
- type: int
|
|
- host:
|
|
- fields: 'publisher_id.`split(., 1, 1)`'
|
|
- instance_id:
|
|
- fields: payload.instance_id
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- type: int
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
type: datetime
|
|
- memory_mb:
|
|
- fields: payload.memory_mb
|
|
- type: int
|
|
- os_architecture:
|
|
- fields: payload.image_meta.'org.openstack__1__architecture'
|
|
- os_distro:
|
|
- fields: payload.image_meta.'org.openstack__1__os_distro'
|
|
- os_version:
|
|
- fields: payload.image_meta.'org.openstack__1__os_version'
|
|
- root_gb:
|
|
- fields: payload.root_gb
|
|
- type: int
|
|
- service:
|
|
- fields: 'publisher_id.`split(., 0, -1)`'
|
|
- state:
|
|
- fields: payload.state
|
|
- tenant_id:
|
|
- fields: payload.tenant_id
|
|
+ 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
|
|
- vcpus:
|
|
- fields: payload.vcpus
|
|
- type: int
|
|
- - 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:
|
|
+ project_id:
|
|
+ fields: payload.tenant_id
|
|
availability_zone:
|
|
fields: payload.availability_zone
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
display_name:
|
|
fields: payload.display_name
|
|
- project_id:
|
|
- fields: payload.tenant_id
|
|
replication_status:
|
|
fields: payload.replication_status
|
|
status:
|
|
fields: payload.status
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- - event_type:
|
|
- - volume.exists
|
|
- - volume.create.*
|
|
- - volume.delete.*
|
|
- - volume.resize.*
|
|
- - volume.attach.*
|
|
- - volume.detach.*
|
|
- - volume.update.*
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
created_at:
|
|
fields: payload.created_at
|
|
- display_name:
|
|
- fields: payload.display_name
|
|
- host:
|
|
- fields: payload.host
|
|
- project_id:
|
|
- fields: payload.tenant_id
|
|
- replication_status:
|
|
- fields: payload.replication_status
|
|
+ - 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
|
|
- status:
|
|
- fields: payload.status
|
|
type:
|
|
fields: payload.volume_type
|
|
+ replication_status:
|
|
+ fields: payload.replication_status
|
|
+ - event_type: ['share.create.*', 'share.delete.*', 'share.extend.*', 'share.shrink.*']
|
|
+ traits: &share_traits
|
|
+ share_id:
|
|
+ fields: payload.share_id
|
|
user_id:
|
|
fields: payload.user_id
|
|
- - event_type:
|
|
- - snapshot.exists
|
|
- - snapshot.create.*
|
|
- - snapshot.delete.*
|
|
- - snapshot.update.*
|
|
- traits:
|
|
+ project_id:
|
|
+ fields: payload.tenant_id
|
|
+ snapshot_id:
|
|
+ fields: payload.snapshot_id
|
|
availability_zone:
|
|
fields: payload.availability_zone
|
|
+ status:
|
|
+ fields: payload.status
|
|
created_at:
|
|
fields: payload.created_at
|
|
- display_name:
|
|
- fields: payload.display_name
|
|
- project_id:
|
|
- fields: payload.tenant_id
|
|
- replication_status:
|
|
- fields: payload.replication_status
|
|
+ share_group_id:
|
|
+ fields: payload.share_group_id
|
|
+ size:
|
|
+ fields: payload.size
|
|
+ name:
|
|
+ fields: payload.name
|
|
+ proto:
|
|
+ fields: payload.proto
|
|
+ is_public:
|
|
+ fields: payload.is_public
|
|
+ description:
|
|
+ fields: payload.description
|
|
+ host:
|
|
+ fields: payload.host
|
|
+ - event_type: ['snapshot.exists', 'snapshot.create.*', 'snapshot.delete.*', 'snapshot.update.*']
|
|
+ traits:
|
|
+ <<: *cinder_traits
|
|
resource_id:
|
|
fields: payload.snapshot_id
|
|
- status:
|
|
- fields: payload.status
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
volume_id:
|
|
fields: payload.volume_id
|
|
- - event_type:
|
|
- - image_volume_cache.*
|
|
+ - event_type: ['image_volume_cache.*']
|
|
traits:
|
|
- host:
|
|
- fields: payload.host
|
|
image_id:
|
|
fields: payload.image_id
|
|
- - event_type:
|
|
- - image.create
|
|
- - image.update
|
|
- - image.upload
|
|
- - image.delete
|
|
- traits:
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- deleted_at:
|
|
- fields: payload.deleted_at
|
|
- name:
|
|
- fields: payload.name
|
|
+ host:
|
|
+ fields: payload.host
|
|
+ - event_type: ['image.create', 'image.update', 'image.upload', 'image.delete']
|
|
+ traits: &glance_crud
|
|
project_id:
|
|
fields: payload.owner
|
|
resource_id:
|
|
fields: payload.id
|
|
- size:
|
|
- fields: payload.size
|
|
+ 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:
|
|
- bytes_sent:
|
|
- fields: payload.bytes_sent
|
|
- type: int
|
|
- destination_ip:
|
|
- fields: payload.destination_ip
|
|
- image_id:
|
|
- fields: payload.image_id
|
|
+ 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:
|
|
+ type: int
|
|
+ fields: payload.bytes_sent
|
|
- event_type: orchestration.stack.*
|
|
- traits:
|
|
+ traits: &orchestration_crud
|
|
project_id:
|
|
fields: payload.tenant_id
|
|
+ user_id:
|
|
+ fields: ['ctxt.trustor_user_id', 'ctxt.user_id']
|
|
resource_id:
|
|
fields: payload.stack_identity
|
|
- user_id:
|
|
- fields:
|
|
- - _context_trustor_user_id
|
|
- - _context_user_id
|
|
- event_type: sahara.cluster.*
|
|
- traits:
|
|
+ traits: &sahara_crud
|
|
project_id:
|
|
fields: payload.project_id
|
|
+ user_id:
|
|
+ fields: ctxt.user_id
|
|
resource_id:
|
|
fields: payload.cluster_id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
- event_type: sahara.cluster.health
|
|
- traits:
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- type: datetime
|
|
- health_check_description:
|
|
- fields: payload.health_check_description
|
|
- health_check_name:
|
|
- fields: payload.health_check_name
|
|
+ traits: &sahara_health
|
|
+ <<: *sahara_crud
|
|
+ verification_id:
|
|
+ fields: payload.verification_id
|
|
health_check_status:
|
|
fields: payload.health_check_status
|
|
- project_id:
|
|
- fields: payload.project_id
|
|
- resource_id:
|
|
- fields: payload.cluster_id
|
|
+ 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:
|
|
- fields: payload.updated_at
|
|
type: datetime
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
- verification_id:
|
|
- fields: payload.verification_id
|
|
- - event_type:
|
|
- - identity.user.*
|
|
- - identity.project.*
|
|
- - identity.group.*
|
|
- - identity.role.*
|
|
- - 'identity.OS-TRUST:trust.*'
|
|
- - identity.region.*
|
|
- - identity.service.*
|
|
- - identity.endpoint.*
|
|
- - identity.policy.*
|
|
- traits:
|
|
- domain_id:
|
|
- fields: payload.initiator.domain_id
|
|
+ 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
|
|
- resource_id:
|
|
- fields: payload.resource_info
|
|
+ domain_id:
|
|
+ fields: payload.initiator.domain_id
|
|
- event_type: identity.role_assignment.*
|
|
- traits:
|
|
- domain:
|
|
- fields: payload.domain
|
|
- group:
|
|
- fields: payload.group
|
|
- project:
|
|
- fields: payload.project
|
|
+ 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:
|
|
- action:
|
|
+ traits: &identity_authenticate
|
|
+ typeURI:
|
|
+ fields: payload.typeURI
|
|
+ id:
|
|
+ fields: payload.id
|
|
+ action:
|
|
fields: payload.action
|
|
- eventTime:
|
|
- fields: payload.eventTime
|
|
eventType:
|
|
fields: payload.eventType
|
|
- id:
|
|
- fields: payload.id
|
|
- initiator_host_addr:
|
|
- fields: payload.initiator.host.address
|
|
- initiator_host_agent:
|
|
- fields: payload.initiator.host.agent
|
|
+ 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_typeURI:
|
|
- fields: payload.initiator.typeURI
|
|
- observer_id:
|
|
- fields: payload.observer.id
|
|
- observer_typeURI:
|
|
- fields: payload.observer.typeURI
|
|
- outcome:
|
|
- fields: payload.outcome
|
|
- target_id:
|
|
- fields: payload.target.id
|
|
+ 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
|
|
- - event_type: objectstore.http.request
|
|
- traits:
|
|
+ id:
|
|
+ fields: payload.id
|
|
action:
|
|
fields: payload.action
|
|
- eventTime:
|
|
- fields: payload.eventTime
|
|
eventType:
|
|
fields: payload.eventType
|
|
- id:
|
|
- fields: payload.id
|
|
+ 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
|
|
- initiator_typeURI:
|
|
- fields: payload.initiator.typeURI
|
|
- observer_id:
|
|
- fields: payload.observer.id
|
|
- outcome:
|
|
- fields: payload.outcome
|
|
- target_action:
|
|
- fields: payload.target.action
|
|
+ target_typeURI:
|
|
+ fields: payload.target.typeURI
|
|
target_id:
|
|
fields: payload.target.id
|
|
- target_metadata_container:
|
|
- fields: payload.target.metadata.container
|
|
- target_metadata_object:
|
|
- fields: payload.target.metadata.object
|
|
+ target_action:
|
|
+ fields: payload.target.action
|
|
target_metadata_path:
|
|
fields: payload.target.metadata.path
|
|
target_metadata_version:
|
|
fields: payload.target.metadata.version
|
|
- target_typeURI:
|
|
- fields: payload.target.typeURI
|
|
- typeURI:
|
|
- fields: payload.typeURI
|
|
- - 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:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ target_metadata_container:
|
|
+ fields: payload.target.metadata.container
|
|
+ target_metadata_object:
|
|
+ fields: payload.target.metadata.object
|
|
+ observer_id:
|
|
+ fields: payload.observer.id
|
|
+ - 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
|
|
+ fields: ctxt.user_id
|
|
+ project_id:
|
|
+ fields: ctxt.tenant_id
|
|
- event_type: network.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.network.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.network.id', 'payload.id']
|
|
- event_type: subnet.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.subnet.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.subnet.id', 'payload.id']
|
|
- event_type: port.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.port.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.port.id', 'payload.id']
|
|
- event_type: router.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.router.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.router.id', 'payload.id']
|
|
- event_type: floatingip.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.floatingip.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.floatingip.id', 'payload.id']
|
|
- event_type: pool.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.pool.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.pool.id', 'payload.id']
|
|
- event_type: vip.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.vip.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.vip.id', 'payload.id']
|
|
- event_type: member.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.member.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.member.id', 'payload.id']
|
|
- event_type: health_monitor.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.health_monitor.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.health_monitor.id', 'payload.id']
|
|
- event_type: healthmonitor.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.healthmonitor.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.healthmonitor.id', 'payload.id']
|
|
- event_type: listener.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.listener.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.listener.id', 'payload.id']
|
|
- event_type: loadbalancer.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.loadbalancer.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.loadbalancer.id', 'payload.id']
|
|
- event_type: firewall.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.firewall.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.firewall.id', 'payload.id']
|
|
- event_type: firewall_policy.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.firewall_policy.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.firewall_policy.id', 'payload.id']
|
|
- event_type: firewall_rule.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.firewall_rule.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.firewall_rule.id', 'payload.id']
|
|
- event_type: vpnservice.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.vpnservice.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.vpnservice.id', 'payload.id']
|
|
- event_type: ipsecpolicy.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.ipsecpolicy.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.ipsecpolicy.id', 'payload.id']
|
|
- event_type: ikepolicy.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.ikepolicy.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.ikepolicy.id', 'payload.id']
|
|
- event_type: ipsec_site_connection.*
|
|
traits:
|
|
- project_id:
|
|
- fields: _context_tenant_id
|
|
+ <<: *network_traits
|
|
resource_id:
|
|
- fields:
|
|
- - payload.ipsec_site_connection.id
|
|
- - payload.id
|
|
- user_id:
|
|
- fields: _context_user_id
|
|
+ fields: ['payload.ipsec_site_connection.id', 'payload.id']
|
|
- event_type: '*http.*'
|
|
- traits:
|
|
- action:
|
|
- fields: payload.action
|
|
- eventTime:
|
|
- fields: payload.eventTime
|
|
- eventType:
|
|
- fields: payload.eventType
|
|
- id:
|
|
- fields: payload.id
|
|
- initiator_host_address:
|
|
- fields: payload.initiator.host.address
|
|
- initiator_id:
|
|
- fields: payload.initiator.id
|
|
- initiator_name:
|
|
- fields: payload.initiator.name
|
|
- initiator_typeURI:
|
|
- fields: payload.initiator.typeURI
|
|
- observer_id:
|
|
- fields: payload.observer.id
|
|
- outcome:
|
|
- fields: payload.outcome
|
|
+ traits: &http_audit
|
|
project_id:
|
|
fields: payload.initiator.project_id
|
|
- requestPath:
|
|
- fields: payload.requestPath
|
|
- target_id:
|
|
- fields: payload.target.id
|
|
- target_name:
|
|
- fields: payload.target.name
|
|
- target_typeURI:
|
|
- fields: payload.target.typeURI
|
|
- typeURI:
|
|
- fields: payload.typeURI
|
|
user_id:
|
|
fields: payload.initiator.id
|
|
- - event_type: '*http.response'
|
|
- traits:
|
|
- action:
|
|
- fields: payload.action
|
|
- eventTime:
|
|
- fields: payload.eventTime
|
|
+ typeURI:
|
|
+ fields: payload.typeURI
|
|
eventType:
|
|
fields: payload.eventType
|
|
- id:
|
|
- fields: payload.id
|
|
- initiator_host_address:
|
|
- fields: payload.initiator.host.address
|
|
- initiator_id:
|
|
- fields: payload.initiator.id
|
|
- initiator_name:
|
|
- fields: payload.initiator.name
|
|
- initiator_typeURI:
|
|
- fields: payload.initiator.typeURI
|
|
- observer_id:
|
|
- fields: payload.observer.id
|
|
+ action:
|
|
+ fields: payload.action
|
|
outcome:
|
|
fields: payload.outcome
|
|
- project_id:
|
|
- fields: payload.initiator.project_id
|
|
- reason_code:
|
|
- fields: payload.reason.reasonCode
|
|
+ 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_name:
|
|
- fields: payload.target.name
|
|
target_typeURI:
|
|
fields: payload.target.typeURI
|
|
- typeURI:
|
|
- fields: payload.typeURI
|
|
- user_id:
|
|
+ target_name:
|
|
+ fields: payload.target.name
|
|
+ initiator_typeURI:
|
|
+ fields: payload.initiator.typeURI
|
|
+ initiator_id:
|
|
fields: payload.initiator.id
|
|
- - event_type:
|
|
- - dns.domain.create
|
|
- - dns.domain.update
|
|
- - dns.domain.delete
|
|
+ initiator_name:
|
|
+ fields: payload.initiator.name
|
|
+ initiator_host_address:
|
|
+ fields: payload.initiator.host.address
|
|
+ - event_type: '*http.response'
|
|
traits:
|
|
- action:
|
|
- fields: payload.action
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- description:
|
|
- fields: payload.description
|
|
- email:
|
|
- fields: payload.email
|
|
- expire:
|
|
- fields: payload.expire
|
|
- name:
|
|
- fields: payload.name
|
|
- parent_domain_id:
|
|
- fields: parent_domain_id
|
|
- resource_id:
|
|
- fields: payload.id
|
|
- retry:
|
|
- fields: payload.retry
|
|
- serial:
|
|
- fields: payload.serial
|
|
+ <<: *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
|
|
- ttl:
|
|
- fields: payload.ttl
|
|
- updated_at:
|
|
- fields: payload.updated_at
|
|
- version:
|
|
- fields: payload.version
|
|
- - event_type: dns.domain.exists
|
|
- traits:
|
|
- action:
|
|
- fields: payload.action
|
|
- audit_period_beginning:
|
|
- fields: payload.audit_period_beginning
|
|
- type: datetime
|
|
- audit_period_ending:
|
|
- fields: payload.audit_period_ending
|
|
- type: datetime
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
+ retry:
|
|
+ fields: payload.retry
|
|
description:
|
|
fields: payload.description
|
|
- email:
|
|
- fields: payload.email
|
|
expire:
|
|
fields: payload.expire
|
|
- name:
|
|
- fields: payload.name
|
|
- parent_domain_id:
|
|
- fields: parent_domain_id
|
|
- resource_id:
|
|
- fields: payload.id
|
|
- retry:
|
|
- fields: payload.retry
|
|
- serial:
|
|
- fields: payload.serial
|
|
- status:
|
|
- fields: payload.status
|
|
- ttl:
|
|
- fields: payload.ttl
|
|
- updated_at:
|
|
- fields: payload.updated_at
|
|
- version:
|
|
- fields: payload.version
|
|
- - event_type: trove.*
|
|
- traits:
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- type: datetime
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- nova_instance_id:
|
|
- fields: payload.nova_instance_id
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
- service_id:
|
|
- fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- - event_type:
|
|
- - trove.instance.create
|
|
- - trove.instance.modify_volume
|
|
- - trove.instance.modify_flavor
|
|
- - trove.instance.delete
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
- instance_size:
|
|
- fields: payload.instance_size
|
|
- type: int
|
|
- name:
|
|
- fields: payload.name
|
|
- nova_volume_id:
|
|
- fields: payload.nova_volume_id
|
|
- volume_size:
|
|
- fields: payload.volume_size
|
|
- type: int
|
|
- - event_type: trove.instance.create
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- type: datetime
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
- instance_size:
|
|
- fields: payload.instance_size
|
|
- type: int
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- name:
|
|
- fields: payload.name
|
|
- nova_instance_id:
|
|
- fields: payload.nova_instance_id
|
|
- nova_volume_id:
|
|
- fields: payload.nova_volume_id
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
- service_id:
|
|
- fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- volume_size:
|
|
- fields: payload.volume_size
|
|
- type: int
|
|
- - event_type: trove.instance.modify_volume
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
- type: datetime
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
- instance_size:
|
|
- fields: payload.instance_size
|
|
- type: int
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- modify_at:
|
|
- fields: payload.modify_at
|
|
- type: datetime
|
|
- name:
|
|
- fields: payload.name
|
|
- nova_instance_id:
|
|
- fields: payload.nova_instance_id
|
|
- nova_volume_id:
|
|
- fields: payload.nova_volume_id
|
|
- old_volume_size:
|
|
- fields: payload.old_volume_size
|
|
- type: int
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
- service_id:
|
|
- fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- volume_size:
|
|
- fields: payload.volume_size
|
|
- type: int
|
|
- - event_type: trove.instance.modify_flavor
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
+ 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
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
- instance_size:
|
|
- fields: payload.instance_size
|
|
- type: int
|
|
+ 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:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- modify_at:
|
|
- fields: payload.modify_at
|
|
type: datetime
|
|
- name:
|
|
- fields: payload.name
|
|
+ fields: payload.launched_at
|
|
+ instance_name:
|
|
+ fields: payload.instance_name
|
|
+ state:
|
|
+ fields: payload.state
|
|
nova_instance_id:
|
|
fields: payload.nova_instance_id
|
|
- nova_volume_id:
|
|
- fields: payload.nova_volume_id
|
|
- old_instance_size:
|
|
- fields: payload.old_instance_size
|
|
- type: int
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
service_id:
|
|
fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- volume_size:
|
|
- fields: payload.volume_size
|
|
- type: int
|
|
- - event_type: trove.instance.delete
|
|
- traits:
|
|
- availability_zone:
|
|
- fields: payload.availability_zone
|
|
created_at:
|
|
- fields: payload.created_at
|
|
- type: datetime
|
|
- deleted_at:
|
|
- fields: payload.deleted_at
|
|
type: datetime
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
+ 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
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
- type: datetime
|
|
- name:
|
|
- fields: payload.name
|
|
- nova_instance_id:
|
|
- fields: payload.nova_instance_id
|
|
+ fields: payload.volume_size
|
|
nova_volume_id:
|
|
fields: payload.nova_volume_id
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
- service_id:
|
|
- fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
- volume_size:
|
|
- fields: payload.volume_size
|
|
- type: int
|
|
- - event_type: trove.instance.exists
|
|
+ - event_type: trove.instance.create
|
|
traits:
|
|
- audit_period_beginning:
|
|
- fields: payload.audit_period_beginning
|
|
+ <<: [*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
|
|
- audit_period_ending:
|
|
- fields: payload.audit_period_ending
|
|
+ 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
|
|
- created_at:
|
|
- fields: payload.created_at
|
|
+ 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
|
|
- instance_name:
|
|
- fields: payload.instance_name
|
|
- instance_type:
|
|
- fields: payload.instance_type
|
|
- instance_type_id:
|
|
- fields: payload.instance_type_id
|
|
- launched_at:
|
|
- fields: payload.launched_at
|
|
+ audit_period_beginning:
|
|
type: datetime
|
|
- nova_instance_id:
|
|
- fields: payload.nova_instance_id
|
|
- region:
|
|
- fields: payload.region
|
|
- resource_id:
|
|
- fields: payload.instance_id
|
|
- service_id:
|
|
- fields: payload.service_id
|
|
- state:
|
|
- fields: payload.state
|
|
- user_id:
|
|
- fields: payload.user_id
|
|
+ fields: payload.audit_period_beginning
|
|
+ audit_period_ending:
|
|
+ type: datetime
|
|
+ fields: payload.audit_period_ending
|
|
- event_type: profiler.*
|
|
traits:
|
|
- base_id:
|
|
- fields: payload.base_id
|
|
- db.params:
|
|
- fields: payload.info.db.params
|
|
- db.statement:
|
|
- fields: payload.info.db.statement
|
|
- host:
|
|
- fields: payload.info.host
|
|
- method:
|
|
- fields: payload.info.request.method
|
|
+ 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
|
|
- project:
|
|
- fields: payload.project
|
|
query:
|
|
fields: payload.info.request.query
|
|
+ method:
|
|
+ fields: payload.info.request.method
|
|
scheme:
|
|
fields: payload.info.request.scheme
|
|
- service:
|
|
- fields: payload.service
|
|
- timestamp:
|
|
- fields: payload.timestamp
|
|
- trace_id:
|
|
- fields: payload.trace_id
|
|
- - event_type: magnum.bay.*
|
|
- traits:
|
|
- action:
|
|
- fields: payload.action
|
|
- eventTime:
|
|
- fields: payload.eventTime
|
|
- eventType:
|
|
- fields: payload.eventType
|
|
+ db.statement:
|
|
+ fields: payload.info.db.statement
|
|
+ db.params:
|
|
+ fields: payload.info.db.params
|
|
+ - event_type: 'magnum.bay.*'
|
|
+ traits: &magnum_bay_crud
|
|
id:
|
|
fields: payload.id
|
|
- initiator_host_address:
|
|
- fields: payload.initiator.host.address
|
|
- initiator_host_agent:
|
|
- fields: payload.initiator.host.agent
|
|
+ typeURI:
|
|
+ fields: payload.typeURI
|
|
+ eventType:
|
|
+ fields: payload.eventType
|
|
+ eventTime:
|
|
+ fields: payload.eventTime
|
|
+ action:
|
|
+ fields: payload.action
|
|
+ outcome:
|
|
+ fields: payload.outcome
|
|
initiator_id:
|
|
fields: payload.initiator.id
|
|
- initiator_name:
|
|
- fields: payload.initiator.name
|
|
initiator_typeURI:
|
|
fields: payload.initiator.typeURI
|
|
- observer_id:
|
|
- fields: payload.observer.id
|
|
- observer_typeURI:
|
|
- fields: payload.observer.typeURI
|
|
- outcome:
|
|
- fields: payload.outcome
|
|
+ initiator_name:
|
|
+ fields: payload.initiator.name
|
|
+ initiator_host_agent:
|
|
+ fields: payload.initiator.host.agent
|
|
+ initiator_host_address:
|
|
+ fields: payload.initiator.host.address
|
|
target_id:
|
|
fields: payload.target.id
|
|
target_typeURI:
|
|
fields: payload.target.typeURI
|
|
- typeURI:
|
|
- fields: payload.typeURI
|
|
+ observer_id:
|
|
+ fields: payload.observer.id
|
|
+ observer_typeURI:
|
|
+ fields: payload.observer.typeURI
|
|
+ meters:
|
|
+ metric:
|
|
+ # Image
|
|
+ - name: "image.size"
|
|
+ event_type:
|
|
+ - "image.upload"
|
|
+ - "image.delete"
|
|
+ - "image.update"
|
|
+ type: "gauge"
|
|
+ unit: B
|
|
+ volume: $.payload.size
|
|
+ resource_id: $.payload.id
|
|
+ project_id: $.payload.owner
|
|
+ - name: "image.download"
|
|
+ event_type: "image.send"
|
|
+ type: "delta"
|
|
+ unit: "B"
|
|
+ volume: $.payload.bytes_sent
|
|
+ resource_id: $.payload.image_id
|
|
+ user_id: $.payload.receiver_user_id
|
|
+ project_id: $.payload.receiver_tenant_id
|
|
+ - name: "image.serve"
|
|
+ event_type: "image.send"
|
|
+ type: "delta"
|
|
+ unit: "B"
|
|
+ volume: $.payload.bytes_sent
|
|
+ resource_id: $.payload.image_id
|
|
+ project_id: $.payload.owner_id
|
|
+ - name: 'volume.size'
|
|
+ event_type:
|
|
+ - 'volume.exists'
|
|
+ - 'volume.create.*'
|
|
+ - 'volume.delete.*'
|
|
+ - 'volume.resize.*'
|
|
+ - 'volume.attach.*'
|
|
+ - 'volume.detach.*'
|
|
+ - 'volume.update.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.size
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.volume_id
|
|
+ metadata:
|
|
+ display_name: $.payload.display_name
|
|
+ volume_type: $.payload.volume_type
|
|
+ - name: 'snapshot.size'
|
|
+ event_type:
|
|
+ - 'snapshot.exists'
|
|
+ - 'snapshot.create.*'
|
|
+ - 'snapshot.delete.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.volume_size
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.snapshot_id
|
|
+ metadata:
|
|
+ display_name: $.payload.display_name
|
|
+ - name: 'backup.size'
|
|
+ event_type:
|
|
+ - 'backup.exists'
|
|
+ - 'backup.create.*'
|
|
+ - 'backup.delete.*'
|
|
+ - 'backup.restore.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.size
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.backup_id
|
|
+ metadata:
|
|
+ display_name: $.payload.display_name
|
|
+ # Magnum
|
|
+ - name: $.payload.metrics.[*].name
|
|
+ event_type: 'magnum.bay.metrics.*'
|
|
+ type: 'gauge'
|
|
+ unit: $.payload.metrics.[*].unit
|
|
+ volume: $.payload.metrics.[*].value
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.project_id
|
|
+ resource_id: $.payload.resource_id
|
|
+ lookup: ['name', 'unit', 'volume']
|
|
+ # Swift
|
|
+ - name: $.payload.measurements.[*].metric.[*].name
|
|
+ event_type: 'objectstore.http.request'
|
|
+ type: 'delta'
|
|
+ unit: $.payload.measurements.[*].metric.[*].unit
|
|
+ volume: $.payload.measurements.[*].result
|
|
+ resource_id: $.payload.target.id
|
|
+ user_id: $.payload.initiator.id
|
|
+ project_id: $.payload.initiator.project_id
|
|
+ lookup: ['name', 'unit', 'volume']
|
|
+ - name: 'memory'
|
|
+ event_type: 'compute.instance.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'MB'
|
|
+ volume: $.payload.memory_mb
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_metadata: $.payload.metadata
|
|
+ metadata: &instance_meta
|
|
+ host: $.payload.host
|
|
+ flavor_id: $.payload.instance_flavor_id
|
|
+ flavor_name: $.payload.instance_type
|
|
+ display_name: $.payload.display_name
|
|
+ host: $.payload.host
|
|
+ image_ref: $.payload.image_meta.base_image_ref
|
|
+ - name: 'vcpus'
|
|
+ event_type: 'compute.instance.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'vcpu'
|
|
+ volume: $.payload.vcpus
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_metadata: $.payload.metadata
|
|
+ metadata:
|
|
+ <<: *instance_meta
|
|
+ - name: 'compute.instance.booting.time'
|
|
+ event_type: 'compute.instance.create.end'
|
|
+ type: 'gauge'
|
|
+ unit: 'sec'
|
|
+ volume:
|
|
+ fields: [$.payload.created_at, $.payload.launched_at]
|
|
+ plugin: 'timedelta'
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_metadata: $.payload.metadata
|
|
+ metadata:
|
|
+ <<: *instance_meta
|
|
+ - name: 'disk.root.size'
|
|
+ event_type: 'compute.instance.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.root_gb
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_metadata: $.payload.metadata
|
|
+ metadata:
|
|
+ <<: *instance_meta
|
|
+ - name: 'disk.ephemeral.size'
|
|
+ event_type: 'compute.instance.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.ephemeral_gb
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_metadata: $.payload.metadata
|
|
+ metadata:
|
|
+ <<: *instance_meta
|
|
+ - name: 'bandwidth'
|
|
+ event_type: 'l3.meter'
|
|
+ type: 'delta'
|
|
+ unit: 'B'
|
|
+ volume: $.payload.bytes
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.label_id
|
|
+ - name: 'compute.node.cpu.frequency'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'MHz'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.frequency')].value
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.frequency')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.frequency')].source
|
|
+ - name: 'compute.node.cpu.user.time'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'cumulative'
|
|
+ unit: 'ns'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.user.time')].value
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.user.time')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.user.time')].source
|
|
+ - name: 'compute.node.cpu.kernel.time'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'cumulative'
|
|
+ unit: 'ns'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.kernel.time')].value
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.kernel.time')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.kernel.time')].source
|
|
+ - name: 'compute.node.cpu.idle.time'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'cumulative'
|
|
+ unit: 'ns'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.idle.time')].value
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.idle.time')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.idle.time')].source
|
|
+ - name: 'compute.node.cpu.iowait.time'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'cumulative'
|
|
+ unit: 'ns'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.iowait.time')].value
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.iowait.time')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.iowait.time')].source
|
|
+ - name: 'compute.node.cpu.kernel.percent'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'percent'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.kernel.percent')].value * 100
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.kernel.percent')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.kernel.percent')].source
|
|
+ - name: 'compute.node.cpu.idle.percent'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'percent'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.idle.percent')].value * 100
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.idle.percent')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.idle.percent')].source
|
|
+ - name: 'compute.node.cpu.user.percent'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'percent'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.user.percent')].value * 100
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.user.percent')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.user.percent')].source
|
|
+ - name: 'compute.node.cpu.iowait.percent'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'percent'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.iowait.percent')].value * 100
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.iowait.percent')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.iowait.percent')].source
|
|
+ - name: 'compute.node.cpu.percent'
|
|
+ event_type: 'compute.metrics.update'
|
|
+ type: 'gauge'
|
|
+ unit: 'percent'
|
|
+ volume: $.payload.metrics[?(@.name='cpu.percent')].value * 100
|
|
+ resource_id: $.payload.host + "_" + $.payload.nodename
|
|
+ timestamp: $.payload.metrics[?(@.name='cpu.percent')].timestamp
|
|
+ metadata:
|
|
+ event_type: $.event_type
|
|
+ host: $.publisher_id
|
|
+ source: $.payload.metrics[?(@.name='cpu.percent')].source
|
|
+ # Identity
|
|
+ # NOTE(gordc): hack because jsonpath-rw-ext can't concat starting with string.
|
|
+ - name: $.payload.outcome - $.payload.outcome + 'identity.authenticate.' + $.payload.outcome
|
|
+ type: 'delta'
|
|
+ unit: 'user'
|
|
+ volume: 1
|
|
+ event_type:
|
|
+ - 'identity.authenticate'
|
|
+ resource_id: $.payload.initiator.id
|
|
+ user_id: $.payload.initiator.id
|
|
+ # DNS
|
|
+ - name: 'dns.domain.exists'
|
|
+ event_type: 'dns.domain.exists'
|
|
+ type: 'cumulative'
|
|
+ unit: 's'
|
|
+ volume:
|
|
+ fields: [$.payload.audit_period_beginning, $.payload.audit_period_ending]
|
|
+ plugin: 'timedelta'
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.id
|
|
+ user_id: $.ctxt.user
|
|
+ metadata:
|
|
+ status: $.payload.status
|
|
+ pool_id: $.payload.pool_id
|
|
+ host: $.publisher_id
|
|
+ # Trove
|
|
+ - name: 'trove.instance.exists'
|
|
+ event_type: 'trove.instance.exists'
|
|
+ type: 'cumulative'
|
|
+ unit: 's'
|
|
+ volume:
|
|
+ fields: [$.payload.audit_period_beginning, $.payload.audit_period_ending]
|
|
+ plugin: 'timedelta'
|
|
+ project_id: $.payload.tenant_id
|
|
+ resource_id: $.payload.instance_id
|
|
+ user_id: $.payload.user_id
|
|
+ metadata:
|
|
+ nova_instance_id: $.payload.nova_instance_id
|
|
+ state: $.payload.state
|
|
+ service_id: $.payload.service_id
|
|
+ instance_type: $.payload.instance_type
|
|
+ instance_type_id: $.payload.instance_type_id
|
|
+ # Manila
|
|
+ - name: 'manila.share.size'
|
|
+ event_type:
|
|
+ - 'share.create.*'
|
|
+ - 'share.delete.*'
|
|
+ - 'share.extend.*'
|
|
+ - 'share.shrink.*'
|
|
+ type: 'gauge'
|
|
+ unit: 'GB'
|
|
+ volume: $.payload.size
|
|
+ user_id: $.payload.user_id
|
|
+ project_id: $.payload.project_id
|
|
+ resource_id: $.payload.share_id
|
|
+ metadata:
|
|
+ name: $.payload.name
|
|
+ host: $.payload.host
|
|
+ status: $.payload.status
|
|
+ availability_zone: $.payload.availability_zone
|
|
+ protocol: $.payload.proto
|
|
event_pipeline:
|
|
sinks:
|
|
- name: event_sink
|
|
@@ -1620,6 +1555,22 @@ dependencies:
|
|
service: mongodb
|
|
- endpoint: internal
|
|
service: metric
|
|
+ ipmi:
|
|
+ jobs:
|
|
+ - ceilometer-db-init-mongodb
|
|
+ - ceilometer-db-sync
|
|
+ - ceilometer-rabbit-init
|
|
+ - ceilometer-ks-user
|
|
+ - ceilometer-ks-endpoints
|
|
+ services:
|
|
+ - endpoint: internal
|
|
+ service: identity
|
|
+ - endpoint: internal
|
|
+ service: oslo_db
|
|
+ - endpoint: internal
|
|
+ service: mongodb
|
|
+ - endpoint: internal
|
|
+ service: metric
|
|
collector:
|
|
jobs:
|
|
- ceilometer-db-init-mongodb
|
|
@@ -1928,6 +1879,9 @@ pod:
|
|
ceilometer_central:
|
|
init_container: null
|
|
ceilometer_central:
|
|
+ ceilometer_ipmi:
|
|
+ init_container: null
|
|
+ ceilometer_ipmi:
|
|
ceilometer_collector:
|
|
init_container: null
|
|
ceilometer_collector:
|
|
@@ -1996,6 +1950,13 @@ pod:
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
+ ipmi:
|
|
+ requests:
|
|
+ memory: "124Mi"
|
|
+ cpu: "100m"
|
|
+ limits:
|
|
+ memory: "1024Mi"
|
|
+ cpu: "2000m"
|
|
jobs:
|
|
db_init:
|
|
requests:
|
|
@@ -2073,6 +2034,7 @@ manifests:
|
|
deployment_central: true
|
|
deployment_collector: true
|
|
daemonset_compute: true
|
|
+ daemonset_ipmi: true
|
|
deployment_notification: true
|
|
ingress_api: true
|
|
job_bootstrap: true
|
|
--
|
|
1.8.3.1
|
|
|