{"action":"created","issue":{"url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/723","repository_url":"https://api.github.com/repos/roboconf/roboconf-platform","labels_url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/723/labels{/name}","comments_url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/723/comments","events_url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/723/events","html_url":"https://github.com/roboconf/roboconf-platform/issues/723","id":191752861,"number":723,"title":"Links to Kibana dashboards","user":{"login":"vincent-zurczak","id":1104790,"avatar_url":"https://avatars.githubusercontent.com/u/1104790?v=3","gravatar_id":"","url":"https://api.github.com/users/vincent-zurczak","html_url":"https://github.com/vincent-zurczak","followers_url":"https://api.github.com/users/vincent-zurczak/followers","following_url":"https://api.github.com/users/vincent-zurczak/following{/other_user}","gists_url":"https://api.github.com/users/vincent-zurczak/gists{/gist_id}","starred_url":"https://api.github.com/users/vincent-zurczak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincent-zurczak/subscriptions","organizations_url":"https://api.github.com/users/vincent-zurczak/orgs","repos_url":"https://api.github.com/users/vincent-zurczak/repos","events_url":"https://api.github.com/users/vincent-zurczak/events{/privacy}","received_events_url":"https://api.github.com/users/vincent-zurczak/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/roboconf/roboconf-platform/milestones/9","html_url":"https://github.com/roboconf/roboconf-platform/milestone/9","labels_url":"https://api.github.com/repos/roboconf/roboconf-platform/milestones/9/labels","id":1806581,"number":9,"title":"0.8","description":" The version 0.8 of the Roboconf platform ","creator":{"login":"vincent-zurczak","id":1104790,"avatar_url":"https://avatars.githubusercontent.com/u/1104790?v=3","gravatar_id":"","url":"https://api.github.com/users/vincent-zurczak","html_url":"https://github.com/vincent-zurczak","followers_url":"https://api.github.com/users/vincent-zurczak/followers","following_url":"https://api.github.com/users/vincent-zurczak/following{/other_user}","gists_url":"https://api.github.com/users/vincent-zurczak/gists{/gist_id}","starred_url":"https://api.github.com/users/vincent-zurczak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincent-zurczak/subscriptions","organizations_url":"https://api.github.com/users/vincent-zurczak/orgs","repos_url":"https://api.github.com/users/vincent-zurczak/repos","events_url":"https://api.github.com/users/vincent-zurczak/events{/privacy}","received_events_url":"https://api.github.com/users/vincent-zurczak/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":69,"state":"open","created_at":"2016-06-03T07:12:58Z","updated_at":"2016-12-15T10:42:31Z","due_on":"2016-12-08T00:00:00Z","closed_at":null},"comments":1,"created_at":"2016-11-25T18:44:27Z","updated_at":"2016-12-16T20:51:17Z","closed_at":null,"body":"Kibana allows to create dashboards **almost** easily.\r\nIntegration with Karaf (and thus Roboconf) is made simple by Decanter, the Elasticsearch appender and the JMX collector. However, in our case, we do not want to have one dashboard but a collection of dashboards.\r\n\r\nI successfully created one for the DM.\r\nBut I would like to use the same cluster for all the agents too. So, we need...\r\n\r\n* ... a dashboard for the DM.\r\n* ... one per agent.\r\n* ... one per application (aggregate).\r\n* ... one global (aggregate).\r\n\r\nBesides, Kibana (5.x) does not allow to create parameterized dashboards. What we can use though is a custom query. We can use our JMX collector and specify a source field (e.g. `source=DM`, or `source=app1,instance_path`). So, we can filter by this field.\r\n\r\nIn Kibana 5.x, any action is propagated to the URL. Including the query filter.\r\nExample...\r\n\r\n```\r\nhttp://localhost:5601/app/kibana#/dashboard/Global-Dashboard?_a=(filters:!(),options:(darkTheme:!f),panels:!((col:1,id:Operating-System,panelIndex:1,row:1,size_x:5,size_y:3,type:visualization),(col:6,id:JVM-Memory,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:8,id:Threads,panelIndex:3,row:4,size_x:5,size_y:3,type:visualization),(col:1,id:Open-File-Descriptors,panelIndex:4,row:4,size_x:4,size_y:3,type:visualization),(col:5,id:Free-Physical-Memory,panelIndex:5,row:4,size_x:3,size_y:2,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:source%3DDM)),title:%27Global%20Dashboard%27,uiState:(P-4:(vis:(colors:(%27Max%20Open%20File%20Destiptors%27:%2364B0C8)))))&_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1h,mode:quick,to:now))\r\n```\r\n\r\nWe can simply replace **source%3DDM** in this sample URL.\r\nWhat we need are links that lead to the right dashboards.\r\n\r\n* Solution 1: add a preference on the DM's side to indicate whether Kibana is used. This preference would be used by the web administration to add links or a specific page in the web administration.\r\n\r\n* Solution 2: make a HTML page generated from the DM's templating.\r\n* Solution 3: hard-code the page (fine for demos, nothing more).\r\n\r\nSolution 1 ties us with Kibana. And Kibana 5.x (as other versions used to work differently).\r\nSolution 3 is poor. Solution 2 is not integrated with our web console. Maybe we need to think about making our web administration extensible... We would then deploy a specific bundle for Kibana 5.x and it would update the web administration seamlessly. :+1: "},"comment":{"url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/comments/267692901","html_url":"https://github.com/roboconf/roboconf-platform/issues/723#issuecomment-267692901","issue_url":"https://api.github.com/repos/roboconf/roboconf-platform/issues/723","id":267692901,"user":{"login":"vincent-zurczak","id":1104790,"avatar_url":"https://avatars.githubusercontent.com/u/1104790?v=3","gravatar_id":"","url":"https://api.github.com/users/vincent-zurczak","html_url":"https://github.com/vincent-zurczak","followers_url":"https://api.github.com/users/vincent-zurczak/followers","following_url":"https://api.github.com/users/vincent-zurczak/following{/other_user}","gists_url":"https://api.github.com/users/vincent-zurczak/gists{/gist_id}","starred_url":"https://api.github.com/users/vincent-zurczak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincent-zurczak/subscriptions","organizations_url":"https://api.github.com/users/vincent-zurczak/orgs","repos_url":"https://api.github.com/users/vincent-zurczak/repos","events_url":"https://api.github.com/users/vincent-zurczak/events{/privacy}","received_events_url":"https://api.github.com/users/vincent-zurczak/received_events","type":"User","site_admin":false},"created_at":"2016-12-16T20:51:17Z","updated_at":"2016-12-16T20:51:17Z","body":"Solution 4...\r\n\r\n## Create HTML pages\r\n\r\nTable with 4 columns:\r\n\r\n* Application name\r\n* Application template\r\n* Link to the application dashboard\r\n* Link to the list of agents.  \r\nThis other web page will look almost the same.\r\n\r\nThe CSS and JS stuff will be reused from the web administration.\r\n\r\n## Register these pages in the HTTP service\r\n\r\nCreate a dedicated bundle.\r\nInject the HTTP service. Also inject the manager.\r\n\r\n## New preference: web-app-extensions\r\n\r\nMake the bundle register a new preference.\r\nThis preference will be queried by the web administration. It will add a link in the main menu.\r\n\r\n## Share the code\r\n\r\nPut this bundle in the **miscellaneous** directory."}}
{"actor":{"display_login":"vincent-zurczak"}}