如何将自定义指标添加到Dropwizard在管理端口上提供的默认内容(8081)?除了添加健康检查之外,我在文档中找不到任何内容.我非常希望合并从MongoDB中检索到的一些统计信息,并且宁愿使用8081上的管理资源,而不是在端口8080上创建自定义指标页面.
我注意到如果我def是一个int数组并在数组中设置一个Long的元素,那么就没有抱怨.但是,如果我在let块中绑定int数组,则设置一个具有Long的元素,则抛出IllegalArgument异常.有人能帮助我理解为什么会这样吗?
下面的代码显示了这种差异.我在Clojure 1.8和1.9的最新beta版本中都尝试过这些结果.
(def a (int-array 10))
(aset a 0 Long/MAX_VALUE) ;; sets first element to -1
(let [b (int-array 10)]
(aset b 0 Long/MAX_VALUE)) ;; throws java.lang.IllegalArgumentException: Value out of range for int:
Run Code Online (Sandbox Code Playgroud) 为潜在的模糊问题标题道歉 - 我不确定如何表达它,因为我对问题的解释很差.
基本上,我如何进行以下编译?:-P
{-# LANGUAGE MultiParamTypeClasses #-}
class (Monad m) => MyClass m a where
valM :: m (Maybe a)
val :: m a
f :: (MyClass m a) => (m a -> IO a) -> IO (a, Maybe a)
f g = do
x <- g val
yM <- g valM
return (x, yM)
Run Code Online (Sandbox Code Playgroud)
GHC(V8.2.2)抱怨a是刚性类型的变量,似乎无法应付这个想法(g val)和(g valM)可能产生不同类型的值.我尝试过RankNTypes但无济于事.
是否有一个我可以用来帮助编译器的扩展,或者从类型推断的角度来看,我正在尝试做什么概念?
arrays ×1
clojure ×1
dropwizard ×1
haskell ×1
interop ×1
java ×1
long-integer ×1
monads ×1
rank-n-types ×1
typeclass ×1