[
https://issues.apache.org/jira/browse/AMBARI-3459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nate Cole resolved AMBARI-3459.
-------------------------------
Resolution: Done
Done with AMBARI-3818
> Move metrics property definitions to stack
> ------------------------------------------
>
> Key: AMBARI-3459
> URL: https://issues.apache.org/jira/browse/AMBARI-3459
> Project: Ambari
> Issue Type: Sub-task
> Components: controller
> Reporter: Nate Cole
> Assignee: Nate Cole
> Fix For: 1.5.1
>
>
> Metrics properties are currently internalized into
> ganglia_properties(_2).json and jmx_properties(_2).json. In order to allow
> authors to define their own, the following change is proposed:
> * Make $SERVICE_HOME/metrics.json (or xml)
> * Contents will be similar to existing file
> {noformat}
> {
> "HBASE_MASTER": {
> "component" : [
> {
> "type": "jmx",
> “properties”: {
> “port”: “60010”
> }
> "metrics": {
> "metrics/rpc/RpcSlowResponse_num_ops": {
> "metric":"rpc.rpc.RpcSlowResponse_num_ops",
> "pointInTime":true,
> "temporal":true
> },
> "metrics/process/proc_total": {
> "metric":"proc_total",
> "pointInTime":true,
> "temporal":true
> }, ...
> }
> },
> {
> "type": "ganglia",
> “properties”: {
> “ganglia_cluster”: “HDPHBaseMaster”
> }
> "metrics": { ... }
> },
> {
> "type":
> "org.apache.ambari.server.controller.spi.PropertyProviderImpl",
> “properties”: { … }
> "metrics": { ... }
> }
> ],
> "host": [ ... ]
> },
> "HBASE_REGIONSERVER": {
> }, ...
> }
> {noformat}
> Type is either a known type (jmx, ganglia) or can be a specified class. If
> that is the case, then the custom class will be instantiated when it is
> required to actually fetch properties. This instantiation can either invoke
> a public constructor or check for a static getInstance() method to enable
> singleton/factory. The metrics object elements are lifted from the current
> files to avoid having to re-design the entire JSON structure.
> The properties object elements are name/value pairs that are used by the
> provider class. Use case: Each component’s JMX data is fetched from the
> server holding the component. Each component uses a different port number.
> So the properties for, say, HBASE_REGIONSERVER may be: “port”: “60030”, and
> for HBASE_MASTER: “port”: “60010”. Each provider understands what to do with
> its own properties.
--
This message was sent by Atlassian JIRA
(v6.1#6144)