2015-08-02 1 views
0

Я запускаю Cassandra вместе с агентом opscenter и получил следующую ошибку в журнале, когда Opscenter пытается получить общие и CF-показатели.Opsagent UnsupportedOperationException с PersistentHashMap

INFO [jmx-metrics-1] 2015-08-02 21:55:20,555 New JMX connection (127.0.0.1:7199) 
INFO [jmx-metrics-1] 2015-08-02 21:55:20,558 New JMX connection (127.0.0.1:7199) 
ERROR [jmx-metrics-2] 2015-08-02 21:55:25,448 Error getting CF metrics 
java.lang.UnsupportedOperationException: nth not supported on this type: PersistentArrayMap 
at clojure.lang.RT.nthFrom(RT.java:857) 
at clojure.lang.RT.nth(RT.java:807) 
at opsagent.rollup$process_metric_map.invoke(rollup.clj:252) 
at opsagent.metrics.jmx$cf_metric_helper.invoke(jmx.clj:96) 
at opsagent.metrics.jmx$start_pool$fn__15320.invoke(jmx.clj:159) 
at clojure.lang.AFn.run(AFn.java:24) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
ERROR [jmx-metrics-4] 2015-08-02 21:56:26,238 Error getting general metrics 
java.lang.UnsupportedOperationException: nth not supported on this type: PersistentHashMap 
at clojure.lang.RT.nthFrom(RT.java:857) 
at clojure.lang.RT.nth(RT.java:807) 
at opsagent.rollup$process_metric_map.invoke(rollup.clj:252) 
at opsagent.metrics.jmx$generic_metric_helper.invoke(jmx.clj:73) 
at opsagent.metrics.jmx$start_pool$fn__15334$fn__15335.invoke(jmx.clj:171) 
at opsagent.metrics.jmx$start_pool$fn__15334.invoke(jmx.clj:170) 
at clojure.lang.AFn.run(AFn.java:24) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Любая идея о чем UnsupportedOperationException? Я не знаком с Clojure, но я не знаю, почему: а) произошла ошибка и b) почему nth не поддерживается PersistentArrayMap.

Пожалуйста, помогите, спасибо.

+1

'nth' ожидает последовательность (т.е. то, что реализует' ISeq'), но 'PersistentArrayMap' является« картой »(несмотря на то, что это базовая реализация массива) и, следовательно, не реализует' ISeq', поэтому вызов 'nth' на нем не будет работать. Вы можете называть «seq» на своей карте заранее, а затем «nth». как эта ошибка возникла, я думаю, нам нужно будет увидеть какой-то код или что-то еще – lispHK01

ответ

1

Это ошибка (фиксированная, но невыпущенная) в агенте, которая происходит после изменения конфигурации агента во время выполнения. Вы можете попробовать перезапустить агент, так как начальная загрузка конфигурации - ОК.

Возможно, это может произойти, когда opscenterd выталкивает конфигурацию кластера агенту. Чтобы обойти это до следующего выпуска, вы можете внести любые изменения этих конфигураций кластера в агенты local address.yaml и удалить их из clustername.conf на сервере opscenter. Я бы порекомендовал просто попытку сначала перезапустить агент, хотя это может быть немного сложнее с множеством узлов.

Смежные вопросы