Hygieia - 创建仪表板失败

Hygieia - Creation of dashboard is failing

我没有设置 Hygieia 仪表板。

卫生学:https://github.com/gigaaks/Hygieia

尝试本地设置或使用基于 installation/setup 的 Docker 两种方法。

我成功获得了 mongoDB,它是 API、UI 模块和 运行。 Hygieia 主登录屏幕正常显示。我已成功创建登录用户并可以登录。

此时,我有 mongoDB 运行、API、UI 件 运行,是时候创建一个 CAP One / Split Dashboard (Hygieia 提供的模板)。当我提供用于创建新仪表板的值时,它会在服务器(vagrant/VirtualBox 实例)或 Docker 的容器中的 API 日志中抛出以下错误。

我发现这个项目的模块中有很多问题,其中一些事情不正确,即一个模块中的数据库名称是 dashboard,在另一个模块中它是 dashboardb,而在另一个模块中,它期望 dashboarddb。我在我的 github repo/project 中修复了这些问题,并发起了一个请求请求,该请求已获得批准并将被合并。不过,以下错误告诉我 Hygieia 的 UI 片段在尝试创建仪表板时没有发送 API 片段期望的参数(在 mongoDB 中)。参数是 "type" 并且由于 UI (Hygieia GUI) 没有发送它(根据他们在 GitHUB 中的最新代码),API 失败抛出一个错误,指出类型变量值作为 NULL 传递。当我通过使用发送相同的 JSON RestAPI 查询尝试 POST 操作时,我发现了相同的结果邮递员[=3​​1=].

因此,我目前无法创建仪表板并开始使用 Hygieia 开箱即用的收集器(用于 Stash、GitHub、Jenkins、SonarQube 等)。

你们中有人遇到过或找到解决此问题的方法吗error/issue?

2016-04-01 02:40:40,357 WARN  c.c.d.rest.RestApiExceptionHandler - Bad Request - bind exception: 
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'dashboardRequest' on field 'type': rejected value [null]; codes dashboardRequest.type,NotNull.type,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [dashboardRequest.type,type]; arguments []; default message [type]]; default message [may not be null]
    at com.capitalone.dashboard.rest.RestApiExceptionHandler.handleMethodArgumentNotValid(RestApiExceptionHandler.java:55) [api.jar!/:2.0.0-SNAPSHOT]
    at org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler.handleException(ResponseEntityExceptionHandler.java:156) [spring-webmvc-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_72-internal]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_72-internal]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_72-internal]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_72-internal]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) [spring-web-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) [spring-web-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) [spring-webmvc-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]

问题的出现是因为我使用了 Hygieia 模块 docker 使用 Maven(mvn clean install ;mvn docker:build)在本地构建的图像,但对于 UI 模块,当我收到一条错误消息时,我从 captial one/hygieia-ui 图像中挑选了该图像。出于某种原因,它没有工作并显示上述错误(因为可能 API 级别更改)。

我必须 运行 以下内容才能启动 Hygieia 仪表板并 运行 在本地机器上安装:

git config --global --unset-all url.https
git config --global url."https://".insteadOf git://
npm config set prefix /usr/local

sudo npm install --color=false; sudo npm install -g bower gulp; sudo npm install bower install

mvn clean install; mvn docker:build

gulp serve

现在,创建仪表板的一切都按预期工作(PS:您必须首先使用 mongo 命令行创建 mongo 数据库,如 Hygieia 文档中所示)。

npm -g 选项将全局安装 bower 和 gulp。没有-g,它也会在本地安装相同的。全局值实际上是指局部值。

对于基于 docker 的解决方案,我只是使用 docker-comopose 文件并将其启动并 运行ning.

NodeJS(node) version: v5.10.0
NPM (Node pkg mgr)  : 3.8.3
Bower version       : 1.7.9
Gulp  version       : [08:18:42] CLI version 3.9.1,[08:18:42] Local version 3.9.1,
Maven version       : Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
Java  version       :