Fix jmx exporter configuration to be generic
Change-Id: I063aa13578f44c6afe00a8208e4bcab13a3711a4
Depends-On: If5cf3662f96311a5f37055c0f62934ba5407a978
Depends-On: Ie889b5f8d485aa7f41166fc3f90bb6554681c68e
Depends-On: b1d45f94e5446fdba437598f1b2185c902874a4e
diff --git a/opencontrail/files/jmx-exporter-default b/opencontrail/files/jmx-exporter-default
new file mode 100644
index 0000000..3982105
--- /dev/null
+++ b/opencontrail/files/jmx-exporter-default
@@ -0,0 +1 @@
+JMX_EXPORTER_OPTS="{{ bind.address|default("0.0.0.0") }}:{{ bind.port|default(9111) }} {{ cfg_file }}"
diff --git a/opencontrail/files/jmx_exporter_cassandra.conf b/opencontrail/files/jmx_exporter_cassandra.conf
new file mode 100644
index 0000000..150bd32
--- /dev/null
+++ b/opencontrail/files/jmx_exporter_cassandra.conf
@@ -0,0 +1,15 @@
+hostPort: {{ jmxbind.address|default("localhost") }}:{{ jmxbind.port|default(7199) }}
+whitelistObjectNames:
+ - "java.lang:type=Memory"
+ - "java.lang:type=GarbageCollector,name=ConcurrentMarkSweep,*"
+ - "java.lang:type=MemoryPool,name=CMS*Gen,*"
+ - "org.apache.cassandra.net:type=FailureDetector,*"
+ - "org.apache.cassandra.db:type=StorageService,*"
+ - "org.apache.cassandra.metrics:type=Compaction,*"
+ - "org.apache.cassandra.metrics:type=Storage,*"
+ - "org.apache.cassandra.metrics:type=Client,*"
+ - "org.apache.cassandra.metrics:type=ClientRequest,scope=Read,*"
+ - "org.apache.cassandra.metrics:type=ClientRequest,scope=Write,*"
+rules:
+ - pattern: '.*'
+ replaceDomains: {'^java.lang(.*)$' : 'cassandra.jvm$1', '^org.apache.cassandra(.*)$' : 'cassandra$1' }
diff --git a/opencontrail/meta/prometheus.yml b/opencontrail/meta/prometheus.yml
index 2453538..73785bd 100644
--- a/opencontrail/meta/prometheus.yml
+++ b/opencontrail/meta/prometheus.yml
@@ -48,6 +48,38 @@
{%- endif %}
{%- endif %}
+ {%- if database_processes is defined and
+ database.get('cassandra', False) and
+ exporters is defined %}
+{%- set packages = exporters.get('jmx', {}).get('packages', ('jmx-exporter', )) %}
+{%- set template = exporters.get('jmx', {}).get('template', 'opencontrail/files/jmx-exporter-default') %}
+ {%- load_yaml as new_exporters_cfg %}
+exporters:
+ jmx:
+ enabled: true
+{%- if packages is defined %}
+ packages:
+ {% for pkg in packages %}
+ - {{ pkg }}
+ {% endfor %}
+{%- endif %}
+{%- if template is defined %}
+ template: {{ template }}
+{%- endif %}
+ services:
+ cassandra:
+ enabled: true
+ template: opencontrail/files/jmx_exporter_cassandra.conf
+ jmx_bind:
+ address: localhost
+ port: 7199
+ bind:
+ address: 0.0.0.0
+ port: 9111
+ {%- endload %}
+{{ new_exporters_cfg|yaml(False) }}
+ {%- endif %}
+
{%- if control_processes is defined or
collector_processes is defined or
compute_processes is defined or
@@ -457,6 +489,9 @@
description: '{{ contrail_process }} service is down on node {% raw %}{{ $labels.host }}{% endraw %}'
{%- endfor %}
{%- endif %}
+ {%- if exporters is defined %}
+ {%- include "prometheus/_exporters_config.sls" %}
+ {%- endif %}
{%- endif %}
{%- endif %}