[
https://issues.apache.org/jira/browse/AMBARI-16949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15306476#comment-15306476
]
Jungtaek Lim commented on AMBARI-16949:
---------------------------------------
PhoenixHBaseAccessor.appendMetricFromResultSet() doesn't throw NPE but it
doesn't match proper functions when both wildcard and functions are used.
https://github.com/apache/ambari/blob/branch-2.2.2/ambari-metrics/ambari-metrics-timelineservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/metrics/timeline/PhoenixHBaseAccessor.java#L668-L693
I guess this is not expected behavior. What do others think?
> Metrics Collector API shows NPE if we use wildcard (%25 for '%') for metric
> name
> --------------------------------------------------------------------------------
>
> Key: AMBARI-16949
> URL: https://issues.apache.org/jira/browse/AMBARI-16949
> Project: Ambari
> Issue Type: Bug
> Components: ambari-metrics
> Affects Versions: 2.4.0
> Reporter: Jungtaek Lim
>
> When we request '/ws/v1/timeline/metrics' with metric name which contains %25
> (escaped '%'), response for the API is json describing there's NPE.
> And NPE is logged for ambari-metrics-collector log file.
> {code}
> 2016-05-30 09:15:05,061 WARN
> org.apache.hadoop.yarn.webapp.GenericExceptionHandler: INTERNAL_SERVER_ERROR
> java.lang.NullPointerException
> at
> org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixHBaseAccessor.appendAggregateMetricFromResultSet(PhoenixHBaseAccessor.java:810)
> at
> org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.PhoenixHBaseAccessor.getAggregateMetricRecords(PhoenixHBaseAccessor.java:772)
> at
> org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.timeline.HBaseTimelineMetricStore.getTimelineMetrics(HBaseTimelineMetricStore.java:178)
> at
> org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.TimelineWebServices.getTimelineMetrics(TimelineWebServices.java:372)
> at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
> {code}
> Reason of NPE:
> Metrics are properly fetched with wildcard. But when applying functions to
> result set, actual metric name is not exist from map of metric name to list
> of function.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)