<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<metainfo>
  <schemaVersion>2.0</schemaVersion>
  <services>
    <service>
      <name>AMBARI_METRICS</name>
      <displayName>Ambari Metrics</displayName>
      <version>0.1.0</version>
      <comment>A system for metrics collection that provides storage and retrieval capability for metrics collected from the cluster
      </comment>
      <components>
        <component>
          <name>METRICS_COLLECTOR</name>
          <displayName>Metrics Collector</displayName>
          <category>MASTER</category>
          <cardinality>0+</cardinality>
          <versionAdvertised>false</versionAdvertised>
          <reassignAllowed>true</reassignAllowed>
          <timelineAppid>AMS-HBASE</timelineAppid>
          <recovery_enabled>true</recovery_enabled>
          <dependencies>
            <dependency>
              <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
              <scope>cluster</scope>
              <auto-deploy>
                <enabled>true</enabled>
              </auto-deploy>
            </dependency>
          </dependencies>
          <commandScript>
            <script>scripts/metrics_collector.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
          <logs>
            <log>
              <logId>ams_collector</logId>
              <primary>true</primary>
            </log>
            <log>
              <logId>ams_hbase_master</logId>
            </log>
            <log>
              <logId>ams_hbase_regionserver</logId>
            </log>
          </logs>
          <configuration-dependencies>
            <config-type>ams-site</config-type>
            <config-type>ams-log4j</config-type>
            <config-type>ams-hbase-policy</config-type>
            <config-type>ams-hbase-site</config-type>
            <config-type>ams-hbase-security-site</config-type>
            <config-type>ams-hbase-env</config-type>
            <config-type>ams-hbase-log4j</config-type>
            <config-type>ams-ssl-server</config-type>
            <config-type>ams-ssl-client</config-type>
          </configuration-dependencies>
        </component>

        <component>
          <name>METRICS_MONITOR</name>
          <displayName>Metrics Monitor</displayName>
          <category>SLAVE</category>
          <cardinality>ALL</cardinality>
          <versionAdvertised>false</versionAdvertised>
          <auto-deploy>
            <enabled>true</enabled>
          </auto-deploy>
          <commandScript>
            <script>scripts/metrics_monitor.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
            <customCommands>
              <customCommand>
                <name>CHECK_HADOOP_SINK_VERSION</name>
                <commandScript>
                  <script>scripts/metrics_monitor.py</script>
                  <scriptType>PYTHON</scriptType>
                  <timeout>600</timeout>
                </commandScript>
              </customCommand>
            </customCommands>
          <logs>
            <log>
              <logId>ams_monitor</logId>
              <primary>true</primary>
            </log>
          </logs>
          <configuration-dependencies>
            <config-type>ams-site</config-type>
          </configuration-dependencies>
        </component>

        <component>
          <name>METRICS_GRAFANA</name>
          <displayName>Grafana</displayName>
          <category>MASTER</category>
          <cardinality>0-1</cardinality>
          <versionAdvertised>false</versionAdvertised>
          <customFolder>dashboards</customFolder>
          <commandScript>
            <script>scripts/metrics_grafana.py</script>
            <scriptType>PYTHON</scriptType>
            <timeout>1200</timeout>
          </commandScript>
          <configuration-dependencies>
            <config-type>ams-grafana-env</config-type>
            <config-type>ams-grafana-ini</config-type>
          </configuration-dependencies>
          <logs>
            <log>
              <logId>ams_grafana</logId>
              <primary>true</primary>
            </log>
          </logs>
        </component>

      </components>

      <themes>
        <theme>
          <fileName>theme.json</fileName>
          <default>true</default>
        </theme>
      </themes>

      <osSpecifics>
        <osSpecific>
          <osFamily>redhat7,amazonlinux2,redhat6,suse11,suse12</osFamily>
          <packages>
            <package>
              <name>ambari-metrics-collector</name>
              <skipUpgrade>true</skipUpgrade>
              <condition>should_install_ams_collector</condition>
            </package>
            <package>
              <name>ambari-metrics-monitor</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>ambari-metrics-hadoop-sink</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>ambari-metrics-grafana</name>
              <skipUpgrade>true</skipUpgrade>
              <condition>should_install_ams_grafana</condition>
            </package>
            <package>
              <name>gcc</name>
            </package>
          </packages>
        </osSpecific>
        <osSpecific>
          <osFamily>redhat7,redhat6,amazonlinux2</osFamily>
          <packages>
            <package>
              <name>python-kerberos</name>
            </package>
          </packages>
        </osSpecific>
        <osSpecific>
          <osFamily>debian7,ubuntu12,ubuntu14</osFamily>
          <packages>
            <package>
              <name>ambari-metrics-assembly</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>gcc</name>
            </package>
            <package>
              <name>libsnappy1*</name>
            </package>
          </packages>
        </osSpecific>
        <osSpecific>
          <osFamily>ubuntu16</osFamily>
          <packages>
            <package>
              <name>ambari-metrics-assembly</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>gcc</name>
            </package>
            <package>
              <name>libsnappy1v5*</name>
            </package>
          </packages>
        </osSpecific>
        <osSpecific>
          <osFamily>winsrv6</osFamily>
          <packages>
            <package>
              <name>ambari-metrics-collector</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>ambari-metrics-monitor</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
            <package>
              <name>ambari-metrics-hadoop-sink</name>
              <skipUpgrade>true</skipUpgrade>
            </package>
          </packages>
        </osSpecific>
      </osSpecifics>

      <commandScript>
        <script>scripts/service_check.py</script>
        <scriptType>PYTHON</scriptType>
        <timeout>600</timeout>
      </commandScript>

      <requiredServices>
        <service>ZOOKEEPER</service>
      </requiredServices>

      <configuration-dependencies>
        <config-type>ams-env</config-type>
      </configuration-dependencies>

      <quickLinksConfigurations>
        <quickLinksConfiguration>
          <fileName>quicklinks.json</fileName>
          <default>true</default>
        </quickLinksConfiguration>
      </quickLinksConfigurations>

      <themes>
        <theme>
          <fileName>credentials.json</fileName>
          <default>true</default>
        </theme>
        <theme>
          <fileName>directories.json</fileName>
          <default>true</default>
        </theme>
      </themes>

    </service>
  </services>
</metainfo>
